rapidata 2.27.2__py3-none-any.whl → 2.44.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (771) hide show
  1. rapidata/__init__.py +12 -9
  2. rapidata/api_client/__init__.py +83 -329
  3. rapidata/api_client/api/__init__.py +9 -2
  4. rapidata/api_client/api/asset_api.py +853 -0
  5. rapidata/api_client/api/audience_api.py +1133 -0
  6. rapidata/api_client/api/benchmark_api.py +3966 -0
  7. rapidata/api_client/api/campaign_api.py +232 -207
  8. rapidata/api_client/api/client_api.py +349 -71
  9. rapidata/api_client/api/coco_api.py +0 -571
  10. rapidata/api_client/api/compare_workflow_api.py +11 -10
  11. rapidata/api_client/api/customer_rapid_api.py +644 -72
  12. rapidata/api_client/api/datapoint_api.py +8 -797
  13. rapidata/api_client/api/dataset_api.py +229 -3452
  14. rapidata/api_client/api/evaluation_workflow_api.py +29 -82
  15. rapidata/api_client/api/feedback_api.py +11 -281
  16. rapidata/api_client/api/grouped_ranking_workflow_api.py +319 -0
  17. rapidata/api_client/api/identity_api.py +83 -1171
  18. rapidata/api_client/api/leaderboard_api.py +2550 -0
  19. rapidata/api_client/api/newsletter_api.py +20 -19
  20. rapidata/api_client/api/order_api.py +758 -5487
  21. rapidata/api_client/api/participant_api.py +2181 -0
  22. rapidata/api_client/api/pipeline_api.py +24 -1783
  23. rapidata/api_client/api/prompt_api.py +320 -0
  24. rapidata/api_client/api/rapidata_identity_api_api.py +5 -4
  25. rapidata/api_client/api/sample_api.py +300 -0
  26. rapidata/api_client/api/simple_workflow_api.py +11 -10
  27. rapidata/api_client/api/survey_api.py +304 -0
  28. rapidata/api_client/api/user_rapid_api.py +35 -31
  29. rapidata/api_client/api/validation_set_api.py +513 -3233
  30. rapidata/api_client/api/workflow_api.py +32 -825
  31. rapidata/api_client/api_client.py +2 -2
  32. rapidata/api_client/configuration.py +16 -29
  33. rapidata/api_client/exceptions.py +2 -2
  34. rapidata/api_client/models/__init__.py +65 -307
  35. rapidata/api_client/models/ab_test_selection_a_inner.py +27 -13
  36. rapidata/api_client/models/add_campaign_model.py +3 -3
  37. rapidata/api_client/models/add_user_response_result.py +10 -5
  38. rapidata/api_client/models/add_validation_rapid_model.py +55 -24
  39. rapidata/api_client/models/add_validation_rapid_model_asset.py +154 -0
  40. rapidata/api_client/models/add_validation_rapid_model_context_asset.py +160 -0
  41. rapidata/api_client/models/add_validation_rapid_model_metadata_inner.py +140 -0
  42. rapidata/api_client/models/add_validation_rapid_model_truth.py +7 -1
  43. rapidata/api_client/models/add_validation_rapid_new_model.py +137 -0
  44. rapidata/api_client/models/add_validation_rapid_new_model_asset.py +182 -0
  45. rapidata/api_client/models/add_validation_rapid_new_model_truth.py +286 -0
  46. rapidata/api_client/models/add_validation_text_rapid_model.py +1 -3
  47. rapidata/api_client/models/age_user_filter_model.py +2 -2
  48. rapidata/api_client/models/age_user_filter_model_age_group.py +41 -0
  49. rapidata/api_client/models/aggregated_orders_model.py +98 -0
  50. rapidata/api_client/models/aggregator_type.py +4 -2
  51. rapidata/api_client/models/and_filter.py +121 -0
  52. rapidata/api_client/models/and_filter_filters_inner.py +282 -0
  53. rapidata/api_client/models/and_user_filter_model.py +106 -0
  54. rapidata/api_client/models/and_user_filter_model_filters_inner.py +282 -0
  55. rapidata/api_client/models/are_rapids_active_result.py +2 -2
  56. rapidata/api_client/models/asset_metadata.py +11 -9
  57. rapidata/api_client/models/asset_type.py +40 -0
  58. rapidata/api_client/models/attach_category_rapid_blueprint.py +13 -3
  59. rapidata/api_client/models/attach_category_rapid_blueprint_category.py +89 -0
  60. rapidata/api_client/models/audience_status.py +38 -0
  61. rapidata/api_client/models/benchmark_query_result.py +98 -0
  62. rapidata/api_client/models/benchmark_query_result_paged_result.py +105 -0
  63. rapidata/api_client/models/boost_leaderboard_model.py +89 -0
  64. rapidata/api_client/models/boost_mode.py +37 -0
  65. rapidata/api_client/models/boost_query_result.py +97 -0
  66. rapidata/api_client/models/boost_query_result_boost_mode.py +37 -0
  67. rapidata/api_client/models/boost_query_result_boost_status.py +39 -0
  68. rapidata/api_client/models/boost_status.py +39 -0
  69. rapidata/api_client/models/boosting_profile.py +89 -0
  70. rapidata/api_client/models/box_shape.py +4 -33
  71. rapidata/api_client/models/campaign_filter.py +98 -0
  72. rapidata/api_client/models/campaign_query_result.py +15 -13
  73. rapidata/api_client/models/campaign_status.py +2 -2
  74. rapidata/api_client/models/change_boost_model.py +89 -0
  75. rapidata/api_client/models/classification_metadata.py +12 -1
  76. rapidata/api_client/models/classify_payload.py +14 -15
  77. rapidata/api_client/models/classify_payload_category.py +89 -0
  78. rapidata/api_client/models/client_model.py +181 -0
  79. rapidata/api_client/models/clients_query_result.py +5 -5
  80. rapidata/api_client/models/clone_order_model.py +6 -8
  81. rapidata/api_client/models/clone_order_result.py +9 -4
  82. rapidata/api_client/models/compare_rapid_blueprint.py +5 -3
  83. rapidata/api_client/models/compare_rapid_blueprint1.py +96 -0
  84. rapidata/api_client/models/compare_workflow_config.py +34 -23
  85. rapidata/api_client/models/compare_workflow_config_context_asset.py +174 -0
  86. rapidata/api_client/models/compare_workflow_config_metadata_value.py +57 -15
  87. rapidata/api_client/models/compare_workflow_config_model.py +15 -5
  88. rapidata/api_client/models/compare_workflow_model.py +34 -6
  89. rapidata/api_client/models/compare_workflow_model1.py +20 -9
  90. rapidata/api_client/models/compare_workflow_model_context_asset.py +160 -0
  91. rapidata/api_client/models/compare_workflow_model_metadata_inner.py +154 -0
  92. rapidata/api_client/models/compare_workflow_model_pair_maker_config.py +1 -1
  93. rapidata/api_client/models/comparison_operator.py +2 -2
  94. rapidata/api_client/models/conditional_validation_selection.py +8 -11
  95. rapidata/api_client/models/conditional_validation_selection_validation_chance.py +103 -0
  96. rapidata/api_client/models/confidence_interval.py +89 -0
  97. rapidata/api_client/models/count_metadata.py +12 -1
  98. rapidata/api_client/models/country_filter.py +98 -0
  99. rapidata/api_client/models/create_audience_request.py +99 -0
  100. rapidata/api_client/models/create_audience_result.py +87 -0
  101. rapidata/api_client/models/create_benchmark_model.py +87 -0
  102. rapidata/api_client/models/create_benchmark_participant_model.py +87 -0
  103. rapidata/api_client/models/create_benchmark_participant_result.py +89 -0
  104. rapidata/api_client/models/create_benchmark_prompt_result.py +87 -0
  105. rapidata/api_client/models/create_benchmark_result.py +87 -0
  106. rapidata/api_client/models/create_bridge_token_result.py +2 -2
  107. rapidata/api_client/models/create_client_model.py +6 -13
  108. rapidata/api_client/models/create_complex_order_model.py +9 -9
  109. rapidata/api_client/models/create_complex_order_result.py +6 -4
  110. rapidata/api_client/models/create_customer_client_result.py +89 -0
  111. rapidata/api_client/models/create_datapoint_from_files_model.py +3 -3
  112. rapidata/api_client/models/create_datapoint_from_text_sources_model.py +3 -3
  113. rapidata/api_client/models/create_datapoint_from_urls_model.py +3 -3
  114. rapidata/api_client/models/create_datapoint_model.py +134 -0
  115. rapidata/api_client/models/create_datapoint_model_asset.py +154 -0
  116. rapidata/api_client/models/create_datapoint_model_context_asset.py +160 -0
  117. rapidata/api_client/models/create_datapoint_model_metadata_inner.py +154 -0
  118. rapidata/api_client/models/create_datapoint_result.py +6 -18
  119. rapidata/api_client/models/create_demographic_rapid_model.py +45 -7
  120. rapidata/api_client/models/create_demographic_rapid_model_asset.py +160 -0
  121. rapidata/api_client/models/create_demographic_rapid_model_context_asset.py +160 -0
  122. rapidata/api_client/models/create_demographic_rapid_model_new.py +119 -0
  123. rapidata/api_client/models/create_empty_validation_set_result.py +2 -2
  124. rapidata/api_client/models/create_leaderboard_model.py +140 -0
  125. rapidata/api_client/models/create_leaderboard_participant_model.py +87 -0
  126. rapidata/api_client/models/create_leaderboard_participant_result.py +89 -0
  127. rapidata/api_client/models/create_leaderboard_result.py +99 -0
  128. rapidata/api_client/models/create_order_model.py +30 -101
  129. rapidata/api_client/models/create_order_model_referee.py +12 -12
  130. rapidata/api_client/models/create_order_model_workflow.py +35 -21
  131. rapidata/api_client/models/create_order_result.py +6 -4
  132. rapidata/api_client/models/create_rapid_result.py +2 -2
  133. rapidata/api_client/models/create_sample_model.py +93 -0
  134. rapidata/api_client/models/create_sample_model_asset.py +154 -0
  135. rapidata/api_client/models/create_sample_model_obsolete.py +87 -0
  136. rapidata/api_client/models/create_simple_pipeline_model_pipeline_steps_inner.py +8 -22
  137. rapidata/api_client/models/create_unsupported_order_model.py +6 -6
  138. rapidata/api_client/models/create_validation_set_model.py +5 -5
  139. rapidata/api_client/models/datapoint_model.py +3 -3
  140. rapidata/api_client/models/datapoint_model_paged_result.py +105 -0
  141. rapidata/api_client/models/datapoint_state.py +2 -2
  142. rapidata/api_client/models/demographic_filter.py +100 -0
  143. rapidata/api_client/models/dynamic_client_registration_request.py +160 -0
  144. rapidata/api_client/models/early_stopping_referee_model.py +3 -3
  145. rapidata/api_client/models/effort_capped_selection.py +106 -0
  146. rapidata/api_client/models/elo_config.py +2 -2
  147. rapidata/api_client/models/elo_config_model.py +6 -6
  148. rapidata/api_client/models/entity_tag_header_value.py +93 -0
  149. rapidata/api_client/models/evaluation_workflow_config.py +13 -3
  150. rapidata/api_client/models/evaluation_workflow_model.py +16 -6
  151. rapidata/api_client/models/existing_asset_input.py +120 -0
  152. rapidata/api_client/models/existing_asset_input_metadata_value.py +126 -0
  153. rapidata/api_client/models/feature_flag.py +2 -2
  154. rapidata/api_client/models/feature_flag_model.py +6 -6
  155. rapidata/api_client/models/feedback_model.py +7 -7
  156. rapidata/api_client/models/file_asset.py +3 -5
  157. rapidata/api_client/models/file_asset_input.py +104 -0
  158. rapidata/api_client/models/file_asset_input1.py +104 -0
  159. rapidata/api_client/models/file_asset_input1_file.py +168 -0
  160. rapidata/api_client/models/file_asset_input2.py +104 -0
  161. rapidata/api_client/models/file_asset_input3.py +104 -0
  162. rapidata/api_client/models/file_asset_input_file.py +168 -0
  163. rapidata/api_client/models/file_asset_metadata_value.py +252 -0
  164. rapidata/api_client/models/file_asset_model_metadata_value.py +43 -71
  165. rapidata/api_client/models/file_stream_result.py +122 -0
  166. rapidata/api_client/models/file_type.py +39 -0
  167. rapidata/api_client/models/file_type_metadata.py +110 -0
  168. rapidata/api_client/models/file_type_metadata_model.py +97 -0
  169. rapidata/api_client/models/filter.py +7 -25
  170. rapidata/api_client/models/filter_operator.py +3 -2
  171. rapidata/api_client/models/fork_benchmark_result.py +87 -0
  172. rapidata/api_client/models/form_file_wrapper.py +135 -0
  173. rapidata/api_client/models/free_text_payload.py +10 -3
  174. rapidata/api_client/models/free_text_rapid_blueprint.py +10 -3
  175. rapidata/api_client/models/gender_user_filter_model.py +2 -2
  176. rapidata/api_client/models/gender_user_filter_model_gender.py +38 -0
  177. rapidata/api_client/models/get_asset_metadata_result.py +100 -0
  178. rapidata/api_client/models/get_audience_by_id_result.py +111 -0
  179. rapidata/api_client/models/get_available_validation_sets_result.py +2 -2
  180. rapidata/api_client/models/get_benchmark_by_id_query.py +96 -0
  181. rapidata/api_client/models/get_benchmark_by_id_query_result.py +94 -0
  182. rapidata/api_client/models/get_benchmark_by_id_query_result_paged_result.py +105 -0
  183. rapidata/api_client/models/get_benchmark_by_id_result.py +96 -0
  184. rapidata/api_client/models/get_boost_result.py +97 -0
  185. rapidata/api_client/models/get_boost_result_boost_mode.py +37 -0
  186. rapidata/api_client/models/get_boost_result_boost_status.py +39 -0
  187. rapidata/api_client/models/get_compare_ab_summary_result.py +5 -5
  188. rapidata/api_client/models/get_compare_workflow_results_model.py +7 -7
  189. rapidata/api_client/models/get_compare_workflow_results_result.py +5 -5
  190. rapidata/api_client/models/get_datapoint_by_id_result.py +10 -21
  191. rapidata/api_client/models/get_datapoint_by_id_result_asset.py +170 -0
  192. rapidata/api_client/models/get_dataset_by_id_result.py +2 -2
  193. rapidata/api_client/models/get_dataset_progress_result.py +2 -2
  194. rapidata/api_client/models/get_evaluation_workflow_results_model.py +119 -0
  195. rapidata/api_client/models/get_failed_datapoints_result.py +5 -5
  196. rapidata/api_client/models/get_failed_datapoints_result_datapoint.py +100 -0
  197. rapidata/api_client/models/get_file_metadata_result.py +100 -0
  198. rapidata/api_client/models/get_grouped_ranking_workflow_results_model.py +106 -0
  199. rapidata/api_client/models/get_grouped_ranking_workflow_results_result.py +97 -0
  200. rapidata/api_client/models/get_grouped_ranking_workflow_results_result_paged_result.py +105 -0
  201. rapidata/api_client/models/get_leaderboard_by_id_result.py +135 -0
  202. rapidata/api_client/models/get_order_by_id_result.py +12 -5
  203. rapidata/api_client/models/get_participant_by_id_result.py +91 -0
  204. rapidata/api_client/models/get_pipeline_by_id_result.py +5 -5
  205. rapidata/api_client/models/get_public_orders_result.py +2 -2
  206. rapidata/api_client/models/get_public_responses_result.py +95 -0
  207. rapidata/api_client/models/get_public_responses_result_response.py +112 -0
  208. rapidata/api_client/models/get_rapid_responses_result.py +6 -12
  209. rapidata/api_client/models/get_recommended_validation_set_result.py +95 -0
  210. rapidata/api_client/models/get_responses_for_rapid_result.py +106 -0
  211. rapidata/api_client/models/get_responses_for_rapid_result_response.py +103 -0
  212. rapidata/api_client/models/get_responses_for_rapid_result_response_result.py +266 -0
  213. rapidata/api_client/models/get_responses_result.py +5 -5
  214. rapidata/api_client/models/get_responses_result_response.py +103 -0
  215. rapidata/api_client/models/get_sample_by_id_result.py +125 -0
  216. rapidata/api_client/models/get_simple_workflow_results_model.py +20 -15
  217. rapidata/api_client/models/get_standing_by_id_result.py +96 -0
  218. rapidata/api_client/models/get_validation_rapids_result.py +32 -41
  219. rapidata/api_client/models/get_validation_set_by_id_result.py +10 -4
  220. rapidata/api_client/models/get_workflow_by_id_result.py +5 -5
  221. rapidata/api_client/models/get_workflow_by_id_result_workflow.py +23 -9
  222. rapidata/api_client/models/get_workflow_progress_result.py +5 -11
  223. rapidata/api_client/models/get_workflow_results_result.py +34 -23
  224. rapidata/api_client/models/get_workflow_results_result_response.py +103 -0
  225. rapidata/api_client/models/google_one_tap_login_model.py +4 -4
  226. rapidata/api_client/models/grouped_ranking_workflow_config.py +155 -0
  227. rapidata/api_client/models/grouped_ranking_workflow_config_context_assets_value.py +170 -0
  228. rapidata/api_client/models/grouped_ranking_workflow_model.py +147 -0
  229. rapidata/api_client/models/grouped_ranking_workflow_model1.py +121 -0
  230. rapidata/api_client/models/i_artifact_model.py +182 -0
  231. rapidata/api_client/models/i_artifact_model_campaign_artifact_model.py +98 -0
  232. rapidata/api_client/models/i_artifact_model_dataset_artifact_model.py +98 -0
  233. rapidata/api_client/models/i_artifact_model_file_artifact_model.py +98 -0
  234. rapidata/api_client/models/i_artifact_model_workflow_artifact_model.py +98 -0
  235. rapidata/api_client/models/i_artifact_model_workflow_config_artifact_model.py +102 -0
  236. rapidata/api_client/models/i_asset.py +170 -0
  237. rapidata/api_client/models/i_asset_file_asset.py +111 -0
  238. rapidata/api_client/models/i_asset_input.py +156 -0
  239. rapidata/api_client/models/i_asset_input_existing_asset_input.py +118 -0
  240. rapidata/api_client/models/i_asset_input_multi_asset_input.py +128 -0
  241. rapidata/api_client/models/i_asset_input_text_asset_input.py +118 -0
  242. rapidata/api_client/models/i_asset_model.py +170 -0
  243. rapidata/api_client/models/i_asset_model_file_asset_model.py +113 -0
  244. rapidata/api_client/models/i_asset_model_multi_asset_model.py +123 -0
  245. rapidata/api_client/models/i_asset_model_null_asset_model.py +111 -0
  246. rapidata/api_client/models/i_asset_model_text_asset_model.py +113 -0
  247. rapidata/api_client/models/i_asset_multi_asset.py +121 -0
  248. rapidata/api_client/models/i_asset_null_asset.py +109 -0
  249. rapidata/api_client/models/i_asset_text_asset.py +111 -0
  250. rapidata/api_client/models/i_campaign_filter.py +282 -0
  251. rapidata/api_client/models/i_campaign_filter_and_filter.py +117 -0
  252. rapidata/api_client/models/i_campaign_filter_campaign_filter.py +98 -0
  253. rapidata/api_client/models/i_campaign_filter_country_filter.py +98 -0
  254. rapidata/api_client/models/i_campaign_filter_demographic_filter.py +100 -0
  255. rapidata/api_client/models/i_campaign_filter_language_filter.py +98 -0
  256. rapidata/api_client/models/i_campaign_filter_new_user_filter.py +96 -0
  257. rapidata/api_client/models/i_campaign_filter_not_filter.py +113 -0
  258. rapidata/api_client/models/i_campaign_filter_or_filter.py +117 -0
  259. rapidata/api_client/models/i_campaign_filter_response_count_filter.py +103 -0
  260. rapidata/api_client/models/i_campaign_filter_user_action_restriction_filter.py +106 -0
  261. rapidata/api_client/models/i_campaign_filter_user_score_filter.py +102 -0
  262. rapidata/api_client/models/i_campaign_filter_user_state_filter.py +106 -0
  263. rapidata/api_client/models/i_dataset_metadata_input.py +154 -0
  264. rapidata/api_client/models/i_dataset_metadata_input_prompt_asset_metadata_input.py +100 -0
  265. rapidata/api_client/models/i_dataset_metadata_input_prompt_metadata_input.py +96 -0
  266. rapidata/api_client/models/i_dataset_metadata_input_transcription_metadata_input.py +96 -0
  267. rapidata/api_client/models/i_dataset_model.py +126 -0
  268. rapidata/api_client/models/i_dataset_model_clone_dataset_model.py +98 -0
  269. rapidata/api_client/models/i_metadata.py +252 -0
  270. rapidata/api_client/models/i_metadata_classification_metadata.py +109 -0
  271. rapidata/api_client/models/i_metadata_count_metadata.py +109 -0
  272. rapidata/api_client/models/i_metadata_file_type_metadata.py +110 -0
  273. rapidata/api_client/models/i_metadata_image_dimension_metadata.py +111 -0
  274. rapidata/api_client/models/i_metadata_input.py +126 -0
  275. rapidata/api_client/models/i_metadata_input_text_metadata_input.py +111 -0
  276. rapidata/api_client/models/i_metadata_location_metadata.py +111 -0
  277. rapidata/api_client/models/i_metadata_model.py +252 -0
  278. rapidata/api_client/models/i_metadata_model_classification_metadata_model.py +96 -0
  279. rapidata/api_client/models/i_metadata_model_count_metadata_model.py +96 -0
  280. rapidata/api_client/models/i_metadata_model_file_type_metadata_model.py +97 -0
  281. rapidata/api_client/models/i_metadata_model_image_dimension_metadata_model.py +98 -0
  282. rapidata/api_client/models/i_metadata_model_location_metadata_model.py +98 -0
  283. rapidata/api_client/models/i_metadata_model_original_filename_metadata_model.py +96 -0
  284. rapidata/api_client/models/i_metadata_model_source_url_metadata_model.py +96 -0
  285. rapidata/api_client/models/i_metadata_model_streams_metadata_model.py +100 -0
  286. rapidata/api_client/models/i_metadata_model_text_metadata_model.py +101 -0
  287. rapidata/api_client/models/i_metadata_model_video_duration_metadata_model.py +97 -0
  288. rapidata/api_client/models/i_metadata_original_filename_metadata.py +109 -0
  289. rapidata/api_client/models/i_metadata_source_url_metadata.py +109 -0
  290. rapidata/api_client/models/i_metadata_streams_metadata.py +113 -0
  291. rapidata/api_client/models/i_metadata_text_metadata.py +114 -0
  292. rapidata/api_client/models/i_metadata_video_duration_metadata.py +110 -0
  293. rapidata/api_client/models/i_order_workflow_model.py +168 -0
  294. rapidata/api_client/models/i_order_workflow_model_compare_workflow_model.py +146 -0
  295. rapidata/api_client/models/i_order_workflow_model_evaluation_workflow_model.py +108 -0
  296. rapidata/api_client/models/i_order_workflow_model_grouped_ranking_workflow_model.py +147 -0
  297. rapidata/api_client/models/i_order_workflow_model_simple_workflow_model.py +110 -0
  298. rapidata/api_client/models/i_pair_maker_config.py +126 -0
  299. rapidata/api_client/models/i_pair_maker_config_model.py +126 -0
  300. rapidata/api_client/models/i_pair_maker_config_model_online_pair_maker_config_model.py +98 -0
  301. rapidata/api_client/models/i_pair_maker_config_online_pair_maker_config.py +98 -0
  302. rapidata/api_client/models/i_pair_maker_information.py +126 -0
  303. rapidata/api_client/models/i_pair_maker_information_online_pair_maker_information.py +100 -0
  304. rapidata/api_client/models/i_pipeline_artifact_model.py +126 -0
  305. rapidata/api_client/models/i_pipeline_artifact_model_create_dataset_artifact_model.py +102 -0
  306. rapidata/api_client/models/i_pipeline_model.py +126 -0
  307. rapidata/api_client/models/i_pipeline_model_create_simple_pipeline_model.py +116 -0
  308. rapidata/api_client/models/i_pipeline_step_model.py +168 -0
  309. rapidata/api_client/models/i_pipeline_step_model_dataset_evaluation_step_model.py +102 -0
  310. rapidata/api_client/models/i_pipeline_step_model_send_completion_mail_step_model.py +98 -0
  311. rapidata/api_client/models/i_pipeline_step_model_workflow_aggregation_step_model.py +103 -0
  312. rapidata/api_client/models/i_pipeline_step_model_workflow_labeling_step_model.py +96 -0
  313. rapidata/api_client/models/i_rapid_blueprint.py +252 -0
  314. rapidata/api_client/models/i_rapid_blueprint_attach_category_rapid_blueprint.py +108 -0
  315. rapidata/api_client/models/i_rapid_blueprint_bounding_box_rapid_blueprint.py +96 -0
  316. rapidata/api_client/models/i_rapid_blueprint_compare_rapid_blueprint.py +98 -0
  317. rapidata/api_client/models/i_rapid_blueprint_free_text_rapid_blueprint.py +103 -0
  318. rapidata/api_client/models/i_rapid_blueprint_line_rapid_blueprint.py +96 -0
  319. rapidata/api_client/models/i_rapid_blueprint_locate_rapid_blueprint.py +96 -0
  320. rapidata/api_client/models/i_rapid_blueprint_named_entity_rapid_blueprint.py +98 -0
  321. rapidata/api_client/models/i_rapid_blueprint_polygon_rapid_blueprint.py +96 -0
  322. rapidata/api_client/models/i_rapid_blueprint_scrub_rapid_blueprint.py +96 -0
  323. rapidata/api_client/models/i_rapid_blueprint_transcription_rapid_blueprint.py +96 -0
  324. rapidata/api_client/models/i_rapid_payload.py +252 -0
  325. rapidata/api_client/models/i_rapid_payload_bounding_box_payload.py +96 -0
  326. rapidata/api_client/models/i_rapid_payload_classify_payload.py +106 -0
  327. rapidata/api_client/models/i_rapid_payload_compare_payload.py +96 -0
  328. rapidata/api_client/models/i_rapid_payload_free_text_payload.py +103 -0
  329. rapidata/api_client/models/i_rapid_payload_line_payload.py +96 -0
  330. rapidata/api_client/models/i_rapid_payload_locate_payload.py +96 -0
  331. rapidata/api_client/models/i_rapid_payload_named_entity_payload.py +98 -0
  332. rapidata/api_client/models/i_rapid_payload_polygon_payload.py +96 -0
  333. rapidata/api_client/models/i_rapid_payload_scrub_payload.py +96 -0
  334. rapidata/api_client/models/i_rapid_payload_transcription_payload.py +106 -0
  335. rapidata/api_client/models/i_rapid_result.py +266 -0
  336. rapidata/api_client/models/i_rapid_result_attach_category_result.py +98 -0
  337. rapidata/api_client/models/i_rapid_result_bounding_box_result.py +106 -0
  338. rapidata/api_client/models/i_rapid_result_compare_result.py +98 -0
  339. rapidata/api_client/models/i_rapid_result_free_text_result.py +98 -0
  340. rapidata/api_client/models/i_rapid_result_line_result.py +106 -0
  341. rapidata/api_client/models/i_rapid_result_locate_result.py +106 -0
  342. rapidata/api_client/models/i_rapid_result_named_entity_result.py +106 -0
  343. rapidata/api_client/models/i_rapid_result_polygon_result.py +106 -0
  344. rapidata/api_client/models/i_rapid_result_scrub_result.py +98 -0
  345. rapidata/api_client/models/i_rapid_result_skip_result.py +96 -0
  346. rapidata/api_client/models/i_rapid_result_transcription_result.py +106 -0
  347. rapidata/api_client/models/i_referee_config.py +154 -0
  348. rapidata/api_client/models/i_referee_config_naive_referee_config.py +96 -0
  349. rapidata/api_client/models/i_referee_config_never_ending_referee_config.py +94 -0
  350. rapidata/api_client/models/i_referee_config_probabilistic_attach_category_referee_config.py +98 -0
  351. rapidata/api_client/models/i_referee_info.py +154 -0
  352. rapidata/api_client/models/i_referee_info_naive_referee_info.py +96 -0
  353. rapidata/api_client/models/i_referee_info_never_ending_referee_info.py +94 -0
  354. rapidata/api_client/models/i_referee_info_probabilistic_attach_category_referee_info.py +98 -0
  355. rapidata/api_client/models/i_referee_model.py +140 -0
  356. rapidata/api_client/models/i_referee_model_early_stopping_referee_model.py +98 -0
  357. rapidata/api_client/models/i_referee_model_naive_referee_model.py +96 -0
  358. rapidata/api_client/models/i_selection.py +240 -0
  359. rapidata/api_client/models/i_selection_ab_test_selection.py +122 -0
  360. rapidata/api_client/models/i_selection_capped_selection.py +108 -0
  361. rapidata/api_client/models/i_selection_conditional_validation_selection.py +110 -0
  362. rapidata/api_client/models/i_selection_demographic_selection.py +98 -0
  363. rapidata/api_client/models/i_selection_effort_capped_selection.py +101 -0
  364. rapidata/api_client/models/i_selection_labeling_selection.py +103 -0
  365. rapidata/api_client/models/i_selection_shuffling_selection.py +106 -0
  366. rapidata/api_client/models/i_selection_static_selection.py +96 -0
  367. rapidata/api_client/models/i_selection_validation_selection.py +98 -0
  368. rapidata/api_client/models/i_user_filter_model.py +282 -0
  369. rapidata/api_client/models/i_user_filter_model_age_user_filter_model.py +104 -0
  370. rapidata/api_client/models/i_user_filter_model_and_user_filter_model.py +106 -0
  371. rapidata/api_client/models/i_user_filter_model_campaign_user_filter_model.py +96 -0
  372. rapidata/api_client/models/i_user_filter_model_country_user_filter_model.py +96 -0
  373. rapidata/api_client/models/i_user_filter_model_custom_user_filter_model.py +98 -0
  374. rapidata/api_client/models/i_user_filter_model_gender_user_filter_model.py +104 -0
  375. rapidata/api_client/models/i_user_filter_model_language_user_filter_model.py +96 -0
  376. rapidata/api_client/models/i_user_filter_model_new_user_filter_model.py +94 -0
  377. rapidata/api_client/models/i_user_filter_model_not_user_filter_model.py +102 -0
  378. rapidata/api_client/models/i_user_filter_model_or_user_filter_model.py +106 -0
  379. rapidata/api_client/models/i_user_filter_model_response_count_user_filter_model.py +101 -0
  380. rapidata/api_client/models/i_user_filter_model_user_score_user_filter_model.py +105 -0
  381. rapidata/api_client/models/i_validation_metadata_input.py +140 -0
  382. rapidata/api_client/models/i_validation_metadata_input_prompt_asset_metadata_input.py +100 -0
  383. rapidata/api_client/models/i_validation_metadata_input_prompt_metadata_input.py +96 -0
  384. rapidata/api_client/models/i_validation_truth.py +280 -0
  385. rapidata/api_client/models/i_validation_truth_attach_category_truth.py +96 -0
  386. rapidata/api_client/models/i_validation_truth_bounding_box_truth.py +102 -0
  387. rapidata/api_client/models/i_validation_truth_compare_truth.py +96 -0
  388. rapidata/api_client/models/i_validation_truth_empty_validation_truth.py +94 -0
  389. rapidata/api_client/models/i_validation_truth_line_truth.py +94 -0
  390. rapidata/api_client/models/i_validation_truth_locate_box_truth.py +104 -0
  391. rapidata/api_client/models/i_validation_truth_multi_compare_truth.py +96 -0
  392. rapidata/api_client/models/i_validation_truth_named_entity_truth.py +104 -0
  393. rapidata/api_client/models/i_validation_truth_polygon_truth.py +94 -0
  394. rapidata/api_client/models/i_validation_truth_scrub_truth.py +104 -0
  395. rapidata/api_client/models/i_validation_truth_skip_truth.py +94 -0
  396. rapidata/api_client/models/i_validation_truth_transcription_truth.py +115 -0
  397. rapidata/api_client/models/i_workflow_config.py +168 -0
  398. rapidata/api_client/models/i_workflow_config_compare_workflow_config.py +142 -0
  399. rapidata/api_client/models/i_workflow_config_evaluation_workflow_config.py +114 -0
  400. rapidata/api_client/models/i_workflow_config_grouped_ranking_workflow_config.py +155 -0
  401. rapidata/api_client/models/i_workflow_config_simple_workflow_config.py +116 -0
  402. rapidata/api_client/models/i_workflow_model.py +168 -0
  403. rapidata/api_client/models/i_workflow_model_compare_workflow_model.py +145 -0
  404. rapidata/api_client/models/i_workflow_model_evaluation_workflow_model.py +115 -0
  405. rapidata/api_client/models/i_workflow_model_grouped_ranking_workflow_model.py +121 -0
  406. rapidata/api_client/models/i_workflow_model_simple_workflow_model.py +119 -0
  407. rapidata/api_client/models/image_dimension_metadata.py +12 -1
  408. rapidata/api_client/models/inquire_file_metadata_result.py +100 -0
  409. rapidata/api_client/models/inspect_report_result.py +2 -2
  410. rapidata/api_client/models/json_web_key.py +224 -0
  411. rapidata/api_client/models/json_web_key_set.py +95 -0
  412. rapidata/api_client/models/labeling_selection.py +11 -13
  413. rapidata/api_client/models/language_filter.py +98 -0
  414. rapidata/api_client/models/leaderboard_query_result.py +135 -0
  415. rapidata/api_client/models/leaderboard_query_result_paged_result.py +105 -0
  416. rapidata/api_client/models/leaderboards_query_result.py +135 -0
  417. rapidata/api_client/models/line_result.py +3 -3
  418. rapidata/api_client/models/line_result_line.py +97 -0
  419. rapidata/api_client/models/line_result_line_point.py +89 -0
  420. rapidata/api_client/models/local_file_wrapper.py +120 -0
  421. rapidata/api_client/models/locate_coordinate.py +4 -13
  422. rapidata/api_client/models/location_metadata.py +12 -1
  423. rapidata/api_client/models/logic_operator.py +2 -2
  424. rapidata/api_client/models/metadata_i_order_metadata_input.py +154 -0
  425. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_asset_metadata_input.py +100 -0
  426. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_metadata_input.py +96 -0
  427. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_transcription_metadata_input.py +96 -0
  428. rapidata/api_client/models/metadata_prompt_asset_metadata_input.py +100 -0
  429. rapidata/api_client/models/metadata_prompt_metadata_input.py +96 -0
  430. rapidata/api_client/models/metadata_transcription_metadata_input.py +96 -0
  431. rapidata/api_client/models/multi_asset.py +6 -6
  432. rapidata/api_client/models/multi_asset_assets_inner.py +170 -0
  433. rapidata/api_client/models/multi_asset_input.py +130 -0
  434. rapidata/api_client/models/multi_asset_input1.py +110 -0
  435. rapidata/api_client/models/multi_asset_input1_assets_inner.py +198 -0
  436. rapidata/api_client/models/multi_asset_input2.py +110 -0
  437. rapidata/api_client/models/multi_asset_input3.py +110 -0
  438. rapidata/api_client/models/multi_asset_input3_assets_inner.py +198 -0
  439. rapidata/api_client/models/multi_asset_input_assets_inner.py +156 -0
  440. rapidata/api_client/models/multi_asset_model.py +3 -3
  441. rapidata/api_client/models/naive_referee_model.py +2 -2
  442. rapidata/api_client/models/named_classification.py +4 -13
  443. rapidata/api_client/models/new_user_filter.py +96 -0
  444. rapidata/api_client/models/newsletter_model.py +6 -6
  445. rapidata/api_client/models/not_available_yet_result.py +4 -13
  446. rapidata/api_client/models/not_filter.py +117 -0
  447. rapidata/api_client/models/not_user_filter_model.py +3 -3
  448. rapidata/api_client/models/null_asset.py +3 -5
  449. rapidata/api_client/models/online_pair_maker_config_model.py +3 -3
  450. rapidata/api_client/models/or_filter.py +121 -0
  451. rapidata/api_client/models/or_user_filter_model.py +3 -3
  452. rapidata/api_client/models/order_model.py +15 -14
  453. rapidata/api_client/models/order_state.py +2 -2
  454. rapidata/api_client/models/original_filename_metadata.py +12 -1
  455. rapidata/api_client/models/page_info.py +2 -7
  456. rapidata/api_client/models/paged_result_aggregated_orders_model.py +105 -0
  457. rapidata/api_client/models/paged_result_benchmark_query_result.py +105 -0
  458. rapidata/api_client/models/paged_result_campaign_query_result.py +105 -0
  459. rapidata/api_client/models/paged_result_clients_query_result.py +105 -0
  460. rapidata/api_client/models/paged_result_datapoint_model.py +105 -0
  461. rapidata/api_client/models/paged_result_get_compare_workflow_results_result.py +105 -0
  462. rapidata/api_client/models/paged_result_get_grouped_ranking_workflow_results_result.py +105 -0
  463. rapidata/api_client/models/paged_result_get_validation_rapids_result.py +105 -0
  464. rapidata/api_client/models/paged_result_get_workflow_results_result.py +105 -0
  465. rapidata/api_client/models/paged_result_i_workflow_model.py +105 -0
  466. rapidata/api_client/models/paged_result_leaderboard_query_result.py +105 -0
  467. rapidata/api_client/models/paged_result_leaderboards_query_result.py +105 -0
  468. rapidata/api_client/models/paged_result_of_aggregated_orders_model.py +103 -0
  469. rapidata/api_client/models/paged_result_of_benchmark_query_result.py +103 -0
  470. rapidata/api_client/models/paged_result_of_campaign_query_result.py +103 -0
  471. rapidata/api_client/models/paged_result_of_clients_query_result.py +103 -0
  472. rapidata/api_client/models/paged_result_of_get_compare_workflow_results_result.py +103 -0
  473. rapidata/api_client/models/paged_result_of_get_grouped_ranking_workflow_results_result.py +103 -0
  474. rapidata/api_client/models/paged_result_of_get_validation_rapids_result.py +103 -0
  475. rapidata/api_client/models/paged_result_of_get_workflow_results_result.py +103 -0
  476. rapidata/api_client/models/paged_result_of_i_workflow_model.py +103 -0
  477. rapidata/api_client/models/paged_result_of_leaderboards_query_result.py +103 -0
  478. rapidata/api_client/models/paged_result_of_order_model.py +103 -0
  479. rapidata/api_client/models/paged_result_of_participant_by_benchmark.py +103 -0
  480. rapidata/api_client/models/paged_result_of_prompt_by_benchmark_result.py +103 -0
  481. rapidata/api_client/models/paged_result_of_query_audiences_result.py +103 -0
  482. rapidata/api_client/models/paged_result_of_query_datapoints_by_dataset_id_result.py +103 -0
  483. rapidata/api_client/models/paged_result_of_query_validation_rapid_eligibility_result.py +103 -0
  484. rapidata/api_client/models/paged_result_of_rapid_model.py +103 -0
  485. rapidata/api_client/models/paged_result_of_runs_by_leaderboard_result.py +103 -0
  486. rapidata/api_client/models/paged_result_of_sample_by_identifier.py +103 -0
  487. rapidata/api_client/models/paged_result_of_sample_by_participant.py +103 -0
  488. rapidata/api_client/models/paged_result_of_standing_by_leaderboard.py +103 -0
  489. rapidata/api_client/models/paged_result_of_validation_set_model.py +103 -0
  490. rapidata/api_client/models/paged_result_order_model.py +105 -0
  491. rapidata/api_client/models/paged_result_participant_by_benchmark.py +105 -0
  492. rapidata/api_client/models/paged_result_potential_validation_rapid.py +105 -0
  493. rapidata/api_client/models/paged_result_prompt_by_benchmark_result.py +105 -0
  494. rapidata/api_client/models/paged_result_query_audiences_result.py +105 -0
  495. rapidata/api_client/models/paged_result_query_datapoints_by_dataset_id_result.py +105 -0
  496. rapidata/api_client/models/paged_result_query_validation_rapid_eligibility_result.py +105 -0
  497. rapidata/api_client/models/paged_result_rapid_model.py +105 -0
  498. rapidata/api_client/models/paged_result_runs_by_leaderboard_result.py +105 -0
  499. rapidata/api_client/models/paged_result_sample_by_identifier.py +105 -0
  500. rapidata/api_client/models/paged_result_sample_by_participant.py +105 -0
  501. rapidata/api_client/models/paged_result_standing_by_leaderboard.py +105 -0
  502. rapidata/api_client/models/paged_result_validation_set_model.py +105 -0
  503. rapidata/api_client/models/participant_by_benchmark.py +94 -0
  504. rapidata/api_client/models/participant_by_benchmark_paged_result.py +105 -0
  505. rapidata/api_client/models/participant_by_leaderboard.py +113 -0
  506. rapidata/api_client/models/participant_by_leaderboard_paged_result.py +105 -0
  507. rapidata/api_client/models/participant_status.py +38 -0
  508. rapidata/api_client/models/pipeline_id_workflow_config_put_request.py +140 -0
  509. rapidata/api_client/models/polygon_result.py +3 -3
  510. rapidata/api_client/models/polygon_result_coordinate.py +89 -0
  511. rapidata/api_client/models/polygon_result_shape.py +95 -0
  512. rapidata/api_client/models/potential_validation_rapid.py +103 -0
  513. rapidata/api_client/models/potential_validation_rapid_paged_result.py +105 -0
  514. rapidata/api_client/models/potential_validation_rapid_truth.py +280 -0
  515. rapidata/api_client/models/preliminary_download_model.py +5 -5
  516. rapidata/api_client/models/preview_order_model.py +87 -0
  517. rapidata/api_client/models/problem_details.py +2 -20
  518. rapidata/api_client/models/prompt_asset_metadata_input.py +6 -8
  519. rapidata/api_client/models/prompt_asset_metadata_input_asset.py +154 -0
  520. rapidata/api_client/models/prompt_by_benchmark_result.py +112 -0
  521. rapidata/api_client/models/prompt_by_benchmark_result_paged_result.py +105 -0
  522. rapidata/api_client/models/prompt_by_leaderboard_result.py +90 -0
  523. rapidata/api_client/models/prompt_by_leaderboard_result_paged_result.py +105 -0
  524. rapidata/api_client/models/prompt_metadata.py +12 -1
  525. rapidata/api_client/models/prompt_metadata_input.py +2 -2
  526. rapidata/api_client/models/prompt_type.py +38 -0
  527. rapidata/api_client/models/proxy_file_wrapper.py +129 -0
  528. rapidata/api_client/models/public_order_model.py +2 -2
  529. rapidata/api_client/models/public_rapid_response.py +112 -0
  530. rapidata/api_client/models/query_audiences_result.py +111 -0
  531. rapidata/api_client/models/query_datapoints_by_dataset_id_result.py +95 -0
  532. rapidata/api_client/models/query_model.py +10 -5
  533. rapidata/api_client/models/query_validation_model.py +97 -0
  534. rapidata/api_client/models/query_validation_rapid_eligibility_model_query_validation_model.py +107 -0
  535. rapidata/api_client/models/query_validation_rapid_eligibility_result.py +103 -0
  536. rapidata/api_client/models/query_validation_rapid_eligibility_result_truth.py +280 -0
  537. rapidata/api_client/models/rapid_issue.py +2 -2
  538. rapidata/api_client/models/rapid_modality.py +46 -0
  539. rapidata/api_client/models/rapid_model.py +33 -49
  540. rapidata/api_client/models/rapid_result_model.py +7 -7
  541. rapidata/api_client/models/rapid_skipped_model.py +5 -5
  542. rapidata/api_client/models/rapid_state.py +2 -2
  543. rapidata/api_client/models/read_bridge_token_keys_result.py +10 -24
  544. rapidata/api_client/models/reference_asset_input.py +100 -0
  545. rapidata/api_client/models/report_model.py +9 -15
  546. rapidata/api_client/models/response_count_filter.py +103 -0
  547. rapidata/api_client/models/response_count_user_filter_model.py +2 -8
  548. rapidata/api_client/models/retrieval_mode.py +2 -2
  549. rapidata/api_client/models/root_filter.py +5 -14
  550. rapidata/api_client/models/run_status.py +39 -0
  551. rapidata/api_client/models/runs_by_leaderboard_result.py +104 -0
  552. rapidata/api_client/models/runs_by_leaderboard_result_paged_result.py +105 -0
  553. rapidata/api_client/models/sample_by_identifier.py +125 -0
  554. rapidata/api_client/models/sample_by_identifier_paged_result.py +105 -0
  555. rapidata/api_client/models/sample_by_participant.py +121 -0
  556. rapidata/api_client/models/sample_by_participant_paged_result.py +105 -0
  557. rapidata/api_client/models/scrub_range.py +2 -2
  558. rapidata/api_client/models/send_survey_model.py +87 -0
  559. rapidata/api_client/models/simple_workflow_config.py +15 -7
  560. rapidata/api_client/models/simple_workflow_config_blueprint.py +37 -23
  561. rapidata/api_client/models/simple_workflow_config_model.py +11 -3
  562. rapidata/api_client/models/simple_workflow_model.py +14 -4
  563. rapidata/api_client/models/simple_workflow_model1.py +4 -11
  564. rapidata/api_client/models/simple_workflow_model_blueprint.py +1 -1
  565. rapidata/api_client/models/sort_criterion.py +5 -11
  566. rapidata/api_client/models/sort_direction.py +2 -2
  567. rapidata/api_client/models/source_url_metadata.py +12 -1
  568. rapidata/api_client/models/standing_by_benchmark.py +113 -0
  569. rapidata/api_client/models/standing_by_leaderboard.py +113 -0
  570. rapidata/api_client/models/standing_by_leaderboard_paged_result.py +105 -0
  571. rapidata/api_client/models/standing_status.py +38 -0
  572. rapidata/api_client/models/standings_by_benchmark_result.py +95 -0
  573. rapidata/api_client/models/standings_by_leaderboard_result.py +95 -0
  574. rapidata/api_client/models/start_preliminary_download_result.py +87 -0
  575. rapidata/api_client/models/sticky_state.py +3 -2
  576. rapidata/api_client/models/stream_file_wrapper.py +138 -0
  577. rapidata/api_client/models/streams_metadata.py +113 -0
  578. rapidata/api_client/models/streams_metadata_model.py +100 -0
  579. rapidata/api_client/models/string_segment.py +105 -0
  580. rapidata/api_client/models/submit_coco_model.py +1 -3
  581. rapidata/api_client/models/submit_order_model.py +87 -0
  582. rapidata/api_client/models/submit_participant_result.py +89 -0
  583. rapidata/api_client/models/submit_prompt_model.py +107 -0
  584. rapidata/api_client/models/submit_prompt_model_prompt_asset.py +202 -0
  585. rapidata/api_client/models/tags_by_benchmark_result.py +87 -0
  586. rapidata/api_client/models/text_asset.py +3 -5
  587. rapidata/api_client/models/text_asset_input.py +120 -0
  588. rapidata/api_client/models/text_metadata.py +18 -2
  589. rapidata/api_client/models/text_metadata_input.py +111 -0
  590. rapidata/api_client/models/text_metadata_model.py +7 -2
  591. rapidata/api_client/models/transcription_metadata.py +9 -1
  592. rapidata/api_client/models/transcription_metadata_input.py +2 -2
  593. rapidata/api_client/models/transcription_word.py +2 -2
  594. rapidata/api_client/models/translated_string.py +2 -2
  595. rapidata/api_client/models/unlock_order_result.py +2 -2
  596. rapidata/api_client/models/update_audience_request.py +102 -0
  597. rapidata/api_client/models/update_benchmark_model.py +99 -0
  598. rapidata/api_client/models/update_benchmark_name_model.py +87 -0
  599. rapidata/api_client/models/update_campaign_model.py +11 -11
  600. rapidata/api_client/models/update_dataset_name_model.py +5 -5
  601. rapidata/api_client/models/update_dimensions_model.py +3 -3
  602. rapidata/api_client/models/update_leaderboard_model.py +106 -0
  603. rapidata/api_client/models/update_leaderboard_name_model.py +87 -0
  604. rapidata/api_client/models/update_leaderboard_response_config_model.py +89 -0
  605. rapidata/api_client/models/update_order_name_model.py +5 -5
  606. rapidata/api_client/models/update_participant_model.py +92 -0
  607. rapidata/api_client/models/update_participant_name_model.py +87 -0
  608. rapidata/api_client/models/update_priority_model.py +87 -0
  609. rapidata/api_client/models/update_prompt_tags_model.py +87 -0
  610. rapidata/api_client/models/update_should_alert_model.py +87 -0
  611. rapidata/api_client/models/update_validation_rapid_model.py +28 -10
  612. rapidata/api_client/models/update_validation_rapid_model_context_asset.py +160 -0
  613. rapidata/api_client/models/update_validation_set_model.py +120 -0
  614. rapidata/api_client/models/upload_asset_result.py +102 -0
  615. rapidata/api_client/models/upload_file_from_url_result.py +87 -0
  616. rapidata/api_client/models/upload_file_result.py +87 -0
  617. rapidata/api_client/models/user_action_restriction.py +37 -0
  618. rapidata/api_client/models/user_action_restriction_filter.py +101 -0
  619. rapidata/api_client/models/user_score_filter.py +102 -0
  620. rapidata/api_client/models/user_state.py +38 -0
  621. rapidata/api_client/models/user_state_filter.py +101 -0
  622. rapidata/api_client/models/validation_chance.py +20 -3
  623. rapidata/api_client/models/validation_set_model.py +39 -5
  624. rapidata/api_client/models/validation_set_overview_model.py +2 -2
  625. rapidata/api_client/models/validation_set_validation_set_id_rapid_post_payload_parameter.py +252 -0
  626. rapidata/api_client/models/validation_set_validation_set_id_rapid_post_truth_parameter.py +280 -0
  627. rapidata/api_client/models/validation_set_zip_post_request_blueprint.py +252 -0
  628. rapidata/api_client/models/video_duration_metadata.py +109 -0
  629. rapidata/api_client/models/video_duration_metadata_model.py +96 -0
  630. rapidata/api_client/models/workflow_aggregation_step_model.py +3 -12
  631. rapidata/api_client/models/workflow_config_artifact_model_workflow_config.py +23 -9
  632. rapidata/api_client/models/workflow_state.py +2 -2
  633. rapidata/api_client/models/zip_entry_file_wrapper.py +151 -0
  634. rapidata/api_client/rest.py +16 -9
  635. rapidata/api_client_README.md +389 -315
  636. rapidata/rapidata_client/__init__.py +10 -17
  637. rapidata/rapidata_client/api/rapidata_api_client.py +253 -0
  638. rapidata/rapidata_client/benchmark/__init__.py +0 -0
  639. rapidata/rapidata_client/benchmark/_detail_mapper.py +32 -0
  640. rapidata/rapidata_client/benchmark/leaderboard/__init__.py +0 -0
  641. rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py +221 -0
  642. rapidata/rapidata_client/benchmark/participant/__init__.py +0 -0
  643. rapidata/rapidata_client/benchmark/participant/_participant.py +147 -0
  644. rapidata/rapidata_client/benchmark/rapidata_benchmark.py +546 -0
  645. rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +219 -0
  646. rapidata/rapidata_client/config/__init__.py +4 -0
  647. rapidata/rapidata_client/config/logger.py +135 -0
  648. rapidata/rapidata_client/config/logging_config.py +55 -0
  649. rapidata/rapidata_client/config/managed_print.py +6 -0
  650. rapidata/rapidata_client/config/order_config.py +14 -0
  651. rapidata/rapidata_client/config/rapidata_config.py +36 -0
  652. rapidata/rapidata_client/config/tracer.py +184 -0
  653. rapidata/rapidata_client/config/upload_config.py +64 -0
  654. rapidata/rapidata_client/datapoints/__init__.py +10 -0
  655. rapidata/rapidata_client/datapoints/_asset_uploader.py +169 -0
  656. rapidata/rapidata_client/datapoints/_datapoint.py +92 -0
  657. rapidata/rapidata_client/datapoints/_datapoint_uploader.py +47 -0
  658. rapidata/rapidata_client/datapoints/_datapoints_validator.py +70 -0
  659. rapidata/rapidata_client/datapoints/assets/__init__.py +0 -0
  660. rapidata/rapidata_client/datapoints/assets/constants.py +7 -0
  661. rapidata/rapidata_client/{metadata → datapoints/metadata}/__init__.py +1 -0
  662. rapidata/rapidata_client/datapoints/metadata/_media_asset_metadata.py +26 -0
  663. rapidata/rapidata_client/datapoints/metadata/_private_text_metadata.py +16 -0
  664. rapidata/rapidata_client/datapoints/metadata/_prompt_identifier_metadata.py +14 -0
  665. rapidata/rapidata_client/datapoints/metadata/_prompt_metadata.py +12 -0
  666. rapidata/rapidata_client/datapoints/metadata/_public_text_metadata.py +16 -0
  667. rapidata/rapidata_client/{metadata → datapoints/metadata}/_select_words_metadata.py +4 -5
  668. rapidata/rapidata_client/demographic/demographic_manager.py +44 -19
  669. rapidata/rapidata_client/exceptions/__init__.py +1 -0
  670. rapidata/rapidata_client/exceptions/failed_upload_exception.py +20 -0
  671. rapidata/rapidata_client/filter/__init__.py +1 -0
  672. rapidata/rapidata_client/filter/_base_filter.py +27 -6
  673. rapidata/rapidata_client/filter/age_filter.py +21 -10
  674. rapidata/rapidata_client/filter/and_filter.py +42 -0
  675. rapidata/rapidata_client/filter/campaign_filter.py +18 -10
  676. rapidata/rapidata_client/filter/country_filter.py +34 -12
  677. rapidata/rapidata_client/filter/custom_filter.py +22 -12
  678. rapidata/rapidata_client/filter/gender_filter.py +22 -10
  679. rapidata/rapidata_client/filter/language_filter.py +39 -21
  680. rapidata/rapidata_client/filter/models/age_group.py +14 -12
  681. rapidata/rapidata_client/filter/models/gender.py +12 -8
  682. rapidata/rapidata_client/filter/new_user_filter.py +11 -4
  683. rapidata/rapidata_client/filter/not_filter.py +23 -11
  684. rapidata/rapidata_client/filter/or_filter.py +23 -11
  685. rapidata/rapidata_client/filter/rapidata_filters.py +19 -13
  686. rapidata/rapidata_client/filter/response_count_filter.py +36 -20
  687. rapidata/rapidata_client/filter/user_score_filter.py +47 -24
  688. rapidata/rapidata_client/order/_rapidata_order_builder.py +286 -193
  689. rapidata/rapidata_client/order/dataset/_rapidata_dataset.py +153 -0
  690. rapidata/rapidata_client/order/rapidata_order.py +317 -160
  691. rapidata/rapidata_client/order/rapidata_order_manager.py +689 -431
  692. rapidata/rapidata_client/order/rapidata_results.py +98 -67
  693. rapidata/rapidata_client/rapidata_client.py +99 -33
  694. rapidata/rapidata_client/referee/__init__.py +1 -1
  695. rapidata/rapidata_client/referee/_base_referee.py +7 -3
  696. rapidata/rapidata_client/referee/_early_stopping_referee.py +20 -11
  697. rapidata/rapidata_client/referee/_naive_referee.py +18 -3
  698. rapidata/rapidata_client/selection/__init__.py +2 -1
  699. rapidata/rapidata_client/selection/_base_selection.py +9 -2
  700. rapidata/rapidata_client/selection/ab_test_selection.py +28 -20
  701. rapidata/rapidata_client/selection/capped_selection.py +23 -16
  702. rapidata/rapidata_client/selection/conditional_validation_selection.py +43 -24
  703. rapidata/rapidata_client/selection/demographic_selection.py +21 -6
  704. rapidata/rapidata_client/selection/effort_selection.py +49 -0
  705. rapidata/rapidata_client/selection/labeling_selection.py +34 -11
  706. rapidata/rapidata_client/selection/{retrieval_modes.py → rapidata_retrieval_modes.py} +7 -4
  707. rapidata/rapidata_client/selection/rapidata_selections.py +17 -8
  708. rapidata/rapidata_client/selection/shuffling_selection.py +21 -13
  709. rapidata/rapidata_client/selection/static_selection.py +19 -8
  710. rapidata/rapidata_client/selection/validation_selection.py +20 -4
  711. rapidata/rapidata_client/settings/__init__.py +4 -1
  712. rapidata/rapidata_client/settings/_rapidata_setting.py +15 -2
  713. rapidata/rapidata_client/settings/alert_on_fast_response.py +8 -5
  714. rapidata/rapidata_client/settings/allow_neither_both.py +17 -0
  715. rapidata/rapidata_client/settings/custom_setting.py +3 -2
  716. rapidata/rapidata_client/settings/free_text_minimum_characters.py +9 -4
  717. rapidata/rapidata_client/settings/models/translation_behaviour_options.py +3 -2
  718. rapidata/rapidata_client/settings/mute_video.py +15 -0
  719. rapidata/rapidata_client/settings/no_shuffle.py +4 -2
  720. rapidata/rapidata_client/settings/play_video_until_the_end.py +7 -4
  721. rapidata/rapidata_client/settings/rapidata_settings.py +18 -3
  722. rapidata/rapidata_client/settings/swap_context_instruction.py +20 -0
  723. rapidata/rapidata_client/settings/translation_behaviour.py +7 -5
  724. rapidata/rapidata_client/validation/rapidata_validation_set.py +106 -12
  725. rapidata/rapidata_client/validation/rapids/_validation_rapid_uploader.py +62 -0
  726. rapidata/rapidata_client/validation/rapids/box.py +37 -12
  727. rapidata/rapidata_client/validation/rapids/rapids.py +28 -103
  728. rapidata/rapidata_client/validation/rapids/rapids_manager.py +315 -208
  729. rapidata/rapidata_client/validation/validation_set_manager.py +511 -260
  730. rapidata/rapidata_client/workflow/__init__.py +2 -1
  731. rapidata/rapidata_client/workflow/_base_workflow.py +25 -7
  732. rapidata/rapidata_client/workflow/_classify_workflow.py +58 -15
  733. rapidata/rapidata_client/workflow/_compare_workflow.py +44 -9
  734. rapidata/rapidata_client/workflow/_draw_workflow.py +40 -10
  735. rapidata/rapidata_client/workflow/_evaluation_workflow.py +28 -7
  736. rapidata/rapidata_client/workflow/_free_text_workflow.py +46 -9
  737. rapidata/rapidata_client/workflow/_locate_workflow.py +40 -10
  738. rapidata/rapidata_client/workflow/_multi_ranking_workflow.py +87 -0
  739. rapidata/rapidata_client/workflow/_ranking_workflow.py +109 -25
  740. rapidata/rapidata_client/workflow/_select_words_workflow.py +51 -11
  741. rapidata/rapidata_client/workflow/_timestamp_workflow.py +42 -11
  742. rapidata/service/__init__.py +0 -1
  743. rapidata/service/credential_manager.py +14 -14
  744. rapidata/service/openapi_service.py +82 -22
  745. rapidata/types/__init__.py +166 -0
  746. rapidata-2.44.3.dist-info/METADATA +32 -0
  747. rapidata-2.44.3.dist-info/RECORD +1014 -0
  748. {rapidata-2.27.2.dist-info → rapidata-2.44.3.dist-info}/WHEEL +1 -1
  749. rapidata/rapidata_client/api/rapidata_exception.py +0 -107
  750. rapidata/rapidata_client/assets/__init__.py +0 -10
  751. rapidata/rapidata_client/assets/_base_asset.py +0 -11
  752. rapidata/rapidata_client/assets/_media_asset.py +0 -306
  753. rapidata/rapidata_client/assets/_multi_asset.py +0 -61
  754. rapidata/rapidata_client/assets/_sessions.py +0 -35
  755. rapidata/rapidata_client/assets/_text_asset.py +0 -34
  756. rapidata/rapidata_client/assets/data_type_enum.py +0 -7
  757. rapidata/rapidata_client/country_codes/__init__.py +0 -1
  758. rapidata/rapidata_client/country_codes/country_codes.py +0 -19
  759. rapidata/rapidata_client/logging/__init__.py +0 -2
  760. rapidata/rapidata_client/logging/logger.py +0 -122
  761. rapidata/rapidata_client/logging/output_manager.py +0 -20
  762. rapidata/rapidata_client/metadata/_media_asset_metadata.py +0 -15
  763. rapidata/rapidata_client/metadata/_private_text_metadata.py +0 -17
  764. rapidata/rapidata_client/metadata/_prompt_metadata.py +0 -18
  765. rapidata/rapidata_client/metadata/_public_text_metadata.py +0 -17
  766. rapidata/rapidata_client/order/_rapidata_dataset.py +0 -411
  767. rapidata/service/local_file_service.py +0 -25
  768. rapidata-2.27.2.dist-info/METADATA +0 -35
  769. rapidata-2.27.2.dist-info/RECORD +0 -540
  770. /rapidata/rapidata_client/{metadata → datapoints/metadata}/_base_metadata.py +0 -0
  771. {rapidata-2.27.2.dist-info → rapidata-2.44.3.dist-info/licenses}/LICENSE +0 -0
