rapidata 2.35.1__py3-none-any.whl → 3.0.0a8__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.

Potentially problematic release.


This version of rapidata might be problematic. Click here for more details.

Files changed (790) hide show
  1. rapidata/__init__.py +25 -16
  2. rapidata/api_client/__init__.py +84 -408
  3. rapidata/api_client/api/__init__.py +6 -2
  4. rapidata/api_client/api/asset_api.py +853 -0
  5. rapidata/api_client/api/audience_api.py +2505 -0
  6. rapidata/api_client/api/benchmark_api.py +904 -245
  7. rapidata/api_client/api/campaign_api.py +582 -24
  8. rapidata/api_client/api/client_api.py +38 -33
  9. rapidata/api_client/api/compare_workflow_api.py +11 -10
  10. rapidata/api_client/api/customer_rapid_api.py +364 -123
  11. rapidata/api_client/api/datapoint_api.py +8 -6
  12. rapidata/api_client/api/dataset_api.py +240 -1516
  13. rapidata/api_client/api/evaluation_workflow_api.py +29 -82
  14. rapidata/api_client/api/feedback_api.py +11 -11
  15. rapidata/api_client/api/grouped_ranking_workflow_api.py +319 -0
  16. rapidata/api_client/api/identity_api.py +26 -300
  17. rapidata/api_client/api/job_api.py +3902 -0
  18. rapidata/api_client/api/job_definition_api.py +319 -0
  19. rapidata/api_client/api/job_revision_api.py +335 -0
  20. rapidata/api_client/api/leaderboard_api.py +140 -2067
  21. rapidata/api_client/api/newsletter_api.py +20 -19
  22. rapidata/api_client/api/order_api.py +375 -91
  23. rapidata/api_client/api/participant_api.py +80 -118
  24. rapidata/api_client/api/pipeline_api.py +24 -1480
  25. rapidata/api_client/api/prompt_api.py +11 -11
  26. rapidata/api_client/api/rapidata_identity_api_api.py +5 -4
  27. rapidata/api_client/api/sample_api.py +300 -0
  28. rapidata/api_client/api/simple_workflow_api.py +11 -10
  29. rapidata/api_client/api/survey_api.py +304 -0
  30. rapidata/api_client/api/user_rapid_api.py +35 -31
  31. rapidata/api_client/api/validation_set_api.py +377 -1835
  32. rapidata/api_client/api/workflow_api.py +32 -26
  33. rapidata/api_client/api_client.py +2 -2
  34. rapidata/api_client/configuration.py +16 -29
  35. rapidata/api_client/exceptions.py +2 -2
  36. rapidata/api_client/models/__init__.py +65 -382
  37. rapidata/api_client/models/ab_test_selection_a_inner.py +1 -1
  38. rapidata/api_client/models/add_rapid_to_audience_model.py +144 -0
  39. rapidata/api_client/models/add_user_response_result.py +10 -5
  40. rapidata/api_client/models/add_validation_rapid_model.py +49 -26
  41. rapidata/api_client/models/add_validation_rapid_model_asset.py +154 -0
  42. rapidata/api_client/models/add_validation_rapid_model_context_asset.py +160 -0
  43. rapidata/api_client/models/add_validation_rapid_model_metadata_inner.py +140 -0
  44. rapidata/api_client/models/add_validation_rapid_model_truth.py +7 -1
  45. rapidata/api_client/models/add_validation_rapid_new_model.py +137 -0
  46. rapidata/api_client/models/add_validation_rapid_new_model_asset.py +182 -0
  47. rapidata/api_client/models/add_validation_rapid_new_model_truth.py +286 -0
  48. rapidata/api_client/models/age_user_filter_model.py +2 -2
  49. rapidata/api_client/models/age_user_filter_model_age_group.py +41 -0
  50. rapidata/api_client/models/aggregated_orders_model.py +98 -0
  51. rapidata/api_client/models/aggregator_type.py +4 -2
  52. rapidata/api_client/models/and_filter.py +121 -0
  53. rapidata/api_client/models/and_filter_filters_inner.py +282 -0
  54. rapidata/api_client/models/are_rapids_active_result.py +2 -2
  55. rapidata/api_client/models/asset_metadata.py +11 -9
  56. rapidata/api_client/models/asset_type.py +40 -0
  57. rapidata/api_client/models/attach_category_rapid_blueprint.py +13 -3
  58. rapidata/api_client/models/attach_category_rapid_blueprint_category.py +89 -0
  59. rapidata/api_client/models/audience_job_state.py +38 -0
  60. rapidata/api_client/models/audience_status.py +39 -0
  61. rapidata/api_client/models/benchmark_query_result.py +5 -3
  62. rapidata/api_client/models/boost_leaderboard_model.py +5 -5
  63. rapidata/api_client/models/boost_mode.py +37 -0
  64. rapidata/api_client/models/boost_query_result.py +7 -10
  65. rapidata/api_client/models/boost_query_result_boost_mode.py +37 -0
  66. rapidata/api_client/models/boost_query_result_boost_status.py +39 -0
  67. rapidata/api_client/models/boosting_profile.py +91 -0
  68. rapidata/api_client/models/box_shape.py +4 -33
  69. rapidata/api_client/models/campaign_filter.py +98 -0
  70. rapidata/api_client/models/campaign_query_result.py +15 -13
  71. rapidata/api_client/models/campaign_status.py +2 -2
  72. rapidata/api_client/models/change_boost_model.py +89 -0
  73. rapidata/api_client/models/classification_metadata.py +12 -1
  74. rapidata/api_client/models/classify_payload.py +14 -15
  75. rapidata/api_client/models/classify_payload_category.py +89 -0
  76. rapidata/api_client/models/client_model.py +25 -35
  77. rapidata/api_client/models/clients_query_result.py +5 -5
  78. rapidata/api_client/models/clone_order_model.py +4 -4
  79. rapidata/api_client/models/clone_order_result.py +9 -4
  80. rapidata/api_client/models/compare_rapid_blueprint.py +5 -3
  81. rapidata/api_client/models/compare_rapid_blueprint1.py +96 -0
  82. rapidata/api_client/models/compare_workflow_config.py +34 -23
  83. rapidata/api_client/models/compare_workflow_config_context_asset.py +174 -0
  84. rapidata/api_client/models/compare_workflow_config_model.py +15 -5
  85. rapidata/api_client/models/compare_workflow_model.py +34 -6
  86. rapidata/api_client/models/compare_workflow_model1.py +20 -9
  87. rapidata/api_client/models/compare_workflow_model_context_asset.py +160 -0
  88. rapidata/api_client/models/compare_workflow_model_metadata_inner.py +154 -0
  89. rapidata/api_client/models/compare_workflow_model_pair_maker_config.py +1 -1
  90. rapidata/api_client/models/comparison_operator.py +2 -2
  91. rapidata/api_client/models/conditional_validation_selection.py +6 -11
  92. rapidata/api_client/models/conditional_validation_selection_validation_chance.py +103 -0
  93. rapidata/api_client/models/confidence_interval.py +89 -0
  94. rapidata/api_client/models/count_metadata.py +12 -1
  95. rapidata/api_client/models/country_filter.py +98 -0
  96. rapidata/api_client/models/create_audience_request.py +122 -0
  97. rapidata/api_client/models/create_audience_result.py +87 -0
  98. rapidata/api_client/models/create_benchmark_model.py +5 -5
  99. rapidata/api_client/models/create_benchmark_participant_model.py +5 -5
  100. rapidata/api_client/models/create_benchmark_participant_result.py +4 -4
  101. rapidata/api_client/models/create_benchmark_prompt_result.py +87 -0
  102. rapidata/api_client/models/create_benchmark_result.py +2 -2
  103. rapidata/api_client/models/create_bridge_token_result.py +2 -2
  104. rapidata/api_client/models/create_client_model.py +6 -13
  105. rapidata/api_client/models/create_complex_order_model.py +9 -9
  106. rapidata/api_client/models/create_complex_order_result.py +2 -2
  107. rapidata/api_client/models/create_customer_client_result.py +2 -2
  108. rapidata/api_client/models/create_datapoint_from_files_model.py +3 -3
  109. rapidata/api_client/models/create_datapoint_from_text_sources_model.py +3 -3
  110. rapidata/api_client/models/create_datapoint_from_urls_model.py +3 -3
  111. rapidata/api_client/models/create_datapoint_model.py +124 -0
  112. rapidata/api_client/models/create_datapoint_model_asset.py +154 -0
  113. rapidata/api_client/models/create_datapoint_model_context_asset.py +160 -0
  114. rapidata/api_client/models/create_datapoint_model_metadata_inner.py +154 -0
  115. rapidata/api_client/models/create_datapoint_result.py +2 -2
  116. rapidata/api_client/models/create_dataset_endpoint_input.py +87 -0
  117. rapidata/api_client/models/create_dataset_endpoint_output.py +87 -0
  118. rapidata/api_client/models/create_demographic_rapid_model.py +45 -7
  119. rapidata/api_client/models/create_demographic_rapid_model_asset.py +160 -0
  120. rapidata/api_client/models/create_demographic_rapid_model_context_asset.py +160 -0
  121. rapidata/api_client/models/create_demographic_rapid_model_new.py +119 -0
  122. rapidata/api_client/models/create_empty_validation_set_result.py +2 -2
  123. rapidata/api_client/models/create_job_definition_endpoint_input.py +119 -0
  124. rapidata/api_client/models/create_job_definition_endpoint_output.py +89 -0
  125. rapidata/api_client/models/create_job_endpoint_input.py +100 -0
  126. rapidata/api_client/models/create_job_endpoint_output.py +89 -0
  127. rapidata/api_client/models/create_job_revision_endpoint_input.py +127 -0
  128. rapidata/api_client/models/create_job_revision_endpoint_output.py +89 -0
  129. rapidata/api_client/models/create_leaderboard_model.py +42 -15
  130. rapidata/api_client/models/create_leaderboard_result.py +2 -2
  131. rapidata/api_client/models/create_order_definition_model.py +119 -0
  132. rapidata/api_client/models/create_order_definition_result.py +87 -0
  133. rapidata/api_client/models/create_order_definition_revision_model.py +117 -0
  134. rapidata/api_client/models/create_order_definition_revision_result.py +87 -0
  135. rapidata/api_client/models/create_order_model.py +30 -101
  136. rapidata/api_client/models/create_order_model_referee.py +12 -12
  137. rapidata/api_client/models/create_order_model_workflow.py +35 -21
  138. rapidata/api_client/models/create_order_result.py +2 -2
  139. rapidata/api_client/models/create_rapid_result.py +2 -2
  140. rapidata/api_client/models/create_sample_model.py +13 -7
  141. rapidata/api_client/models/create_sample_model_asset.py +154 -0
  142. rapidata/api_client/models/create_sample_model_obsolete.py +87 -0
  143. rapidata/api_client/models/create_simple_pipeline_model_pipeline_steps_inner.py +8 -22
  144. rapidata/api_client/models/create_unsupported_order_model.py +6 -6
  145. rapidata/api_client/models/create_validation_set_model.py +5 -5
  146. rapidata/api_client/models/datapoint_model.py +3 -3
  147. rapidata/api_client/models/datapoint_state.py +2 -2
  148. rapidata/api_client/models/definition_type.py +49 -0
  149. rapidata/api_client/models/demographic_filter.py +100 -0
  150. rapidata/api_client/models/dynamic_client_registration_request.py +21 -36
  151. rapidata/api_client/models/early_stopping_referee_model.py +3 -3
  152. rapidata/api_client/models/effort_capped_selection.py +2 -11
  153. rapidata/api_client/models/elo_config.py +2 -2
  154. rapidata/api_client/models/elo_config_model.py +6 -6
  155. rapidata/api_client/models/entity_tag_header_value.py +93 -0
  156. rapidata/api_client/models/evaluation_workflow_config.py +13 -3
  157. rapidata/api_client/models/evaluation_workflow_model.py +16 -6
  158. rapidata/api_client/models/existing_asset_input.py +109 -0
  159. rapidata/api_client/models/existing_asset_input_metadata_value.py +126 -0
  160. rapidata/api_client/models/feature_flag.py +2 -2
  161. rapidata/api_client/models/feature_flag_model.py +6 -6
  162. rapidata/api_client/models/feedback_model.py +7 -7
  163. rapidata/api_client/models/file_asset.py +3 -5
  164. rapidata/api_client/models/file_asset_input_file.py +8 -22
  165. rapidata/api_client/models/file_asset_metadata_value.py +252 -0
  166. rapidata/api_client/models/file_asset_model_metadata_value.py +18 -88
  167. rapidata/api_client/models/file_stream_result.py +122 -0
  168. rapidata/api_client/models/file_type.py +2 -2
  169. rapidata/api_client/models/file_type_metadata.py +11 -6
  170. rapidata/api_client/models/file_type_metadata_model.py +2 -8
  171. rapidata/api_client/models/filter.py +7 -25
  172. rapidata/api_client/models/filter_operator.py +2 -2
  173. rapidata/api_client/models/fork_benchmark_result.py +87 -0
  174. rapidata/api_client/models/form_file_wrapper.py +17 -2
  175. rapidata/api_client/models/free_text_payload.py +10 -3
  176. rapidata/api_client/models/free_text_rapid_blueprint.py +10 -3
  177. rapidata/api_client/models/gender_user_filter_model.py +2 -2
  178. rapidata/api_client/models/gender_user_filter_model_gender.py +38 -0
  179. rapidata/api_client/models/get_asset_metadata_result.py +100 -0
  180. rapidata/api_client/models/get_audience_by_id_result.py +118 -0
  181. rapidata/api_client/models/get_available_validation_sets_result.py +2 -2
  182. rapidata/api_client/models/get_benchmark_by_id_result.py +8 -4
  183. rapidata/api_client/models/get_boost_result.py +97 -0
  184. rapidata/api_client/models/get_boost_result_boost_mode.py +37 -0
  185. rapidata/api_client/models/get_boost_result_boost_status.py +39 -0
  186. rapidata/api_client/models/get_compare_ab_summary_result.py +5 -5
  187. rapidata/api_client/models/get_compare_workflow_results_model.py +7 -7
  188. rapidata/api_client/models/get_compare_workflow_results_result.py +5 -5
  189. rapidata/api_client/models/get_datapoint_by_id_result.py +10 -21
  190. rapidata/api_client/models/get_datapoint_by_id_result_asset.py +170 -0
  191. rapidata/api_client/models/get_dataset_by_id_result.py +2 -2
  192. rapidata/api_client/models/get_dataset_progress_result.py +2 -2
  193. rapidata/api_client/models/get_evaluation_workflow_results_model.py +119 -0
  194. rapidata/api_client/models/get_failed_datapoints_result.py +5 -5
  195. rapidata/api_client/models/get_failed_datapoints_result_datapoint.py +100 -0
  196. rapidata/api_client/models/get_file_metadata_result.py +100 -0
  197. rapidata/api_client/models/get_grouped_ranking_workflow_results_model.py +106 -0
  198. rapidata/api_client/models/get_grouped_ranking_workflow_results_result.py +97 -0
  199. rapidata/api_client/models/get_grouped_ranking_workflow_results_result_paged_result.py +105 -0
  200. rapidata/api_client/models/get_job_by_id_endpoint_output.py +130 -0
  201. rapidata/api_client/models/get_job_definition_by_id_endpoint_output.py +95 -0
  202. rapidata/api_client/models/get_job_revision_endpoint_output.py +133 -0
  203. rapidata/api_client/models/get_leaderboard_by_id_result.py +31 -4
  204. rapidata/api_client/models/get_order_by_id_result.py +12 -5
  205. rapidata/api_client/models/get_participant_by_id_result.py +4 -6
  206. rapidata/api_client/models/get_pipeline_by_id_result.py +5 -5
  207. rapidata/api_client/models/get_public_orders_result.py +2 -2
  208. rapidata/api_client/models/get_public_responses_result.py +95 -0
  209. rapidata/api_client/models/get_public_responses_result_response.py +112 -0
  210. rapidata/api_client/models/get_rapid_responses_result.py +6 -12
  211. rapidata/api_client/models/get_recommended_validation_set_result.py +95 -0
  212. rapidata/api_client/models/get_responses_for_rapid_result.py +106 -0
  213. rapidata/api_client/models/get_responses_for_rapid_result_response.py +103 -0
  214. rapidata/api_client/models/get_responses_for_rapid_result_response_result.py +266 -0
  215. rapidata/api_client/models/get_responses_result.py +5 -5
  216. rapidata/api_client/models/get_responses_result_response.py +103 -0
  217. rapidata/api_client/models/get_sample_by_id_result.py +125 -0
  218. rapidata/api_client/models/get_simple_workflow_results_model.py +20 -15
  219. rapidata/api_client/models/get_standing_by_id_result.py +6 -14
  220. rapidata/api_client/models/get_validation_rapids_result.py +32 -41
  221. rapidata/api_client/models/get_validation_set_by_id_result.py +10 -4
  222. rapidata/api_client/models/get_workflow_by_id_result.py +5 -5
  223. rapidata/api_client/models/get_workflow_by_id_result_workflow.py +23 -9
  224. rapidata/api_client/models/get_workflow_progress_result.py +5 -11
  225. rapidata/api_client/models/get_workflow_results_result.py +34 -23
  226. rapidata/api_client/models/get_workflow_results_result_response.py +103 -0
  227. rapidata/api_client/models/google_one_tap_login_model.py +4 -4
  228. rapidata/api_client/models/grouped_ranking_workflow_config.py +155 -0
  229. rapidata/api_client/models/grouped_ranking_workflow_config_context_assets_value.py +170 -0
  230. rapidata/api_client/models/grouped_ranking_workflow_model.py +147 -0
  231. rapidata/api_client/models/grouped_ranking_workflow_model1.py +121 -0
  232. rapidata/api_client/models/i_artifact_model.py +182 -0
  233. rapidata/api_client/models/i_artifact_model_campaign_artifact_model.py +98 -0
  234. rapidata/api_client/models/i_artifact_model_dataset_artifact_model.py +98 -0
  235. rapidata/api_client/models/i_artifact_model_file_artifact_model.py +98 -0
  236. rapidata/api_client/models/i_artifact_model_workflow_artifact_model.py +98 -0
  237. rapidata/api_client/models/i_artifact_model_workflow_config_artifact_model.py +102 -0
  238. rapidata/api_client/models/i_asset.py +170 -0
  239. rapidata/api_client/models/i_asset_file_asset.py +111 -0
  240. rapidata/api_client/models/i_asset_input.py +156 -0
  241. rapidata/api_client/models/i_asset_input_existing_asset_input.py +118 -0
  242. rapidata/api_client/models/i_asset_input_multi_asset_input.py +128 -0
  243. rapidata/api_client/models/i_asset_input_text_asset_input.py +118 -0
  244. rapidata/api_client/models/i_asset_model.py +170 -0
  245. rapidata/api_client/models/i_asset_model_file_asset_model.py +113 -0
  246. rapidata/api_client/models/i_asset_model_multi_asset_model.py +123 -0
  247. rapidata/api_client/models/i_asset_model_null_asset_model.py +111 -0
  248. rapidata/api_client/models/i_asset_model_text_asset_model.py +113 -0
  249. rapidata/api_client/models/i_asset_multi_asset.py +121 -0
  250. rapidata/api_client/models/i_asset_null_asset.py +109 -0
  251. rapidata/api_client/models/i_asset_text_asset.py +111 -0
  252. rapidata/api_client/models/i_audience_filter.py +184 -0
  253. rapidata/api_client/models/i_audience_filter_and_audience_filter.py +106 -0
  254. rapidata/api_client/models/i_audience_filter_country_audience_filter.py +96 -0
  255. rapidata/api_client/models/i_audience_filter_country_filter.py +96 -0
  256. rapidata/api_client/models/i_audience_filter_language_audience_filter.py +96 -0
  257. rapidata/api_client/models/i_audience_filter_language_filter.py +96 -0
  258. rapidata/api_client/models/i_audience_filter_not_audience_filter.py +102 -0
  259. rapidata/api_client/models/i_audience_filter_or_audience_filter.py +106 -0
  260. rapidata/api_client/models/i_campaign_filter.py +296 -0
  261. rapidata/api_client/models/i_campaign_filter_and_filter.py +117 -0
  262. rapidata/api_client/models/i_campaign_filter_campaign_filter.py +98 -0
  263. rapidata/api_client/models/i_campaign_filter_campaign_session_count_filter.py +101 -0
  264. rapidata/api_client/models/i_campaign_filter_country_filter.py +98 -0
  265. rapidata/api_client/models/i_campaign_filter_demographic_filter.py +100 -0
  266. rapidata/api_client/models/i_campaign_filter_device_filter.py +106 -0
  267. rapidata/api_client/models/i_campaign_filter_language_filter.py +98 -0
  268. rapidata/api_client/models/i_campaign_filter_new_user_filter.py +96 -0
  269. rapidata/api_client/models/i_campaign_filter_not_filter.py +113 -0
  270. rapidata/api_client/models/i_campaign_filter_or_filter.py +117 -0
  271. rapidata/api_client/models/i_campaign_filter_response_count_filter.py +103 -0
  272. rapidata/api_client/models/i_campaign_filter_user_action_restriction_filter.py +106 -0
  273. rapidata/api_client/models/i_campaign_filter_user_score_filter.py +102 -0
  274. rapidata/api_client/models/i_campaign_filter_user_state_filter.py +106 -0
  275. rapidata/api_client/models/i_dataset_metadata_input.py +154 -0
  276. rapidata/api_client/models/i_dataset_metadata_input_prompt_asset_metadata_input.py +100 -0
  277. rapidata/api_client/models/i_dataset_metadata_input_prompt_metadata_input.py +96 -0
  278. rapidata/api_client/models/i_dataset_metadata_input_transcription_metadata_input.py +96 -0
  279. rapidata/api_client/models/i_dataset_model.py +126 -0
  280. rapidata/api_client/models/i_dataset_model_clone_dataset_model.py +98 -0
  281. rapidata/api_client/models/i_metadata.py +252 -0
  282. rapidata/api_client/models/i_metadata_classification_metadata.py +109 -0
  283. rapidata/api_client/models/i_metadata_count_metadata.py +109 -0
  284. rapidata/api_client/models/i_metadata_duration_metadata.py +110 -0
  285. rapidata/api_client/models/i_metadata_file_type_metadata.py +110 -0
  286. rapidata/api_client/models/i_metadata_image_dimension_metadata.py +111 -0
  287. rapidata/api_client/models/i_metadata_input.py +126 -0
  288. rapidata/api_client/models/i_metadata_input_text_metadata_input.py +111 -0
  289. rapidata/api_client/models/i_metadata_location_metadata.py +111 -0
  290. rapidata/api_client/models/i_metadata_model.py +252 -0
  291. rapidata/api_client/models/i_metadata_model_classification_metadata_model.py +96 -0
  292. rapidata/api_client/models/i_metadata_model_count_metadata_model.py +96 -0
  293. rapidata/api_client/models/i_metadata_model_file_type_metadata_model.py +97 -0
  294. rapidata/api_client/models/i_metadata_model_image_dimension_metadata_model.py +98 -0
  295. rapidata/api_client/models/i_metadata_model_location_metadata_model.py +98 -0
  296. rapidata/api_client/models/i_metadata_model_original_filename_metadata_model.py +96 -0
  297. rapidata/api_client/models/i_metadata_model_source_url_metadata_model.py +96 -0
  298. rapidata/api_client/models/i_metadata_model_streams_metadata_model.py +100 -0
  299. rapidata/api_client/models/i_metadata_model_text_metadata_model.py +101 -0
  300. rapidata/api_client/models/i_metadata_model_video_duration_metadata_model.py +97 -0
  301. rapidata/api_client/models/i_metadata_original_filename_metadata.py +109 -0
  302. rapidata/api_client/models/i_metadata_source_url_metadata.py +109 -0
  303. rapidata/api_client/models/i_metadata_streams_metadata.py +113 -0
  304. rapidata/api_client/models/i_metadata_text_metadata.py +114 -0
  305. rapidata/api_client/models/i_metadata_video_duration_metadata.py +110 -0
  306. rapidata/api_client/models/i_order_workflow_model.py +168 -0
  307. rapidata/api_client/models/i_order_workflow_model_compare_workflow_model.py +146 -0
  308. rapidata/api_client/models/i_order_workflow_model_evaluation_workflow_model.py +108 -0
  309. rapidata/api_client/models/i_order_workflow_model_grouped_ranking_workflow_model.py +147 -0
  310. rapidata/api_client/models/i_order_workflow_model_simple_workflow_model.py +110 -0
  311. rapidata/api_client/models/i_pair_maker_config.py +126 -0
  312. rapidata/api_client/models/i_pair_maker_config_model.py +126 -0
  313. rapidata/api_client/models/i_pair_maker_config_model_online_pair_maker_config_model.py +98 -0
  314. rapidata/api_client/models/i_pair_maker_config_online_pair_maker_config.py +98 -0
  315. rapidata/api_client/models/i_pair_maker_information.py +126 -0
  316. rapidata/api_client/models/i_pair_maker_information_online_pair_maker_information.py +100 -0
  317. rapidata/api_client/models/i_pipeline_artifact_model.py +126 -0
  318. rapidata/api_client/models/i_pipeline_artifact_model_create_dataset_artifact_model.py +102 -0
  319. rapidata/api_client/models/i_pipeline_model.py +126 -0
  320. rapidata/api_client/models/i_pipeline_model_create_simple_pipeline_model.py +116 -0
  321. rapidata/api_client/models/i_pipeline_step_model.py +168 -0
  322. rapidata/api_client/models/i_pipeline_step_model_dataset_evaluation_step_model.py +102 -0
  323. rapidata/api_client/models/i_pipeline_step_model_send_completion_mail_step_model.py +98 -0
  324. rapidata/api_client/models/i_pipeline_step_model_workflow_aggregation_step_model.py +103 -0
  325. rapidata/api_client/models/i_pipeline_step_model_workflow_labeling_step_model.py +96 -0
  326. rapidata/api_client/models/i_rapid_blueprint.py +252 -0
  327. rapidata/api_client/models/i_rapid_blueprint_attach_category_rapid_blueprint.py +108 -0
  328. rapidata/api_client/models/i_rapid_blueprint_bounding_box_rapid_blueprint.py +96 -0
  329. rapidata/api_client/models/i_rapid_blueprint_compare_rapid_blueprint.py +98 -0
  330. rapidata/api_client/models/i_rapid_blueprint_free_text_rapid_blueprint.py +105 -0
  331. rapidata/api_client/models/i_rapid_blueprint_line_rapid_blueprint.py +96 -0
  332. rapidata/api_client/models/i_rapid_blueprint_locate_rapid_blueprint.py +96 -0
  333. rapidata/api_client/models/i_rapid_blueprint_named_entity_rapid_blueprint.py +98 -0
  334. rapidata/api_client/models/i_rapid_blueprint_polygon_rapid_blueprint.py +96 -0
  335. rapidata/api_client/models/i_rapid_blueprint_scrub_rapid_blueprint.py +96 -0
  336. rapidata/api_client/models/i_rapid_blueprint_transcription_rapid_blueprint.py +96 -0
  337. rapidata/api_client/models/i_rapid_payload.py +252 -0
  338. rapidata/api_client/models/i_rapid_payload_bounding_box_payload.py +96 -0
  339. rapidata/api_client/models/i_rapid_payload_classify_payload.py +106 -0
  340. rapidata/api_client/models/i_rapid_payload_compare_payload.py +96 -0
  341. rapidata/api_client/models/i_rapid_payload_free_text_payload.py +105 -0
  342. rapidata/api_client/models/i_rapid_payload_line_payload.py +96 -0
  343. rapidata/api_client/models/i_rapid_payload_locate_payload.py +96 -0
  344. rapidata/api_client/models/i_rapid_payload_named_entity_payload.py +98 -0
  345. rapidata/api_client/models/i_rapid_payload_polygon_payload.py +96 -0
  346. rapidata/api_client/models/i_rapid_payload_scrub_payload.py +96 -0
  347. rapidata/api_client/models/i_rapid_payload_transcription_payload.py +106 -0
  348. rapidata/api_client/models/i_rapid_result.py +266 -0
  349. rapidata/api_client/models/i_rapid_result_attach_category_result.py +98 -0
  350. rapidata/api_client/models/i_rapid_result_bounding_box_result.py +106 -0
  351. rapidata/api_client/models/i_rapid_result_compare_result.py +98 -0
  352. rapidata/api_client/models/i_rapid_result_free_text_result.py +98 -0
  353. rapidata/api_client/models/i_rapid_result_line_result.py +106 -0
  354. rapidata/api_client/models/i_rapid_result_locate_result.py +106 -0
  355. rapidata/api_client/models/i_rapid_result_named_entity_result.py +106 -0
  356. rapidata/api_client/models/i_rapid_result_polygon_result.py +106 -0
  357. rapidata/api_client/models/i_rapid_result_scrub_result.py +98 -0
  358. rapidata/api_client/models/i_rapid_result_skip_result.py +96 -0
  359. rapidata/api_client/models/i_rapid_result_transcription_result.py +106 -0
  360. rapidata/api_client/models/i_referee_config.py +154 -0
  361. rapidata/api_client/models/i_referee_config_naive_referee_config.py +96 -0
  362. rapidata/api_client/models/i_referee_config_never_ending_referee_config.py +94 -0
  363. rapidata/api_client/models/i_referee_config_probabilistic_attach_category_referee_config.py +98 -0
  364. rapidata/api_client/models/i_referee_info.py +154 -0
  365. rapidata/api_client/models/i_referee_info_naive_referee_info.py +96 -0
  366. rapidata/api_client/models/i_referee_info_never_ending_referee_info.py +94 -0
  367. rapidata/api_client/models/i_referee_info_probabilistic_attach_category_referee_info.py +98 -0
  368. rapidata/api_client/models/i_referee_model.py +140 -0
  369. rapidata/api_client/models/i_referee_model_early_stopping_referee_model.py +98 -0
  370. rapidata/api_client/models/i_referee_model_naive_referee_model.py +96 -0
  371. rapidata/api_client/models/i_selection.py +240 -0
  372. rapidata/api_client/models/i_selection_ab_test_selection.py +122 -0
  373. rapidata/api_client/models/i_selection_capped_selection.py +108 -0
  374. rapidata/api_client/models/i_selection_conditional_validation_selection.py +110 -0
  375. rapidata/api_client/models/i_selection_demographic_selection.py +98 -0
  376. rapidata/api_client/models/i_selection_effort_capped_selection.py +101 -0
  377. rapidata/api_client/models/i_selection_labeling_selection.py +103 -0
  378. rapidata/api_client/models/i_selection_shuffling_selection.py +106 -0
  379. rapidata/api_client/models/i_selection_static_selection.py +96 -0
  380. rapidata/api_client/models/i_selection_validation_selection.py +98 -0
  381. rapidata/api_client/models/i_user_filter_model.py +296 -0
  382. rapidata/api_client/models/i_user_filter_model_age_user_filter_model.py +104 -0
  383. rapidata/api_client/models/i_user_filter_model_and_user_filter_model.py +106 -0
  384. rapidata/api_client/models/i_user_filter_model_campaign_user_filter_model.py +96 -0
  385. rapidata/api_client/models/i_user_filter_model_country_user_filter_model.py +96 -0
  386. rapidata/api_client/models/i_user_filter_model_custom_user_filter_model.py +98 -0
  387. rapidata/api_client/models/i_user_filter_model_device_user_filter_model.py +104 -0
  388. rapidata/api_client/models/i_user_filter_model_gender_user_filter_model.py +104 -0
  389. rapidata/api_client/models/i_user_filter_model_language_user_filter_model.py +96 -0
  390. rapidata/api_client/models/i_user_filter_model_new_user_filter_model.py +94 -0
  391. rapidata/api_client/models/i_user_filter_model_not_user_filter_model.py +102 -0
  392. rapidata/api_client/models/i_user_filter_model_or_user_filter_model.py +106 -0
  393. rapidata/api_client/models/i_user_filter_model_response_count_user_filter_model.py +101 -0
  394. rapidata/api_client/models/i_user_filter_model_user_score_user_filter_model.py +105 -0
  395. rapidata/api_client/models/i_validation_metadata_input.py +140 -0
  396. rapidata/api_client/models/i_validation_metadata_input_prompt_asset_metadata_input.py +100 -0
  397. rapidata/api_client/models/i_validation_metadata_input_prompt_metadata_input.py +96 -0
  398. rapidata/api_client/models/i_validation_truth.py +280 -0
  399. rapidata/api_client/models/i_validation_truth_attach_category_truth.py +96 -0
  400. rapidata/api_client/models/i_validation_truth_bounding_box_truth.py +102 -0
  401. rapidata/api_client/models/i_validation_truth_compare_truth.py +96 -0
  402. rapidata/api_client/models/i_validation_truth_empty_validation_truth.py +94 -0
  403. rapidata/api_client/models/i_validation_truth_line_truth.py +94 -0
  404. rapidata/api_client/models/i_validation_truth_locate_box_truth.py +108 -0
  405. rapidata/api_client/models/i_validation_truth_model.py +294 -0
  406. rapidata/api_client/models/i_validation_truth_model_attach_category_truth_model.py +96 -0
  407. rapidata/api_client/models/i_validation_truth_model_bounding_box_truth_model.py +102 -0
  408. rapidata/api_client/models/i_validation_truth_model_classify_truth_model.py +96 -0
  409. rapidata/api_client/models/i_validation_truth_model_compare_truth_model.py +96 -0
  410. rapidata/api_client/models/i_validation_truth_model_empty_validation_truth_model.py +94 -0
  411. rapidata/api_client/models/i_validation_truth_model_line_truth_model.py +94 -0
  412. rapidata/api_client/models/i_validation_truth_model_locate_box_truth_model.py +108 -0
  413. rapidata/api_client/models/i_validation_truth_model_multi_compare_truth_model.py +96 -0
  414. rapidata/api_client/models/i_validation_truth_model_named_entity_truth_model.py +104 -0
  415. rapidata/api_client/models/i_validation_truth_model_polygon_truth_model.py +94 -0
  416. rapidata/api_client/models/i_validation_truth_model_scrub_truth_model.py +104 -0
  417. rapidata/api_client/models/i_validation_truth_model_skip_truth_model.py +94 -0
  418. rapidata/api_client/models/i_validation_truth_model_transcription_truth_model.py +115 -0
  419. rapidata/api_client/models/i_validation_truth_multi_compare_truth.py +96 -0
  420. rapidata/api_client/models/i_validation_truth_named_entity_truth.py +104 -0
  421. rapidata/api_client/models/i_validation_truth_polygon_truth.py +94 -0
  422. rapidata/api_client/models/i_validation_truth_scrub_truth.py +104 -0
  423. rapidata/api_client/models/i_validation_truth_skip_truth.py +94 -0
  424. rapidata/api_client/models/i_validation_truth_transcription_truth.py +115 -0
  425. rapidata/api_client/models/i_workflow_config.py +168 -0
  426. rapidata/api_client/models/i_workflow_config_compare_workflow_config.py +142 -0
  427. rapidata/api_client/models/i_workflow_config_evaluation_workflow_config.py +114 -0
  428. rapidata/api_client/models/i_workflow_config_grouped_ranking_workflow_config.py +155 -0
  429. rapidata/api_client/models/i_workflow_config_simple_workflow_config.py +116 -0
  430. rapidata/api_client/models/i_workflow_model.py +168 -0
  431. rapidata/api_client/models/i_workflow_model_compare_workflow_model.py +145 -0
  432. rapidata/api_client/models/i_workflow_model_evaluation_workflow_model.py +115 -0
  433. rapidata/api_client/models/i_workflow_model_grouped_ranking_workflow_model.py +121 -0
  434. rapidata/api_client/models/i_workflow_model_simple_workflow_model.py +119 -0
  435. rapidata/api_client/models/image_dimension_metadata.py +12 -1
  436. rapidata/api_client/models/inquire_file_metadata_result.py +100 -0
  437. rapidata/api_client/models/inspect_report_result.py +2 -2
  438. rapidata/api_client/models/job_definition_revision_state.py +38 -0
  439. rapidata/api_client/models/json_web_key.py +2 -36
  440. rapidata/api_client/models/json_web_key_set.py +2 -22
  441. rapidata/api_client/models/labeling_selection.py +11 -13
  442. rapidata/api_client/models/language_filter.py +98 -0
  443. rapidata/api_client/models/leaderboard_query_result.py +29 -2
  444. rapidata/api_client/models/leaderboards_query_result.py +135 -0
  445. rapidata/api_client/models/line_result.py +3 -3
  446. rapidata/api_client/models/line_result_line.py +97 -0
  447. rapidata/api_client/models/line_result_line_point.py +89 -0
  448. rapidata/api_client/models/locate_coordinate.py +4 -13
  449. rapidata/api_client/models/location_metadata.py +12 -1
  450. rapidata/api_client/models/logic_operator.py +2 -2
  451. rapidata/api_client/models/metadata_i_order_metadata_input.py +154 -0
  452. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_asset_metadata_input.py +100 -0
  453. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_metadata_input.py +96 -0
  454. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_transcription_metadata_input.py +96 -0
  455. rapidata/api_client/models/metadata_prompt_asset_metadata_input.py +100 -0
  456. rapidata/api_client/models/metadata_prompt_metadata_input.py +96 -0
  457. rapidata/api_client/models/metadata_transcription_metadata_input.py +96 -0
  458. rapidata/api_client/models/multi_asset.py +6 -6
  459. rapidata/api_client/models/multi_asset_assets_inner.py +170 -0
  460. rapidata/api_client/models/multi_asset_input.py +21 -1
  461. rapidata/api_client/models/multi_asset_input1_assets_inner.py +40 -12
  462. rapidata/api_client/models/multi_asset_input3_assets_inner.py +40 -12
  463. rapidata/api_client/models/multi_asset_input_assets_inner.py +16 -30
  464. rapidata/api_client/models/multi_asset_model.py +3 -3
  465. rapidata/api_client/models/naive_referee_model.py +2 -2
  466. rapidata/api_client/models/named_classification.py +4 -13
  467. rapidata/api_client/models/new_user_filter.py +96 -0
  468. rapidata/api_client/models/newsletter_model.py +6 -6
  469. rapidata/api_client/models/not_available_yet_result.py +4 -13
  470. rapidata/api_client/models/not_filter.py +117 -0
  471. rapidata/api_client/models/null_asset.py +3 -5
  472. rapidata/api_client/models/online_pair_maker_config_model.py +3 -3
  473. rapidata/api_client/models/option_of_aggregator_type.py +49 -0
  474. rapidata/api_client/models/or_filter.py +121 -0
  475. rapidata/api_client/models/order_model.py +15 -14
  476. rapidata/api_client/models/order_state.py +2 -2
  477. rapidata/api_client/models/original_filename_metadata.py +12 -1
  478. rapidata/api_client/models/page_info.py +2 -7
  479. rapidata/api_client/models/paged_result_aggregated_orders_model.py +105 -0
  480. rapidata/api_client/models/paged_result_benchmark_query_result.py +105 -0
  481. rapidata/api_client/models/paged_result_campaign_query_result.py +105 -0
  482. rapidata/api_client/models/paged_result_clients_query_result.py +105 -0
  483. rapidata/api_client/models/paged_result_datapoint_model.py +105 -0
  484. rapidata/api_client/models/paged_result_get_compare_workflow_results_result.py +105 -0
  485. rapidata/api_client/models/paged_result_get_grouped_ranking_workflow_results_result.py +105 -0
  486. rapidata/api_client/models/paged_result_get_validation_rapids_result.py +105 -0
  487. rapidata/api_client/models/paged_result_get_workflow_results_result.py +105 -0
  488. rapidata/api_client/models/paged_result_i_workflow_model.py +105 -0
  489. rapidata/api_client/models/paged_result_leaderboard_query_result.py +105 -0
  490. rapidata/api_client/models/paged_result_leaderboards_query_result.py +105 -0
  491. rapidata/api_client/models/paged_result_of_aggregated_orders_model.py +103 -0
  492. rapidata/api_client/models/paged_result_of_benchmark_query_result.py +103 -0
  493. rapidata/api_client/models/paged_result_of_campaign_query_result.py +103 -0
  494. rapidata/api_client/models/paged_result_of_clients_query_result.py +103 -0
  495. rapidata/api_client/models/paged_result_of_get_compare_workflow_results_result.py +103 -0
  496. rapidata/api_client/models/paged_result_of_get_grouped_ranking_workflow_results_result.py +103 -0
  497. rapidata/api_client/models/paged_result_of_get_validation_rapids_result.py +103 -0
  498. rapidata/api_client/models/paged_result_of_get_workflow_results_result.py +103 -0
  499. rapidata/api_client/models/paged_result_of_i_workflow_model.py +103 -0
  500. rapidata/api_client/models/paged_result_of_leaderboards_query_result.py +103 -0
  501. rapidata/api_client/models/paged_result_of_order_model.py +103 -0
  502. rapidata/api_client/models/paged_result_of_participant_by_benchmark.py +103 -0
  503. rapidata/api_client/models/paged_result_of_prompt_by_benchmark_result.py +103 -0
  504. rapidata/api_client/models/paged_result_of_query_audiences_result.py +103 -0
  505. rapidata/api_client/models/paged_result_of_query_datapoints_by_dataset_id_result.py +103 -0
  506. rapidata/api_client/models/paged_result_of_query_job_definitions_result.py +103 -0
  507. rapidata/api_client/models/paged_result_of_query_job_revisions_result.py +103 -0
  508. rapidata/api_client/models/paged_result_of_query_jobs_result.py +103 -0
  509. rapidata/api_client/models/paged_result_of_query_rapids_for_audience_result.py +103 -0
  510. rapidata/api_client/models/paged_result_of_query_validation_rapid_eligibility_result.py +103 -0
  511. rapidata/api_client/models/paged_result_of_rapid_model.py +103 -0
  512. rapidata/api_client/models/paged_result_of_runs_by_leaderboard_result.py +103 -0
  513. rapidata/api_client/models/paged_result_of_sample_by_identifier.py +103 -0
  514. rapidata/api_client/models/paged_result_of_sample_by_participant.py +103 -0
  515. rapidata/api_client/models/paged_result_of_standing_by_leaderboard.py +103 -0
  516. rapidata/api_client/models/paged_result_of_validation_set_model.py +103 -0
  517. rapidata/api_client/models/paged_result_order_model.py +105 -0
  518. rapidata/api_client/models/paged_result_participant_by_benchmark.py +105 -0
  519. rapidata/api_client/models/paged_result_potential_validation_rapid.py +105 -0
  520. rapidata/api_client/models/paged_result_prompt_by_benchmark_result.py +105 -0
  521. rapidata/api_client/models/paged_result_query_audiences_result.py +105 -0
  522. rapidata/api_client/models/paged_result_query_datapoints_by_dataset_id_result.py +105 -0
  523. rapidata/api_client/models/paged_result_query_validation_rapid_eligibility_result.py +105 -0
  524. rapidata/api_client/models/paged_result_rapid_model.py +105 -0
  525. rapidata/api_client/models/paged_result_runs_by_leaderboard_result.py +105 -0
  526. rapidata/api_client/models/paged_result_sample_by_identifier.py +105 -0
  527. rapidata/api_client/models/paged_result_sample_by_participant.py +105 -0
  528. rapidata/api_client/models/paged_result_standing_by_leaderboard.py +105 -0
  529. rapidata/api_client/models/paged_result_validation_set_model.py +105 -0
  530. rapidata/api_client/models/participant_by_benchmark.py +6 -14
  531. rapidata/api_client/models/participant_status.py +2 -2
  532. rapidata/api_client/models/polygon_result.py +3 -3
  533. rapidata/api_client/models/polygon_result_coordinate.py +89 -0
  534. rapidata/api_client/models/polygon_result_shape.py +95 -0
  535. rapidata/api_client/models/preliminary_download_model.py +5 -5
  536. rapidata/api_client/models/preview_order_model.py +5 -5
  537. rapidata/api_client/models/problem_details.py +2 -20
  538. rapidata/api_client/models/prompt_asset_metadata_input.py +4 -6
  539. rapidata/api_client/models/prompt_asset_metadata_input_asset.py +25 -41
  540. rapidata/api_client/models/prompt_by_benchmark_result.py +5 -5
  541. rapidata/api_client/models/prompt_metadata.py +12 -1
  542. rapidata/api_client/models/prompt_metadata_input.py +5 -7
  543. rapidata/api_client/models/prompt_type.py +38 -0
  544. rapidata/api_client/models/proxy_file_wrapper.py +17 -2
  545. rapidata/api_client/models/public_order_model.py +2 -2
  546. rapidata/api_client/models/public_rapid_response.py +112 -0
  547. rapidata/api_client/models/query_audiences_result.py +118 -0
  548. rapidata/api_client/models/query_datapoints_by_dataset_id_result.py +95 -0
  549. rapidata/api_client/models/query_job_definitions_result.py +97 -0
  550. rapidata/api_client/models/query_job_revisions_result.py +95 -0
  551. rapidata/api_client/models/query_jobs_result.py +103 -0
  552. rapidata/api_client/models/query_model.py +10 -5
  553. rapidata/api_client/models/query_rapids_for_audience_result.py +150 -0
  554. rapidata/api_client/models/query_validation_rapid_eligibility_model_query_validation_model.py +107 -0
  555. rapidata/api_client/models/query_validation_rapid_eligibility_result.py +103 -0
  556. rapidata/api_client/models/query_validation_rapid_eligibility_result_truth.py +280 -0
  557. rapidata/api_client/models/rapid_issue.py +2 -2
  558. rapidata/api_client/models/rapid_modality.py +46 -0
  559. rapidata/api_client/models/rapid_model.py +33 -49
  560. rapidata/api_client/models/rapid_result_model.py +7 -7
  561. rapidata/api_client/models/rapid_skipped_model.py +5 -5
  562. rapidata/api_client/models/rapid_state.py +2 -2
  563. rapidata/api_client/models/read_bridge_token_keys_result.py +10 -24
  564. rapidata/api_client/models/reference_asset_input.py +100 -0
  565. rapidata/api_client/models/report_model.py +9 -15
  566. rapidata/api_client/models/response_count_filter.py +103 -0
  567. rapidata/api_client/models/response_count_user_filter_model.py +2 -8
  568. rapidata/api_client/models/retrieval_mode.py +2 -2
  569. rapidata/api_client/models/root_filter.py +5 -14
  570. rapidata/api_client/models/run_status.py +2 -2
  571. rapidata/api_client/models/runs_by_leaderboard_result.py +6 -12
  572. rapidata/api_client/models/sample_by_identifier.py +125 -0
  573. rapidata/api_client/models/sample_by_identifier_paged_result.py +105 -0
  574. rapidata/api_client/models/sample_by_participant.py +7 -8
  575. rapidata/api_client/models/scrub_range.py +2 -2
  576. rapidata/api_client/models/send_survey_model.py +87 -0
  577. rapidata/api_client/models/simple_workflow_config.py +15 -5
  578. rapidata/api_client/models/simple_workflow_config_blueprint.py +37 -23
  579. rapidata/api_client/models/simple_workflow_config_model.py +11 -3
  580. rapidata/api_client/models/simple_workflow_model.py +14 -4
  581. rapidata/api_client/models/simple_workflow_model1.py +4 -11
  582. rapidata/api_client/models/simple_workflow_model_blueprint.py +1 -1
  583. rapidata/api_client/models/sort_criterion.py +5 -11
  584. rapidata/api_client/models/sort_direction.py +2 -2
  585. rapidata/api_client/models/source_url_metadata.py +12 -1
  586. rapidata/api_client/models/standing_by_benchmark.py +113 -0
  587. rapidata/api_client/models/standing_by_leaderboard.py +19 -21
  588. rapidata/api_client/models/standing_status.py +2 -2
  589. rapidata/api_client/models/standings_by_benchmark_result.py +95 -0
  590. rapidata/api_client/models/standings_by_leaderboard_result.py +2 -2
  591. rapidata/api_client/models/start_preliminary_download_result.py +87 -0
  592. rapidata/api_client/models/sticky_state.py +3 -2
  593. rapidata/api_client/models/stream_file_wrapper.py +25 -3
  594. rapidata/api_client/models/streams_metadata.py +12 -1
  595. rapidata/api_client/models/string_segment.py +105 -0
  596. rapidata/api_client/models/submit_order_model.py +5 -5
  597. rapidata/api_client/models/submit_participant_result.py +2 -2
  598. rapidata/api_client/models/submit_prompt_model.py +9 -14
  599. rapidata/api_client/models/submit_prompt_model_prompt_asset.py +40 -12
  600. rapidata/api_client/models/tags_by_benchmark_result.py +2 -2
  601. rapidata/api_client/models/text_asset.py +3 -5
  602. rapidata/api_client/models/text_asset_input.py +21 -1
  603. rapidata/api_client/models/text_metadata.py +18 -2
  604. rapidata/api_client/models/text_metadata_input.py +111 -0
  605. rapidata/api_client/models/text_metadata_model.py +7 -2
  606. rapidata/api_client/models/transcription_metadata.py +9 -1
  607. rapidata/api_client/models/transcription_metadata_input.py +5 -7
  608. rapidata/api_client/models/transcription_word.py +2 -2
  609. rapidata/api_client/models/translated_string.py +2 -2
  610. rapidata/api_client/models/unlock_order_result.py +2 -2
  611. rapidata/api_client/models/update_audience_request.py +113 -0
  612. rapidata/api_client/models/update_benchmark_model.py +99 -0
  613. rapidata/api_client/models/update_benchmark_name_model.py +5 -5
  614. rapidata/api_client/models/update_campaign_model.py +11 -11
  615. rapidata/api_client/models/update_dataset_name_model.py +5 -5
  616. rapidata/api_client/models/update_dimensions_model.py +3 -3
  617. rapidata/api_client/models/update_job_definition_endpoint_input.py +92 -0
  618. rapidata/api_client/models/update_leaderboard_model.py +106 -0
  619. rapidata/api_client/models/update_leaderboard_name_model.py +5 -5
  620. rapidata/api_client/models/update_leaderboard_response_config_model.py +5 -5
  621. rapidata/api_client/models/update_order_name_model.py +5 -5
  622. rapidata/api_client/models/update_participant_model.py +92 -0
  623. rapidata/api_client/models/update_participant_name_model.py +5 -5
  624. rapidata/api_client/models/update_priority_model.py +87 -0
  625. rapidata/api_client/models/update_prompt_tags_model.py +5 -5
  626. rapidata/api_client/models/update_should_alert_model.py +4 -4
  627. rapidata/api_client/models/update_validation_rapid_model.py +35 -14
  628. rapidata/api_client/models/update_validation_rapid_model_context_asset.py +160 -0
  629. rapidata/api_client/models/update_validation_set_model.py +120 -0
  630. rapidata/api_client/models/upload_asset_result.py +102 -0
  631. rapidata/api_client/models/upload_file_from_url_result.py +87 -0
  632. rapidata/api_client/models/upload_file_result.py +87 -0
  633. rapidata/api_client/models/user_action_restriction.py +37 -0
  634. rapidata/api_client/models/user_action_restriction_filter.py +101 -0
  635. rapidata/api_client/models/user_score_filter.py +102 -0
  636. rapidata/api_client/models/user_state.py +38 -0
  637. rapidata/api_client/models/user_state_filter.py +101 -0
  638. rapidata/api_client/models/validation_chance.py +20 -3
  639. rapidata/api_client/models/validation_problem_details.py +117 -0
  640. rapidata/api_client/models/validation_set_model.py +39 -5
  641. rapidata/api_client/models/validation_set_overview_model.py +2 -2
  642. rapidata/api_client/models/video_duration_metadata.py +12 -1
  643. rapidata/api_client/models/workflow_aggregation_step_model.py +3 -12
  644. rapidata/api_client/models/workflow_config_artifact_model_workflow_config.py +23 -9
  645. rapidata/api_client/models/workflow_state.py +2 -2
  646. rapidata/api_client/models/zip_entry_file_wrapper.py +33 -2
  647. rapidata/api_client/rest.py +2 -2
  648. rapidata/api_client_README.md +384 -318
  649. rapidata/rapidata_client/__init__.py +17 -22
  650. rapidata/rapidata_client/api/rapidata_api_client.py +253 -0
  651. rapidata/rapidata_client/audience/__init__.py +2 -0
  652. rapidata/rapidata_client/audience/audience_example_handler.py +168 -0
  653. rapidata/rapidata_client/audience/rapidata_audience.py +287 -0
  654. rapidata/rapidata_client/audience/rapidata_audience_manager.py +162 -0
  655. rapidata/rapidata_client/benchmark/_detail_mapper.py +11 -9
  656. rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py +98 -54
  657. rapidata/rapidata_client/benchmark/participant/_participant.py +90 -46
  658. rapidata/rapidata_client/benchmark/rapidata_benchmark.py +388 -225
  659. rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +172 -65
  660. rapidata/rapidata_client/config/__init__.py +4 -0
  661. rapidata/rapidata_client/config/logger.py +135 -0
  662. rapidata/rapidata_client/config/logging_config.py +55 -0
  663. rapidata/rapidata_client/config/managed_print.py +6 -0
  664. rapidata/rapidata_client/config/order_config.py +14 -0
  665. rapidata/rapidata_client/config/rapidata_config.py +36 -0
  666. rapidata/rapidata_client/config/tracer.py +184 -0
  667. rapidata/rapidata_client/config/upload_config.py +64 -0
  668. rapidata/rapidata_client/datapoints/__init__.py +8 -3
  669. rapidata/rapidata_client/datapoints/_asset_uploader.py +184 -0
  670. rapidata/rapidata_client/datapoints/_datapoint.py +92 -0
  671. rapidata/rapidata_client/datapoints/_datapoint_uploader.py +47 -0
  672. rapidata/rapidata_client/datapoints/_datapoints_validator.py +70 -0
  673. rapidata/rapidata_client/datapoints/assets/__init__.py +0 -10
  674. rapidata/rapidata_client/datapoints/assets/constants.py +7 -0
  675. rapidata/rapidata_client/datapoints/metadata/__init__.py +0 -2
  676. rapidata/rapidata_client/datapoints/metadata/_private_text_metadata.py +5 -6
  677. rapidata/rapidata_client/datapoints/metadata/_prompt_identifier_metadata.py +4 -5
  678. rapidata/rapidata_client/datapoints/metadata/_public_text_metadata.py +5 -6
  679. rapidata/rapidata_client/datapoints/metadata/_select_words_metadata.py +3 -4
  680. rapidata/rapidata_client/dataset/__init__.py +1 -0
  681. rapidata/rapidata_client/dataset/_rapidata_dataset.py +55 -0
  682. rapidata/rapidata_client/demographic/demographic_manager.py +44 -19
  683. rapidata/rapidata_client/exceptions/failed_upload_exception.py +15 -41
  684. rapidata/rapidata_client/filter/_backend_filter_mapper.py +134 -0
  685. rapidata/rapidata_client/filter/_base_filter.py +13 -8
  686. rapidata/rapidata_client/filter/age_filter.py +26 -10
  687. rapidata/rapidata_client/filter/and_filter.py +36 -11
  688. rapidata/rapidata_client/filter/campaign_filter.py +21 -10
  689. rapidata/rapidata_client/filter/country_filter.py +46 -12
  690. rapidata/rapidata_client/filter/custom_filter.py +25 -12
  691. rapidata/rapidata_client/filter/gender_filter.py +25 -10
  692. rapidata/rapidata_client/filter/language_filter.py +51 -21
  693. rapidata/rapidata_client/filter/models/age_group.py +14 -12
  694. rapidata/rapidata_client/filter/models/gender.py +12 -8
  695. rapidata/rapidata_client/filter/new_user_filter.py +14 -4
  696. rapidata/rapidata_client/filter/not_filter.py +35 -11
  697. rapidata/rapidata_client/filter/or_filter.py +36 -11
  698. rapidata/rapidata_client/filter/rapidata_filters.py +17 -23
  699. rapidata/rapidata_client/filter/response_count_filter.py +51 -20
  700. rapidata/rapidata_client/filter/user_score_filter.py +62 -24
  701. rapidata/rapidata_client/job/__init__.py +3 -0
  702. rapidata/rapidata_client/job/job_definition.py +110 -0
  703. rapidata/rapidata_client/job/job_manager.py +758 -0
  704. rapidata/rapidata_client/job/rapidata_job.py +326 -0
  705. rapidata/rapidata_client/order/__init__.py +2 -0
  706. rapidata/rapidata_client/order/_rapidata_order_builder.py +273 -122
  707. rapidata/rapidata_client/order/rapidata_order.py +316 -160
  708. rapidata/rapidata_client/order/rapidata_order_manager.py +680 -421
  709. rapidata/rapidata_client/rapidata_client.py +115 -37
  710. rapidata/rapidata_client/referee/__init__.py +1 -1
  711. rapidata/rapidata_client/referee/_base_referee.py +14 -3
  712. rapidata/rapidata_client/referee/_early_stopping_referee.py +32 -17
  713. rapidata/rapidata_client/referee/_naive_referee.py +24 -3
  714. rapidata/rapidata_client/results/__init__.py +3 -0
  715. rapidata/rapidata_client/{order → results}/rapidata_results.py +86 -63
  716. rapidata/rapidata_client/selection/__init__.py +1 -1
  717. rapidata/rapidata_client/selection/_base_selection.py +9 -2
  718. rapidata/rapidata_client/selection/ab_test_selection.py +28 -20
  719. rapidata/rapidata_client/selection/capped_selection.py +23 -16
  720. rapidata/rapidata_client/selection/conditional_validation_selection.py +43 -24
  721. rapidata/rapidata_client/selection/demographic_selection.py +21 -6
  722. rapidata/rapidata_client/selection/effort_selection.py +31 -8
  723. rapidata/rapidata_client/selection/labeling_selection.py +34 -11
  724. rapidata/rapidata_client/selection/{retrieval_modes.py → rapidata_retrieval_modes.py} +7 -4
  725. rapidata/rapidata_client/selection/rapidata_selections.py +23 -14
  726. rapidata/rapidata_client/selection/shuffling_selection.py +21 -13
  727. rapidata/rapidata_client/selection/static_selection.py +19 -8
  728. rapidata/rapidata_client/selection/validation_selection.py +20 -4
  729. rapidata/rapidata_client/settings/__init__.py +2 -0
  730. rapidata/rapidata_client/settings/_rapidata_setting.py +22 -3
  731. rapidata/rapidata_client/settings/alert_on_fast_response.py +8 -5
  732. rapidata/rapidata_client/settings/allow_neither_both.py +3 -0
  733. rapidata/rapidata_client/settings/custom_setting.py +3 -2
  734. rapidata/rapidata_client/settings/free_text_minimum_characters.py +9 -4
  735. rapidata/rapidata_client/settings/models/translation_behaviour_options.py +3 -2
  736. rapidata/rapidata_client/settings/mute_video.py +15 -0
  737. rapidata/rapidata_client/settings/no_shuffle.py +4 -2
  738. rapidata/rapidata_client/settings/play_video_until_the_end.py +7 -4
  739. rapidata/rapidata_client/settings/rapidata_settings.py +22 -9
  740. rapidata/rapidata_client/settings/swap_context_instruction.py +20 -0
  741. rapidata/rapidata_client/settings/translation_behaviour.py +7 -5
  742. rapidata/rapidata_client/utils/__init__.py +3 -0
  743. rapidata/rapidata_client/utils/threaded_uploader.py +153 -0
  744. rapidata/rapidata_client/validation/__init__.py +2 -0
  745. rapidata/rapidata_client/validation/rapidata_validation_set.py +96 -18
  746. rapidata/rapidata_client/validation/rapids/__init__.py +2 -0
  747. rapidata/rapidata_client/validation/rapids/_validation_rapid_uploader.py +48 -0
  748. rapidata/rapidata_client/validation/rapids/box.py +37 -12
  749. rapidata/rapidata_client/validation/rapids/rapids.py +29 -83
  750. rapidata/rapidata_client/validation/rapids/rapids_manager.py +369 -211
  751. rapidata/rapidata_client/validation/validation_set_manager.py +505 -276
  752. rapidata/rapidata_client/workflow/__init__.py +2 -2
  753. rapidata/rapidata_client/workflow/_base_workflow.py +25 -7
  754. rapidata/rapidata_client/workflow/_classify_workflow.py +58 -15
  755. rapidata/rapidata_client/workflow/_compare_workflow.py +44 -9
  756. rapidata/rapidata_client/workflow/_draw_workflow.py +40 -10
  757. rapidata/rapidata_client/workflow/_evaluation_workflow.py +28 -7
  758. rapidata/rapidata_client/workflow/_free_text_workflow.py +46 -9
  759. rapidata/rapidata_client/workflow/_locate_workflow.py +40 -10
  760. rapidata/rapidata_client/workflow/_multi_ranking_workflow.py +90 -0
  761. rapidata/rapidata_client/workflow/_select_words_workflow.py +51 -11
  762. rapidata/rapidata_client/workflow/_timestamp_workflow.py +42 -11
  763. rapidata/service/__init__.py +0 -1
  764. rapidata/service/credential_manager.py +14 -14
  765. rapidata/service/openapi_service.py +119 -34
  766. rapidata/types/__init__.py +149 -0
  767. rapidata-3.0.0a8.dist-info/METADATA +32 -0
  768. rapidata-3.0.0a8.dist-info/RECORD +1083 -0
  769. {rapidata-2.35.1.dist-info → rapidata-3.0.0a8.dist-info}/WHEEL +1 -1
  770. rapidata/rapidata_client/api/rapidata_exception.py +0 -107
  771. rapidata/rapidata_client/country_codes/__init__.py +0 -1
  772. rapidata/rapidata_client/country_codes/country_codes.py +0 -19
  773. rapidata/rapidata_client/datapoints/assets/_base_asset.py +0 -11
  774. rapidata/rapidata_client/datapoints/assets/_media_asset.py +0 -306
  775. rapidata/rapidata_client/datapoints/assets/_multi_asset.py +0 -61
  776. rapidata/rapidata_client/datapoints/assets/_sessions.py +0 -35
  777. rapidata/rapidata_client/datapoints/assets/_text_asset.py +0 -34
  778. rapidata/rapidata_client/datapoints/assets/data_type_enum.py +0 -8
  779. rapidata/rapidata_client/datapoints/datapoint.py +0 -108
  780. rapidata/rapidata_client/datapoints/metadata/_media_asset_metadata.py +0 -22
  781. rapidata/rapidata_client/datapoints/metadata/_prompt_metadata.py +0 -18
  782. rapidata/rapidata_client/logging/__init__.py +0 -2
  783. rapidata/rapidata_client/logging/logger.py +0 -122
  784. rapidata/rapidata_client/logging/output_manager.py +0 -20
  785. rapidata/rapidata_client/order/_rapidata_dataset.py +0 -396
  786. rapidata/rapidata_client/workflow/_ranking_workflow.py +0 -47
  787. rapidata/service/local_file_service.py +0 -25
  788. rapidata-2.35.1.dist-info/METADATA +0 -35
  789. rapidata-2.35.1.dist-info/RECORD +0 -657
  790. {rapidata-2.35.1.dist-info → rapidata-3.0.0a8.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,184 @@
1
+ from typing import Protocol, runtime_checkable, Any
2
+ import platform
3
+ import sys
4
+ import os
5
+ from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
6
+ from opentelemetry.sdk.trace import TracerProvider
7
+ from opentelemetry.sdk.trace.export import BatchSpanProcessor
8
+ from opentelemetry.sdk.resources import Resource
9
+ from rapidata import __version__
10
+ from .logging_config import LoggingConfig, register_config_handler
11
+ from rapidata.rapidata_client.config import logger
12
+
13
+
14
+ def get_system_attributes() -> dict[str, str | int | None]:
15
+ """Gather system telemetry for traces."""
16
+ try:
17
+ attrs = {
18
+ "system.os": platform.system(),
19
+ "system.os.version": platform.release(),
20
+ "system.arch": platform.machine(),
21
+ "python.version": f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}",
22
+ "process.cpu_count": os.cpu_count(),
23
+ }
24
+ logger.debug(f"System attributes: {attrs}")
25
+ return attrs
26
+ except Exception:
27
+ logger.debug("Failed to get system attributes, returning empty dict")
28
+ return {}
29
+
30
+
31
+ @runtime_checkable
32
+ class TracerProtocol(Protocol):
33
+ """Protocol that defines the tracer interface for type checking."""
34
+
35
+ def start_span(self, name: str, *args, **kwargs) -> Any: ...
36
+ def start_as_current_span(self, name: str, *args, **kwargs) -> Any: ...
37
+ def set_session_id(self, session_id: str) -> None: ...
38
+
39
+
40
+ class NoOpSpan:
41
+ """A no-op span that does nothing when tracing is disabled."""
42
+
43
+ def __enter__(self):
44
+ return self
45
+
46
+ def __exit__(self, *args):
47
+ pass
48
+
49
+ def set_attribute(self, *args, **kwargs):
50
+ pass
51
+
52
+ def set_status(self, *args, **kwargs):
53
+ pass
54
+
55
+ def add_event(self, *args, **kwargs):
56
+ pass
57
+
58
+ def end(self, *args, **kwargs):
59
+ pass
60
+
61
+ def __getattr__(self, name: str) -> Any:
62
+ """Return self for any method call to maintain chainability."""
63
+ return lambda *args, **kwargs: self
64
+
65
+
66
+ class NoOpTracer:
67
+ """A no-op tracer that returns no-op spans when tracing is disabled."""
68
+
69
+ def start_span(self, name: str, *args, **kwargs) -> NoOpSpan:
70
+ return NoOpSpan()
71
+
72
+ def start_as_current_span(self, name: str, *args, **kwargs) -> NoOpSpan:
73
+ return NoOpSpan()
74
+
75
+ def set_session_id(self, session_id: str) -> None:
76
+ pass
77
+
78
+ def __getattr__(self, name: str) -> Any:
79
+ """Delegate to no-op behavior."""
80
+ return lambda *args, **kwargs: NoOpSpan()
81
+
82
+
83
+ class SpanContextManagerWrapper:
84
+ """Wrapper for span context managers to add session_id on enter."""
85
+
86
+ def __init__(self, context_manager: Any, session_id: str | None):
87
+ self._context_manager = context_manager
88
+ self.session_id = session_id
89
+
90
+ def __enter__(self):
91
+ span = self._context_manager.__enter__()
92
+ if self.session_id and hasattr(span, "set_attribute"):
93
+ span.set_attribute("SDK.session.id", self.session_id)
94
+ return span
95
+
96
+ def __exit__(self, *args):
97
+ return self._context_manager.__exit__(*args)
98
+
99
+
100
+ class RapidataTracer:
101
+ """Tracer implementation that updates when the configuration changes."""
102
+
103
+ def __init__(self, name: str = __name__):
104
+ self._name = name
105
+ self._otlp_initialized = False
106
+ self._tracer_provider = None
107
+ self._real_tracer = None
108
+ self._no_op_tracer = NoOpTracer()
109
+ self._enabled = True # Default to enabled
110
+ self.session_id: str | None = None
111
+
112
+ # Register this tracer to receive configuration updates
113
+ register_config_handler(self._handle_config_update)
114
+
115
+ def _handle_config_update(self, config: LoggingConfig) -> None:
116
+ """Handle configuration updates."""
117
+ self._update_tracer(config)
118
+
119
+ def _update_tracer(self, config: LoggingConfig) -> None:
120
+ """Update the tracer based on the new configuration."""
121
+ self._enabled = config.enable_otlp
122
+
123
+ # Initialize OTLP tracing only once and only if not disabled
124
+ if not self._otlp_initialized and config.enable_otlp:
125
+ try:
126
+ resource_attributes = {
127
+ "service.name": "Rapidata.Python.SDK",
128
+ "service.version": __version__,
129
+ **get_system_attributes(),
130
+ }
131
+
132
+ resource = Resource.create(resource_attributes)
133
+
134
+ self._tracer_provider = TracerProvider(resource=resource)
135
+
136
+ exporter = OTLPSpanExporter(
137
+ endpoint="https://otlp-sdk.rapidata.ai/v1/traces",
138
+ timeout=30,
139
+ )
140
+
141
+ span_processor = BatchSpanProcessor(exporter)
142
+ self._tracer_provider.add_span_processor(span_processor)
143
+
144
+ self._real_tracer = self._tracer_provider.get_tracer(self._name)
145
+ self._otlp_initialized = True
146
+
147
+ except Exception as e:
148
+ logger.warning(f"Failed to initialize tracing: {e}")
149
+ self._enabled = False
150
+
151
+ def _add_session_id_to_span(self, span: Any) -> Any:
152
+ """Add session_id attribute to a span if session_id is set."""
153
+ if self.session_id and hasattr(span, "set_attribute"):
154
+ span.set_attribute("SDK.session.id", self.session_id)
155
+ return span
156
+
157
+ def start_span(self, name: str, *args, **kwargs) -> Any:
158
+ """Start a span, or return a no-op span if tracing is disabled."""
159
+ if self._enabled and self._real_tracer:
160
+ span = self._real_tracer.start_span(name, *args, **kwargs)
161
+ return self._add_session_id_to_span(span)
162
+ return self._no_op_tracer.start_span(name, *args, **kwargs)
163
+
164
+ def start_as_current_span(self, name: str, *args, **kwargs) -> Any:
165
+ """Start a span as current, or return a no-op span if tracing is disabled."""
166
+ if self._enabled and self._real_tracer:
167
+ context_manager = self._real_tracer.start_as_current_span(
168
+ name, *args, **kwargs
169
+ )
170
+ return SpanContextManagerWrapper(context_manager, self.session_id)
171
+ return self._no_op_tracer.start_as_current_span(name, *args, **kwargs)
172
+
173
+ def set_session_id(self, session_id: str) -> None:
174
+ self.session_id = session_id
175
+
176
+ def __getattr__(self, name: str) -> Any:
177
+ """Delegate attribute access to the appropriate tracer."""
178
+ if self._enabled and self._real_tracer:
179
+ return getattr(self._real_tracer, name)
180
+ return getattr(self._no_op_tracer, name)
181
+
182
+
183
+ # Create the main tracer instance - type checkers will see it as TracerProtocol
184
+ tracer: TracerProtocol = RapidataTracer() # type: ignore[assignment]
@@ -0,0 +1,64 @@
1
+ from pathlib import Path
2
+ from typing import Callable
3
+ from pydantic import BaseModel, Field, field_validator
4
+ from rapidata.rapidata_client.config import logger
5
+
6
+ # Type alias for config update handlers
7
+ UploadConfigUpdateHandler = Callable[["UploadConfig"], None]
8
+
9
+ # Global list to store registered handlers
10
+ _upload_config_handlers: list[UploadConfigUpdateHandler] = []
11
+
12
+
13
+ def register_upload_config_handler(handler: UploadConfigUpdateHandler) -> None:
14
+ """Register a handler to be called when the upload configuration updates."""
15
+ _upload_config_handlers.append(handler)
16
+
17
+
18
+ def unregister_upload_config_handler(handler: UploadConfigUpdateHandler) -> None:
19
+ """Unregister a previously registered handler."""
20
+ if handler in _upload_config_handlers:
21
+ _upload_config_handlers.remove(handler)
22
+
23
+
24
+ class UploadConfig(BaseModel):
25
+ """
26
+ Holds the configuration for the upload process.
27
+
28
+ Attributes:
29
+ maxWorkers (int): The maximum number of worker threads for processing media paths. Defaults to 25.
30
+ maxRetries (int): The maximum number of retries for failed uploads. Defaults to 3.
31
+ """
32
+
33
+ maxWorkers: int = Field(default=25)
34
+ maxRetries: int = Field(default=3)
35
+ cacheUploads: bool = Field(default=True)
36
+ cacheTimeout: float = Field(default=0.1)
37
+ cacheLocation: Path = Field(default=Path.home() / ".rapidata" / "upload_cache")
38
+ cacheSizeLimit: int = Field(default=100_000_000) # 100MB
39
+
40
+ @field_validator("maxWorkers")
41
+ @classmethod
42
+ def validate_max_workers(cls, v: int) -> int:
43
+ if v > 200:
44
+ logger.warning(
45
+ f"maxWorkers is set to {v}, which is above the recommended limit of 200. "
46
+ "This may lead to suboptimal performance due to connection pool constraints."
47
+ )
48
+ return v
49
+
50
+ def __init__(self, **kwargs):
51
+ super().__init__(**kwargs)
52
+ self._notify_handlers()
53
+
54
+ def __setattr__(self, name: str, value) -> None:
55
+ super().__setattr__(name, value)
56
+ self._notify_handlers()
57
+
58
+ def _notify_handlers(self) -> None:
59
+ """Notify all registered handlers that the configuration has updated."""
60
+ for handler in _upload_config_handlers:
61
+ try:
62
+ handler(self)
63
+ except Exception as e:
64
+ logger.warning(f"Warning: UploadConfig handler failed: {e}")
@@ -1,3 +1,8 @@
1
- from .datapoint import Datapoint
2
- from .assets import MediaAsset, MultiAsset, TextAsset
3
- from .metadata import Metadata, PromptMetadata, PrivateTextMetadata, PublicTextMetadata, SelectWordsMetadata, MediaAssetMetadata, PromptIdentifierMetadata
1
+ from ._datapoint import Datapoint
2
+ from .metadata import (
3
+ Metadata,
4
+ PrivateTextMetadata,
5
+ PublicTextMetadata,
6
+ SelectWordsMetadata,
7
+ PromptIdentifierMetadata,
8
+ )
@@ -0,0 +1,184 @@
1
+ from __future__ import annotations
2
+
3
+ import re
4
+ import os
5
+ from typing import TYPE_CHECKING, cast
6
+
7
+ from rapidata.rapidata_client.config.upload_config import register_upload_config_handler
8
+ from rapidata.rapidata_client.config.upload_config import UploadConfig
9
+ from rapidata.service.openapi_service import OpenAPIService
10
+ from rapidata.rapidata_client.config import logger
11
+ from rapidata.rapidata_client.config import tracer
12
+ from rapidata.rapidata_client.config import rapidata_config
13
+ from diskcache import FanoutCache
14
+
15
+ if TYPE_CHECKING:
16
+ from rapidata.api_client.models.i_asset_input import IAssetInput
17
+
18
+
19
+ class AssetUploader:
20
+ _shared_upload_cache: FanoutCache = FanoutCache(
21
+ rapidata_config.upload.cacheLocation,
22
+ shards=rapidata_config.upload.maxWorkers,
23
+ timeout=rapidata_config.upload.cacheTimeout,
24
+ size_limit=rapidata_config.upload.cacheSizeLimit,
25
+ )
26
+ _url_memory_cache: dict[str, str] = {}
27
+
28
+ def __init__(self, openapi_service: OpenAPIService):
29
+ self.openapi_service = openapi_service
30
+ # Register the handler for config update changes
31
+ register_upload_config_handler(self._handle_config_update)
32
+
33
+ @classmethod
34
+ def _handle_config_update(cls, config: UploadConfig):
35
+ """
36
+ Handle updates to the upload config (e.g., cache location, size, workers, timeout).
37
+ Re-instantiates the shared cache based on the new configuration.
38
+ """
39
+ logger.debug("Updating AssetUploader shared upload cache with new config")
40
+ try:
41
+ # Dispose of the old cache (closes open resources)
42
+ old_cache = getattr(cls, "_shared_upload_cache", None)
43
+ if old_cache:
44
+ try:
45
+ old_cache.close()
46
+ except Exception:
47
+ pass # ignore close errors
48
+
49
+ # Re-initialize with the updated config
50
+ cls._shared_upload_cache = FanoutCache(
51
+ config.cacheLocation,
52
+ shards=config.maxWorkers,
53
+ timeout=config.cacheTimeout,
54
+ size_limit=config.cacheSizeLimit,
55
+ )
56
+ logger.info(
57
+ "AssetUploader shared upload cache updated: location=%s, shards=%s, timeout=%s, size_limit=%s",
58
+ config.cacheLocation,
59
+ config.maxWorkers,
60
+ config.cacheTimeout,
61
+ config.cacheSizeLimit,
62
+ )
63
+ except Exception as e:
64
+ logger.warning(f"Failed to update AssetUploader shared upload cache: {e}")
65
+
66
+ def _get_cache_key(self, asset: str) -> str:
67
+ """Generate cache key for an asset, including environment."""
68
+ env = self.openapi_service.environment
69
+ if not os.path.exists(asset):
70
+ raise FileNotFoundError(f"File not found: {asset}")
71
+
72
+ stat = os.stat(asset)
73
+ return f"{env}@{asset}:{stat.st_size}:{stat.st_mtime_ns}"
74
+
75
+ def _get_url_cache_key(self, url: str) -> str:
76
+ """Generate cache key for a URL, including environment."""
77
+ env = self.openapi_service.environment
78
+ return f"{env}@{url}"
79
+
80
+ def upload_asset(self, asset: str) -> str:
81
+ with tracer.start_as_current_span("AssetUploader.upload_asset"):
82
+ logger.debug("Uploading asset: %s", asset)
83
+ assert isinstance(asset, str), "Asset must be a string"
84
+ if re.match(r"^https?://", asset):
85
+ url_key = self._get_url_cache_key(asset)
86
+ cached_value = self._url_memory_cache.get(url_key)
87
+ if cached_value is not None:
88
+ logger.debug("URL found in memory cache")
89
+ return cached_value
90
+
91
+ response = self.openapi_service.asset_api.asset_url_post(
92
+ url=asset,
93
+ )
94
+ self._url_memory_cache[url_key] = response.file_name
95
+ logger.debug("URL added to memory cache")
96
+ return response.file_name
97
+
98
+ asset_key = self._get_cache_key(asset)
99
+ cached_value = self._shared_upload_cache.get(asset_key)
100
+ if cached_value is not None:
101
+ logger.debug("Asset found in cache")
102
+ return cast(str, cached_value) # Type hint for the linter
103
+
104
+ response = self.openapi_service.asset_api.asset_file_post(
105
+ file=asset,
106
+ )
107
+ if rapidata_config.upload.cacheUploads:
108
+ self._shared_upload_cache[asset_key] = response.file_name
109
+ logger.debug("Asset added to cache")
110
+ logger.info("Asset uploaded: %s", response.file_name)
111
+ return response.file_name
112
+
113
+ def get_uploaded_text_input(self, assets: list[str] | str) -> IAssetInput:
114
+ from rapidata.api_client.models.i_asset_input import IAssetInput
115
+ from rapidata.api_client.models.i_asset_input_text_asset_input import (
116
+ IAssetInputTextAssetInput,
117
+ )
118
+ from rapidata.api_client.models.i_asset_input_multi_asset_input import (
119
+ IAssetInputMultiAssetInput,
120
+ )
121
+
122
+ if isinstance(assets, list):
123
+ return IAssetInput(
124
+ actual_instance=IAssetInputMultiAssetInput(
125
+ _t="MultiAssetInput",
126
+ assets=[
127
+ IAssetInput(
128
+ actual_instance=IAssetInputTextAssetInput(
129
+ _t="TextAssetInput", text=asset
130
+ )
131
+ )
132
+ for asset in assets
133
+ ],
134
+ )
135
+ )
136
+ else:
137
+ return IAssetInput(
138
+ actual_instance=IAssetInputTextAssetInput(
139
+ _t="TextAssetInput", text=assets
140
+ )
141
+ )
142
+
143
+ def get_uploaded_asset_input(self, assets: list[str] | str) -> IAssetInput:
144
+ from rapidata.api_client.models.i_asset_input import IAssetInput
145
+ from rapidata.api_client.models.i_asset_input_existing_asset_input import (
146
+ IAssetInputExistingAssetInput,
147
+ )
148
+ from rapidata.api_client.models.i_asset_input_multi_asset_input import (
149
+ IAssetInputMultiAssetInput,
150
+ )
151
+
152
+ if isinstance(assets, list):
153
+ return IAssetInput(
154
+ actual_instance=IAssetInputMultiAssetInput(
155
+ _t="MultiAssetInput",
156
+ assets=[
157
+ IAssetInput(
158
+ actual_instance=IAssetInputExistingAssetInput(
159
+ _t="ExistingAssetInput",
160
+ name=self.upload_asset(asset),
161
+ )
162
+ )
163
+ for asset in assets
164
+ ],
165
+ )
166
+ )
167
+ else:
168
+ return IAssetInput(
169
+ actual_instance=IAssetInputExistingAssetInput(
170
+ _t="ExistingAssetInput",
171
+ name=self.upload_asset(assets),
172
+ )
173
+ )
174
+
175
+ def clear_cache(self):
176
+ self._shared_upload_cache.clear()
177
+ self._url_memory_cache.clear()
178
+ logger.info("Upload cache cleared")
179
+
180
+ def __str__(self) -> str:
181
+ return f"AssetUploader(openapi_service={self.openapi_service})"
182
+
183
+ def __repr__(self) -> str:
184
+ return f"AssetUploader(openapi_service={self.openapi_service})"
@@ -0,0 +1,92 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Literal, TYPE_CHECKING
4
+
5
+ from pydantic import BaseModel, model_validator, field_validator
6
+ from typing_extensions import Self
7
+ from rapidata.rapidata_client.datapoints.assets.constants import (
8
+ ALLOWED_VIDEO_EXTENSIONS,
9
+ ALLOWED_IMAGE_EXTENSIONS,
10
+ ALLOWED_AUDIO_EXTENSIONS,
11
+ )
12
+ from rapidata.rapidata_client.config import logger
13
+
14
+ if TYPE_CHECKING:
15
+ from rapidata.api_client.models.asset_type import AssetType
16
+ from rapidata.api_client.models.prompt_type import PromptType
17
+
18
+
19
+ class Datapoint(BaseModel):
20
+ asset: str | list[str]
21
+ data_type: Literal["text", "media"]
22
+ context: str | None = None
23
+ media_context: str | None = None
24
+ sentence: str | None = None
25
+ private_note: str | None = None
26
+ group: str | None = None
27
+
28
+ @field_validator("context")
29
+ @classmethod
30
+ def context_not_empty(cls, v: str | None) -> str | None:
31
+ if v is not None and v == "":
32
+ raise ValueError(
33
+ "context cannot be an empty string. If not needed, set to None."
34
+ )
35
+ return v
36
+
37
+ @field_validator("media_context")
38
+ @classmethod
39
+ def media_context_not_empty(cls, v: str | None) -> str | None:
40
+ if v is not None and v == "":
41
+ raise ValueError(
42
+ "media_context cannot be an empty string. If not needed, set to None."
43
+ )
44
+ return v
45
+
46
+ @field_validator("sentence")
47
+ @classmethod
48
+ def sentence_has_space(cls, v: str | None) -> str | None:
49
+ if v is not None and len(v.split()) <= 1:
50
+ raise ValueError("sentence must contain at least two words.")
51
+ return v
52
+
53
+ @model_validator(mode="after")
54
+ def check_sentence_and_context(self) -> Self:
55
+ if isinstance(self.sentence, str) and isinstance(self.context, str):
56
+ raise ValueError(
57
+ "Both 'sentence' and 'context' cannot be strings at the same time."
58
+ )
59
+ return self
60
+
61
+ def get_asset_type(self) -> AssetType:
62
+ from rapidata.api_client.models.asset_type import AssetType
63
+
64
+ if self.data_type == "text":
65
+ return AssetType.TEXT
66
+
67
+ evaluation_asset = self.asset[0] if isinstance(self.asset, list) else self.asset
68
+ if any(evaluation_asset.endswith(ext) for ext in ALLOWED_IMAGE_EXTENSIONS):
69
+ return AssetType.IMAGE
70
+ elif any(evaluation_asset.endswith(ext) for ext in ALLOWED_VIDEO_EXTENSIONS):
71
+ return AssetType.VIDEO
72
+ elif any(evaluation_asset.endswith(ext) for ext in ALLOWED_AUDIO_EXTENSIONS):
73
+ return AssetType.AUDIO
74
+ else:
75
+ logger.debug(
76
+ f"Cannot get asset type for asset type: {type(evaluation_asset)}"
77
+ )
78
+ return AssetType.NONE
79
+
80
+ def get_prompt_type(self) -> list[PromptType]:
81
+ from rapidata.api_client.models.prompt_type import PromptType
82
+
83
+ prompt_types = []
84
+ if self.context:
85
+ prompt_types.append(PromptType.TEXT)
86
+ if self.media_context:
87
+ prompt_types.append(PromptType.ASSET)
88
+
89
+ if len(prompt_types) == 0:
90
+ return [PromptType.NONE]
91
+
92
+ return prompt_types
@@ -0,0 +1,47 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from rapidata.rapidata_client.datapoints._datapoint import Datapoint
6
+ from rapidata.service.openapi_service import OpenAPIService
7
+ from rapidata.rapidata_client.datapoints._asset_uploader import AssetUploader
8
+
9
+ if TYPE_CHECKING:
10
+ from rapidata.api_client.models.create_datapoint_result import CreateDatapointResult
11
+
12
+
13
+ class DatapointUploader:
14
+ def __init__(self, openapi_service: OpenAPIService):
15
+ self.openapi_service = openapi_service
16
+ self.asset_uploader = AssetUploader(openapi_service)
17
+
18
+ def upload_datapoint(
19
+ self, datapoint: Datapoint, dataset_id: str, index: int
20
+ ) -> CreateDatapointResult:
21
+ from rapidata.api_client.models.create_datapoint_model import (
22
+ CreateDatapointModel,
23
+ )
24
+ from rapidata.api_client.models.i_asset_input import IAssetInput
25
+
26
+ uploaded_asset: IAssetInput = (
27
+ self.asset_uploader.get_uploaded_asset_input(datapoint.asset)
28
+ if datapoint.data_type == "media"
29
+ else self.asset_uploader.get_uploaded_text_input(datapoint.asset)
30
+ )
31
+ return self.openapi_service.dataset_api.dataset_dataset_id_datapoint_post(
32
+ dataset_id=dataset_id,
33
+ create_datapoint_model=CreateDatapointModel(
34
+ asset=uploaded_asset,
35
+ context=datapoint.context,
36
+ contextAsset=(
37
+ self.asset_uploader.get_uploaded_asset_input(
38
+ datapoint.media_context
39
+ )
40
+ if datapoint.media_context
41
+ else None
42
+ ),
43
+ transcription=datapoint.sentence,
44
+ sortIndex=index,
45
+ group=datapoint.group,
46
+ ),
47
+ )
@@ -0,0 +1,70 @@
1
+ from itertools import zip_longest
2
+ from typing import Literal, cast, Iterable
3
+ from rapidata.rapidata_client.datapoints._datapoint import Datapoint
4
+
5
+
6
+ class DatapointsValidator:
7
+ @staticmethod
8
+ def validate_datapoints(
9
+ datapoints: list[str] | list[list[str]],
10
+ contexts: list[str] | None = None,
11
+ media_contexts: list[str] | None = None,
12
+ sentences: list[str] | None = None,
13
+ private_notes: list[str] | None = None,
14
+ groups: list[str] | None = None,
15
+ ) -> None:
16
+ if contexts and len(contexts) != len(datapoints):
17
+ raise ValueError("Number of contexts must match number of datapoints")
18
+ if media_contexts and len(media_contexts) != len(datapoints):
19
+ raise ValueError("Number of media contexts must match number of datapoints")
20
+ if sentences and len(sentences) != len(datapoints):
21
+ raise ValueError("Number of sentences must match number of datapoints")
22
+ if private_notes and len(private_notes) != len(datapoints):
23
+ raise ValueError("Number of private notes must match number of datapoints")
24
+ if groups and (
25
+ len(groups) != len(datapoints) or len(groups) != len(set(groups))
26
+ ):
27
+ raise ValueError(
28
+ "Number of groups must match number of datapoints and must be unique."
29
+ )
30
+
31
+ @staticmethod
32
+ def map_datapoints(
33
+ datapoints: list[str] | list[list[str]],
34
+ contexts: list[str] | None = None,
35
+ media_contexts: list[str] | None = None,
36
+ sentences: list[str] | None = None,
37
+ private_notes: list[str] | None = None,
38
+ groups: list[str] | None = None,
39
+ data_type: Literal["text", "media"] = "media",
40
+ ) -> list[Datapoint]:
41
+ DatapointsValidator.validate_datapoints(
42
+ datapoints=datapoints,
43
+ contexts=contexts,
44
+ media_contexts=media_contexts,
45
+ sentences=sentences,
46
+ private_notes=private_notes,
47
+ groups=groups,
48
+ )
49
+ return [
50
+ Datapoint(
51
+ asset=asset,
52
+ data_type=data_type,
53
+ context=context,
54
+ media_context=media_context,
55
+ sentence=sentence,
56
+ private_note=private_note,
57
+ group=group,
58
+ )
59
+ for asset, context, media_context, sentence, private_note, group in cast(
60
+ "Iterable[tuple[str | list[str], str | None, str | None, str | None, str | None, str | None]]", # because iterator only supports 5 arguments with specific type casting
61
+ zip_longest(
62
+ datapoints,
63
+ contexts or [],
64
+ media_contexts or [],
65
+ sentences or [],
66
+ private_notes or [],
67
+ groups or [],
68
+ ),
69
+ )
70
+ ]
@@ -1,10 +0,0 @@
1
- """Assets Package
2
-
3
- This package provides classes for different types of assets, including MediaAsset, TextAsset, and MultiAsset.
4
- """
5
- from ._base_asset import BaseAsset
6
- from ._media_asset import MediaAsset
7
- from ._text_asset import TextAsset
8
- from ._multi_asset import MultiAsset
9
- from .data_type_enum import RapidataDataTypes
10
- from ._sessions import SessionManager
@@ -0,0 +1,7 @@
1
+ ALLOWED_IMAGE_EXTENSIONS = [".jpg", ".jpeg", ".png", ".gif", ".webp"]
2
+ ALLOWED_AUDIO_EXTENSIONS = [".mp3"]
3
+ ALLOWED_VIDEO_EXTENSIONS = [".mp4"]
4
+
5
+ ALLOWED_MEDIA_EXTENSIONS = (
6
+ ALLOWED_IMAGE_EXTENSIONS + ALLOWED_AUDIO_EXTENSIONS + ALLOWED_VIDEO_EXTENSIONS
7
+ )
@@ -1,7 +1,5 @@
1
1
  from ._base_metadata import Metadata
2
2
  from ._private_text_metadata import PrivateTextMetadata
3
3
  from ._public_text_metadata import PublicTextMetadata
4
- from ._prompt_metadata import PromptMetadata
5
4
  from ._select_words_metadata import SelectWordsMetadata
6
- from ._media_asset_metadata import MediaAssetMetadata
7
5
  from ._prompt_identifier_metadata import PromptIdentifierMetadata