@@ -1,122 +0,0 @@
1
- """
2
- Provides centralized logging configuration for the Rapidata Python SDK.
3
- It sets up a logger instance that is used throughout the SDK to provide
4
- consistent logging behavior and formatting.
5
-
6
- The logger is configured with sensible defaults but can be customized using the
7
- `configure_logger` function to adjust log levels, output destinations, and formatting.
8
-
9
- Example:
10
- Basic usage with default configuration:
11
- ```python
12
- from rapidata import logger
13
-
14
- logger.info("This is an info message")
15
- logger.error("This is an error message")
16
- ```
17
-
18
- Custom configuration:
19
- ```python
20
- from rapidata import configure_logger
21
-
22
- # Configure with DEBUG level and file output
23
- configure_logger(
24
- level="DEBUG",
25
- log_file="/path/to/logs/rapidata.log"
26
- )
27
- ```
28
- """
29
- import logging
30
- import os
31
- from typing import Optional
32
-
33
- # Create module-level logger
34
- logger = logging.getLogger("rapidata")
35
-
36
- def configure_logger(
37
- level: str = "WARNING",
38
- log_file: Optional[str] = None,
39
- format_string: str = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
40
- ) -> None:
41
- """
42
- Configure the logger with custom settings.
43
-
44
- This function allows you to customize the logging behavior for the entire SDK.
45
- You can set the log level, specify a file for log output, and customize the log message format.
46
-
47
- Note:
48
- This function removes any existing handlers before adding new ones,
49
- so it's safe to call multiple times to reconfigure logging.
50
-
51
- Args:
52
- level: The logging level to set. Must be one of:\n
53
- - "DEBUG": Detailed information for diagnosing problems
54
- - "INFO": General information about program execution
55
- - "WARNING": Something unexpected happened (default)
56
- - "ERROR": A serious problem occurred
57
- - "CRITICAL": A very serious error occurred
58
-
59
- log_file: Optional path to a file where logs should be written.
60
- If provided, logs will be written to both console and file.
61
- The directory will be created if it doesn't exist.
62
-
63
- format_string: Custom format string for log messages.
64
- Uses Python logging format specifications.
65
- Default includes timestamp, logger name, level, and message.
66
-
67
- Example:
68
- Configure for development with debug logging:
69
- ```python
70
- configure_logger(level="DEBUG")
71
- ```
72
-
73
- Configure for production with file logging:
74
- ```python
75
- configure_logger(
76
- level="INFO",
77
- log_file="/var/log/rapidata/app.log"
78
- )
79
- ```
80
-
81
- Configure with custom format:
82
- ```python
83
- configure_logger(
84
- level="INFO",
85
- format_string="[%(levelname)s] %(message)s"
86
- )
87
- ```
88
- """
89
- # Map string levels to logging constants for validation and conversion
90
- level_map = {
91
- "DEBUG": logging.DEBUG,
92
- "INFO": logging.INFO,
93
- "WARNING": logging.WARNING,
94
- "ERROR": logging.ERROR,
95
- "CRITICAL": logging.CRITICAL
96
- }
97
-
98
- numeric_level = level_map.get(level.upper(), logging.INFO)
99
- logger.setLevel(numeric_level)
100
-
101
- # Remove existing handlers if any
102
- for handler in logger.handlers[:]:
103
- logger.removeHandler(handler)
104
-
105
- # Create formatter
106
- formatter = logging.Formatter(format_string)
107
-
108
- # Console handler
109
- console_handler = logging.StreamHandler()
110
- console_handler.setFormatter(formatter)
111
- logger.addHandler(console_handler)
112
-
113
- # File handler (optional)
114
- if log_file:
115
- log_dir = os.path.dirname(log_file)
116
- if log_dir:
117
- os.makedirs(log_dir, exist_ok=True)
118
- file_handler = logging.FileHandler(log_file)
119
- file_handler.setFormatter(formatter)
120
- logger.addHandler(file_handler)
121
-
122
- configure_logger()
@@ -1,20 +0,0 @@
1
- class RapidataOutputManager:
2
- """Manages print outputs and progress bars for the Rapidata module."""
3
-
4
- silent_mode: bool = False
5
-
6
- @classmethod
7
- def enable_silent_mode(cls) -> None:
8
- """Enable silent mode, suppressing all print outputs and progress bars, not logging."""
9
- cls.silent_mode = True
10
-
11
- @classmethod
12
- def disable_silent_mode(cls) -> None:
13
- """Disable silent mode, allowing outputs to be printed.
14
- This is the default behavior.
15
- """
16
- cls.silent_mode = False
17
-
18
- def managed_print(*args, **kwargs) -> None:
19
- if not RapidataOutputManager.silent_mode:
20
- print(*args, **kwargs)
@@ -1,15 +0,0 @@
1
- from rapidata.api_client.models.prompt_asset_metadata_input import PromptAssetMetadataInput
2
- from rapidata.api_client.models.url_asset_input import UrlAssetInput
3
- from rapidata.rapidata_client.metadata._base_metadata import Metadata
4
-
5
-
6
- class MediaAssetMetadata(Metadata):
7
-
8
- def __init__(self, url: str):
9
- super().__init__()
10
- self._url = url
11
-
12
- def to_model(self):
13
- return PromptAssetMetadataInput(
14
- _t="PromptAssetMetadataInput", asset=UrlAssetInput(_t="UrlAssetInput", url=self._url)
15
- )
@@ -1,17 +0,0 @@
1
- from rapidata.api_client.models.private_text_metadata_input import (
2
- PrivateTextMetadataInput,
3
- )
4
- from rapidata.rapidata_client.metadata._base_metadata import Metadata
5
-
6
-
7
- class PrivateTextMetadata(Metadata):
8
-
9
- def __init__(self, text: str, identifier: str = "private_text"):
10
- super().__init__()
11
- self._identifier = identifier
12
- self._text = text
13
-
14
- def to_model(self):
15
- return PrivateTextMetadataInput(
16
- _t="PrivateTextMetadataInput", identifier=self._identifier, text=self._text
17
- )
@@ -1,18 +0,0 @@
1
- from rapidata.rapidata_client.metadata._base_metadata import Metadata
2
- from rapidata.api_client.models.prompt_metadata_input import PromptMetadataInput
3
-
4
-
5
- class PromptMetadata(Metadata):
6
- """The PromptMetadata class is used to display a prompt to the user."""
7
-
8
- def __init__(self, prompt: str):
9
- super().__init__()
10
-
11
- if not isinstance(prompt, str):
12
- raise ValueError("Prompt must be a string")
13
-
14
- self._prompt = prompt
15
-
16
-
17
- def to_model(self):
18
- return PromptMetadataInput(_t="PromptMetadataInput", prompt=self._prompt)
@@ -1,17 +0,0 @@
1
- from rapidata.api_client.models.public_text_metadata_input import (
2
- PublicTextMetadataInput,
3
- )
4
- from rapidata.rapidata_client.metadata._base_metadata import Metadata
5
-
6
-
7
- class PublicTextMetadata(Metadata):
8
-
9
- def __init__(self, text: str, identifier: str = "public_text"):
10
- super().__init__()
11
- self._identifier = identifier
12
- self._text = text
13
-
14
- def to_model(self):
15
- return PublicTextMetadataInput(
16
- _t="PublicTextMetadataInput", identifier=self._identifier, text=self._text
17
- )
@@ -1,411 +0,0 @@
1
- from itertools import zip_longest
2
-
3
- from rapidata.api_client.models.create_datapoint_from_text_sources_model import CreateDatapointFromTextSourcesModel
4
- from rapidata.api_client.models.dataset_dataset_id_datapoints_post_request_metadata_inner import DatasetDatasetIdDatapointsPostRequestMetadataInner
5
- from rapidata.rapidata_client.metadata._base_metadata import Metadata
6
- from rapidata.rapidata_client.assets import TextAsset, MediaAsset, MultiAsset
7
- from rapidata.service import LocalFileService
8
- from rapidata.service.openapi_service import OpenAPIService
9
- from concurrent.futures import ThreadPoolExecutor, as_completed
10
- from tqdm import tqdm
11
-
12
- from typing import cast, Sequence, Generator
13
- from rapidata.rapidata_client.logging import logger, RapidataOutputManager
14
- import time
15
- import threading
16
-
17
-
18
- def chunk_list(lst: list, chunk_size: int) -> Generator:
19
- """Split list into chunks to prevent resource exhaustion"""
20
- for i in range(0, len(lst), chunk_size):
21
- yield lst[i:i + chunk_size]
22
-
23
- class RapidataDataset:
24
-
25
- def __init__(self, dataset_id: str, openapi_service: OpenAPIService):
26
- self.dataset_id = dataset_id
27
- self.openapi_service = openapi_service
28
- self.local_file_service = LocalFileService()
29
-
30
- def _add_texts(
31
- self,
32
- text_assets: list[TextAsset] | list[MultiAsset],
33
- metadata_list: Sequence[Sequence[Metadata]] | None = None,
34
- max_workers: int = 10,
35
- ):
36
- for text_asset in text_assets:
37
- if isinstance(text_asset, MultiAsset):
38
- assert all(
39
- isinstance(asset, TextAsset) for asset in text_asset.assets
40
- ), "All assets in a MultiAsset must be of type TextAsset."
41
-
42
- def upload_text_datapoint(text_asset: TextAsset | MultiAsset, metadata_per_datapoint: Sequence[Metadata] | None, index: int) -> None:
43
- if isinstance(text_asset, TextAsset):
44
- texts = [text_asset.text]
45
- elif isinstance(text_asset, MultiAsset):
46
- texts = [asset.text for asset in text_asset.assets if isinstance(asset, TextAsset)]
47
- else:
48
- raise ValueError(f"Unsupported asset type: {type(text_asset)}")
49
-
50
- metadata = []
51
- if metadata_per_datapoint:
52
- for meta in metadata_per_datapoint:
53
- meta_model = meta.to_model() if meta else None
54
- if meta_model:
55
- metadata.append(DatasetDatasetIdDatapointsPostRequestMetadataInner(meta_model))
56
-
57
- model = CreateDatapointFromTextSourcesModel(
58
- textSources=texts,
59
- sortIndex=index,
60
- metadata=metadata,
61
- )
62
-
63
- upload_response = self.openapi_service.dataset_api.dataset_dataset_id_datapoints_texts_post(dataset_id=self.dataset_id, create_datapoint_from_text_sources_model=model)
64
-
65
- total_uploads = len(text_assets)
66
- with ThreadPoolExecutor(max_workers=max_workers) as executor:
67
- futures = [
68
- executor.submit(upload_text_datapoint, text_asset, metadata, index=i)
69
- for i, (text_asset, metadata) in enumerate(zip_longest(text_assets, metadata_list or []))
70
- ]
71
-
72
- with tqdm(total=total_uploads, desc="Uploading text datapoints", disable=RapidataOutputManager.silent_mode) as pbar:
73
- for future in as_completed(futures):
74
- future.result() # This will raise any exceptions that occurred during execution
75
- pbar.update(1)
76
-
77
- def _process_single_upload(
78
- self,
79
- media_asset: MediaAsset | MultiAsset,
80
- meta_list: Sequence[Metadata] | None,
81
- index: int,
82
- ) -> tuple[list[str], list[str]]:
83
- """
84
- Process single upload with error tracking.
85
-
86
- Args:
87
- media_asset: MediaAsset or MultiAsset to upload
88
- meta_list: Optional sequence of metadata for the asset
89
- index: Sort index for the upload
90
-
91
- Returns:
92
- tuple[list[str], list[str]]: Lists of successful and failed identifiers
93
- """
94
- local_successful: list[str] = []
95
- local_failed: list[str] = []
96
- identifiers_to_track: list[str] = []
97
-
98
- try:
99
- # Get identifier for this upload (URL or file path)
100
- if isinstance(media_asset, MediaAsset):
101
- assets = [media_asset]
102
- identifier = media_asset._url if media_asset._url else media_asset.path
103
- identifiers_to_track = [identifier] if identifier else []
104
- elif isinstance(media_asset, MultiAsset):
105
- assets = cast(list[MediaAsset], media_asset.assets)
106
- identifiers_to_track = [
107
- (asset._url if asset._url else cast(str, asset.path))
108
- for asset in assets
109
- ]
110
- else:
111
- raise ValueError(f"Unsupported asset type: {type(media_asset)}")
112
-
113
- metadata: list[DatasetDatasetIdDatapointsPostRequestMetadataInner] = []
114
- if meta_list:
115
- for meta in meta_list:
116
- meta_model = meta.to_model() if meta else None
117
- if meta_model:
118
- metadata.append(DatasetDatasetIdDatapointsPostRequestMetadataInner(meta_model))
119
-
120
- local_paths = [asset.to_file() for asset in assets if asset.is_local()]
121
- urls = [asset.path for asset in assets if not asset.is_local()]
122
-
123
- self.openapi_service.dataset_api.dataset_dataset_id_datapoints_post(
124
- dataset_id=self.dataset_id,
125
- file=local_paths,
126
- url=urls,
127
- metadata=metadata,
128
- sort_index=index,
129
- )
130
-
131
- local_successful.extend(identifiers_to_track)
132
-
133
- except Exception as e:
134
- logger.error(f"\nUpload failed for {identifiers_to_track}: {str(e)}") # \n to avoid same line as tqdm
135
- local_failed.extend(identifiers_to_track)
136
-
137
- return local_successful, local_failed
138
-
139
- def _get_progress_tracker(
140
- self,
141
- total_uploads: int,
142
- stop_event: threading.Event,
143
- progress_error_event: threading.Event,
144
- progress_poll_interval: float,
145
- ) -> threading.Thread:
146
- """
147
- Create and return a progress tracking thread that shows actual API progress.
148
-
149
- Args:
150
- total_uploads: Total number of uploads to track
151
- initial_ready: Initial number of ready items
152
- initial_progress: Initial progress state
153
- stop_event: Event to signal thread to stop
154
- progress_error_event: Event to signal an error in progress tracking
155
- progress_poll_interval: Time between progress checks
156
-
157
- Returns:
158
- threading.Thread: The progress tracking thread
159
- """
160
- def progress_tracking_thread():
161
- try:
162
- # Initialize progress bar with 0 completions
163
- with tqdm(total=total_uploads, desc="Uploading datapoints", disable=RapidataOutputManager.silent_mode) as pbar:
164
- prev_ready = 0
165
- prev_failed = 0
166
- stall_count = 0
167
- last_progress_time = time.time()
168
-
169
- # We'll wait for all uploads to finish + some extra time
170
- # for the backend to fully process everything
171
- all_uploads_complete = threading.Event()
172
-
173
- while not stop_event.is_set() or not all_uploads_complete.is_set():
174
- try:
175
- current_progress = self.openapi_service.dataset_api.dataset_dataset_id_progress_get(self.dataset_id)
176
-
177
- # Calculate items completed since our initialization
178
- completed_ready = current_progress.ready
179
- completed_failed = current_progress.failed
180
- total_completed = completed_ready + completed_failed
181
-
182
- # Calculate newly completed items since our last check
183
- new_ready = current_progress.ready - prev_ready
184
- new_failed = current_progress.failed - prev_failed
185
-
186
- # Update progress bar position to show actual completed items
187
- # First reset to match the actual completed count
188
- pbar.n = total_completed
189
- pbar.refresh()
190
-
191
- if new_ready > 0 or new_failed > 0:
192
- # We saw progress
193
- stall_count = 0
194
- last_progress_time = time.time()
195
- else:
196
- stall_count += 1
197
-
198
- # Update our tracking variables
199
- prev_ready = current_progress.ready
200
- prev_failed = current_progress.failed or 0
201
-
202
- # Check if stop_event was set (all uploads submitted)
203
- if stop_event.is_set():
204
- elapsed_since_last_progress = time.time() - last_progress_time
205
-
206
- # If we haven't seen progress for a while after all uploads were submitted
207
- if elapsed_since_last_progress > 5.0:
208
- # If we're at 100%, we're done
209
- if total_completed >= total_uploads:
210
- all_uploads_complete.set()
211
- break
212
-
213
- # If we're not at 100% but it's been a while with no progress
214
- if stall_count > 5:
215
- # We've polled several times with no progress, assume we're done
216
- logger.warning(f"\nProgress seems stalled at {total_completed}/{total_uploads}. Please try again.")
217
- break
218
-
219
- except Exception as e:
220
- logger.error(f"\nError checking progress: {str(e)}")
221
- stall_count += 1
222
-
223
- if stall_count > 10: # Too many consecutive errors
224
- progress_error_event.set()
225
- break
226
-
227
- # Sleep before next poll
228
- time.sleep(progress_poll_interval)
229
-
230
- except Exception as e:
231
- logger.error(f"Progress tracking thread error: {str(e)}")
232
- progress_error_event.set()
233
-
234
- # Create and return the thread
235
- progress_thread = threading.Thread(target=progress_tracking_thread)
236
- progress_thread.daemon = True
237
- return progress_thread
238
-
239
- def _process_uploads_in_chunks(
240
- self,
241
- media_paths: list[MediaAsset] | list[MultiAsset],
242
- multi_metadata: Sequence[Sequence[Metadata]] | None,
243
- max_workers: int,
244
- chunk_size: int,
245
- stop_progress_tracking: threading.Event,
246
- progress_tracking_error: threading.Event
247
- ) -> tuple[list[str], list[str]]:
248
- """
249
- Process uploads in chunks with a ThreadPoolExecutor.
250
-
251
- Args:
252
- media_paths: List of assets to upload
253
- multi_metadata: Optional sequence of sequences of metadata
254
- max_workers: Maximum number of concurrent workers
255
- chunk_size: Number of items to process in each batch
256
- stop_progress_tracking: Event to signal progress tracking to stop
257
- progress_tracking_error: Event to detect progress tracking errors
258
-
259
- Returns:
260
- tuple[list[str], list[str]]: Lists of successful and failed uploads
261
- """
262
- successful_uploads: list[str] = []
263
- failed_uploads: list[str] = []
264
-
265
- try:
266
- with ThreadPoolExecutor(max_workers=max_workers) as executor:
267
- # Process uploads in chunks to avoid overwhelming the system
268
- for chunk_idx, chunk in enumerate(chunk_list(media_paths, chunk_size)):
269
- chunk_multi_metadata = multi_metadata[chunk_idx * chunk_size:(chunk_idx + 1) * chunk_size] if multi_metadata else None
270
-
271
- futures = [
272
- executor.submit(
273
- self._process_single_upload,
274
- media_asset,
275
- meta_list,
276
- index=(chunk_idx * chunk_size + i)
277
- )
278
- for i, (media_asset, meta_list) in enumerate(zip_longest(chunk, chunk_multi_metadata or []))
279
- ]
280
-
281
- # Wait for this chunk to complete before starting the next one
282
- for future in as_completed(futures):
283
- if progress_tracking_error.is_set():
284
- raise RuntimeError("Progress tracking failed, aborting uploads")
285
-
286
- try:
287
- chunk_successful, chunk_failed = future.result()
288
- successful_uploads.extend(chunk_successful)
289
- failed_uploads.extend(chunk_failed)
290
- except Exception as e:
291
- logger.error(f"Future execution failed: {str(e)}")
292
- finally:
293
- # Signal to the progress tracking thread that all uploads have been submitted
294
- stop_progress_tracking.set()
295
-
296
- return successful_uploads, failed_uploads
297
-
298
- def _log_final_progress(
299
- self,
300
- total_uploads: int,
301
- progress_poll_interval: float,
302
- successful_uploads: list[str],
303
- failed_uploads: list[str]
304
- ) -> None:
305
- """
306
- Log the final progress of the upload operation.
307
-
308
- Args:
309
- total_uploads: Total number of uploads
310
- initial_ready: Initial number of ready items
311
- initial_progress: Initial progress state
312
- progress_poll_interval: Time between progress checks
313
- successful_uploads: List of successful uploads for fallback reporting
314
- failed_uploads: List of failed uploads for fallback reporting
315
- """
316
- try:
317
- # Get final progress
318
- final_progress = self.openapi_service.dataset_api.dataset_dataset_id_progress_get(self.dataset_id)
319
- total_ready = final_progress.ready
320
- total_failed = final_progress.failed
321
-
322
- # Make sure we account for all uploads
323
- if total_ready + total_failed < total_uploads:
324
- # Try one more time after a longer wait
325
- time.sleep(5 * progress_poll_interval)
326
- final_progress = self.openapi_service.dataset_api.dataset_dataset_id_progress_get(self.dataset_id)
327
- total_ready = final_progress.ready
328
- total_failed = final_progress.failed
329
-
330
- success_rate = (total_ready / total_uploads * 100) if total_uploads > 0 else 0
331
-
332
- logger.info(f"Upload complete: {total_ready} ready, {total_uploads-total_ready} failed ({success_rate:.1f}% success rate)")
333
- except Exception as e:
334
- logger.error(f"Error getting final progress: {str(e)}")
335
- logger.info(f"Upload summary from local tracking: {len(successful_uploads)} succeeded, {len(failed_uploads)} failed")
336
-
337
- if failed_uploads:
338
- logger.error(f"Failed uploads: {failed_uploads}")
339
-
340
- def _add_media_from_paths(
341
- self,
342
- media_paths: list[MediaAsset] | list[MultiAsset],
343
- multi_metadata: Sequence[Sequence[Metadata]] | None = None,
344
- max_workers: int = 5,
345
- chunk_size: int = 50,
346
- progress_poll_interval: float = 0.5,
347
- ) -> tuple[list[str], list[str]]:
348
- """
349
- Upload media paths in chunks with managed resources.
350
-
351
- Args:
352
- media_paths: List of MediaAsset or MultiAsset objects to upload
353
- multi_metadata: Optional sequence of sequences of metadata matching media_paths length
354
- max_workers: Maximum number of concurrent upload workers
355
- chunk_size: Number of items to process in each batch
356
- progress_poll_interval: Time in seconds between progress checks
357
-
358
- Returns:
359
- tuple[list[str], list[str]]: Lists of successful and failed URLs
360
-
361
- Raises:
362
- ValueError: If multi_metadata lengths don't match media_paths length
363
- """
364
-
365
- if multi_metadata and not len(multi_metadata) == len(media_paths):
366
- raise ValueError("The number of assets must match the number of metadatas.")
367
-
368
- if multi_metadata and not all(len(data) == len(multi_metadata[0]) for data in multi_metadata):
369
- raise ValueError("All metadatas must have the same length.")
370
-
371
- # Setup tracking variables
372
- total_uploads = len(media_paths)
373
-
374
- # Create thread control events
375
- stop_progress_tracking = threading.Event()
376
- progress_tracking_error = threading.Event()
377
-
378
- # Create and start progress tracking thread
379
- progress_thread = self._get_progress_tracker(
380
- total_uploads,
381
- stop_progress_tracking,
382
- progress_tracking_error,
383
- progress_poll_interval
384
- )
385
- progress_thread.start()
386
-
387
- # Process uploads in chunks
388
- try:
389
- successful_uploads, failed_uploads = self._process_uploads_in_chunks(
390
- media_paths,
391
- multi_metadata,
392
- max_workers,
393
- chunk_size,
394
- stop_progress_tracking,
395
- progress_tracking_error
396
- )
397
- finally:
398
- progress_thread.join(10) # Add margin to the timeout for tqdm
399
-
400
- # Log final progress
401
- self._log_final_progress(
402
- total_uploads,
403
- progress_poll_interval,
404
- successful_uploads,
405
- failed_uploads
406
- )
407
-
408
- if failed_uploads:
409
- raise RuntimeError(f"Upload failed for {failed_uploads}")
410
-
411
- return successful_uploads, failed_uploads
@@ -1,25 +0,0 @@
1
- import os
2
- from PIL import Image
3
-
4
- class LocalFileService:
5
-
6
- def load_image(self, image_path: str) -> Image.Image:
7
- self.check_file_exists(image_path)
8
- return Image.open(image_path)
9
-
10
- def load_images(self, image_paths: list[str]) -> list[Image.Image]:
11
- return [self.load_image(image_path) for image_path in image_paths]
12
-
13
- def load_video(self, video_path: str):
14
- self.check_file_exists(video_path)
15
- return open(video_path, 'rb')
16
-
17
- def load_videos(self, video_paths: list[str]):
18
- return [self.load_video(video_path) for video_path in video_paths]
19
-
20
- def _file_exists(self, file_path: str) -> bool:
21
- return os.path.exists(file_path)
22
-
23
- def check_file_exists(self, file_path: str):
24
- if not self._file_exists(file_path):
25
- raise FileNotFoundError(f"File {file_path} not found.")
@@ -1,35 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: rapidata
3
- Version: 2.27.2
4
- Summary: Rapidata package containing the Rapidata Python Client to interact with the Rapidata Web API in an easy way.
5
- License: Apache-2.0
6
- Author: Rapidata AG
7
- Author-email: info@rapidata.ai
8
- Requires-Python: >=3.10,<4.0
9
- Classifier: License :: OSI Approved :: Apache Software License
10
- Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.10
12
- Classifier: Programming Language :: Python :: 3.11
13
- Classifier: Programming Language :: Python :: 3.12
14
- Classifier: Programming Language :: Python :: 3.13
15
- Requires-Dist: authlib (>=1.5.1,<2.0.0)
16
- Requires-Dist: colorama (==0.4.6)
17
- Requires-Dist: deprecated (>=1.2.14,<2.0.0)
18
- Requires-Dist: httpx (>=0.28.1,<0.29.0)
19
- Requires-Dist: packaging (>=25.0,<26.0)
20
- Requires-Dist: pandas (>=2.2.3,<3.0.0)
21
- Requires-Dist: pillow (>=10.4.0,<11.0.0)
22
- Requires-Dist: pydantic (>=2.8.2,<3.0.0)
23
- Requires-Dist: pyjwt (>=2.9.0,<3.0.0)
24
- Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
25
- Requires-Dist: requests (>=2.32.3,<3.0.0)
26
- Requires-Dist: tinytag (>=2.0.0,<3.0.0)
27
- Requires-Dist: tqdm (>=4.66.5,<5.0.0)
28
- Description-Content-Type: text/markdown
29
-
30
- # Rapidata Python Client
31
-
32
- Python client to interface with the Rapidata API.
33
-
34
- Docs: https://docs.rapidata.ai/
35
-