rapidata 2.27.0__py3-none-any.whl → 2.44.4__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 (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 +145 -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 +26 -20
  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 -428
  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 +25 -15
  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 +23 -11
  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 +531 -219
  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 +18 -18
  744. rapidata/service/openapi_service.py +82 -22
  745. rapidata/types/__init__.py +166 -0
  746. rapidata-2.44.4.dist-info/METADATA +32 -0
  747. rapidata-2.44.4.dist-info/RECORD +1014 -0
  748. {rapidata-2.27.0.dist-info → rapidata-2.44.4.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 -47
  761. rapidata/rapidata_client/logging/output_manager.py +0 -16
  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.0.dist-info/METADATA +0 -35
  769. rapidata-2.27.0.dist-info/RECORD +0 -540
  770. /rapidata/rapidata_client/{metadata → datapoints/metadata}/_base_metadata.py +0 -0
  771. {rapidata-2.27.0.dist-info → rapidata-2.44.4.dist-info/licenses}/LICENSE +0 -0
@@ -1,22 +1,43 @@
1
+ from __future__ import annotations
2
+
3
+ import time
4
+ import urllib.parse
5
+ import webbrowser
6
+ from colorama import Fore
7
+ from typing import Literal, TYPE_CHECKING
1
8
  from rapidata.api_client import QueryModel
2
- from rapidata.rapidata_client.validation.rapidata_validation_set import RapidataValidationSet
3
- from rapidata.api_client.models.create_validation_set_model import CreateValidationSetModel
9
+ from rapidata.rapidata_client.validation.rapidata_validation_set import (
10
+ RapidataValidationSet,
11
+ )
12
+ from rapidata.api_client.models.create_validation_set_model import (
13
+ CreateValidationSetModel,
14
+ )
4
15
  from rapidata.service.openapi_service import OpenAPIService
5
- from rapidata.rapidata_client.assets.data_type_enum import RapidataDataTypes
6
16
  from rapidata.rapidata_client.validation.rapids.rapids_manager import RapidsManager
7
- from rapidata.rapidata_client.validation.rapids.rapids import Rapid
8
- from rapidata.rapidata_client.metadata import PromptMetadata
9
17
 
10
18
  from rapidata.api_client.models.page_info import PageInfo
11
19
  from rapidata.api_client.models.root_filter import RootFilter
12
20
  from rapidata.api_client.models.filter import Filter
13
21
  from rapidata.api_client.models.sort_criterion import SortCriterion
14
- from urllib3._collections import HTTPHeaderDict # type: ignore[import]
22
+ from rapidata.api_client.models.sort_direction import SortDirection
23
+ from rapidata.api_client.models.filter_operator import FilterOperator
15
24
 
16
25
  from rapidata.rapidata_client.validation.rapids.box import Box
17
26
 
18
- from rapidata.rapidata_client.logging import logger, managed_print, RapidataOutputManager
27
+ from rapidata.rapidata_client.config import (
28
+ logger,
29
+ managed_print,
30
+ rapidata_config,
31
+ tracer,
32
+ )
19
33
  from tqdm import tqdm
34
+ from rapidata.rapidata_client.validation.rapids.rapids import Rapid
35
+
36
+ if TYPE_CHECKING:
37
+ from rapidata.rapidata_client.workflow import Workflow
38
+ from rapidata.rapidata_client.datapoints._datapoint import Datapoint
39
+ from rapidata.rapidata_client.settings._rapidata_setting import RapidataSetting
40
+ from typing import Sequence
20
41
 
21
42
 
22
43
  class ValidationSetManager:
@@ -26,24 +47,35 @@ class ValidationSetManager:
26
47
  Attributes:
27
48
  rapid (RapidsManager): The RapidsManager instance.
28
49
  """
50
+
29
51
  def __init__(self, openapi_service: OpenAPIService) -> None:
30
- self.__openapi_service = openapi_service
31
- self.rapid = RapidsManager()
52
+ self._openapi_service = openapi_service
53
+ self.rapid = RapidsManager(openapi_service)
32
54
  logger.debug("ValidationSetManager initialized")
33
55
 
34
- def create_classification_set(self,
56
+ def _get_total_and_labeled_rapids_count(
57
+ self, validation_set_id: str
58
+ ) -> tuple[int, int]:
59
+ uploaded_rapids = self._openapi_service.validation_api.validation_set_validation_set_id_rapids_get(
60
+ validation_set_id=validation_set_id
61
+ ).items
62
+ return len(uploaded_rapids), sum(1 for rapid in uploaded_rapids if rapid.truth)
63
+
64
+ def create_classification_set(
65
+ self,
35
66
  name: str,
36
67
  instruction: str,
37
68
  answer_options: list[str],
38
69
  datapoints: list[str],
39
70
  truths: list[list[str]],
40
- data_type: str = RapidataDataTypes.MEDIA,
71
+ data_type: Literal["media", "text"] = "media",
41
72
  contexts: list[str] | None = None,
73
+ media_contexts: list[str] | None = None,
42
74
  explanations: list[str | None] | None = None,
43
75
  dimensions: list[str] = [],
44
76
  ) -> RapidataValidationSet:
45
77
  """Create a classification validation set.
46
-
78
+
47
79
  Args:
48
80
  name (str): The name of the validation set. (will not be shown to the labeler)
49
81
  instruction (str): The instruction by which the labeler will answer.
@@ -54,10 +86,13 @@ class ValidationSetManager:
54
86
  options: ["yes", "no", "maybe"]
55
87
  datapoints: ["datapoint1", "datapoint2"]
56
88
  truths: [["yes"], ["no", "maybe"]] -> first datapoint correct answer is "yes", second datapoint is "no" or "maybe"
57
- data_type (str, optional): The type of data. Defaults to RapidataDataTypes.MEDIA. Other option: RapidataDataTypes.TEXT ("text").
89
+ data_type (str, optional): The type of data. Defaults to "media" (any form of image, video or audio). Other option: "text".
58
90
  contexts (list[str], optional): The contexts for each datapoint. Defaults to None.\n
59
91
  If provided has to be the same length as datapoints and will be shown in addition to the instruction and answer options. (Therefore will be different for each datapoint)
60
92
  Will be match up with the datapoints using the list index.
93
+ media_contexts (list[str], optional): The list of media contexts i.e. links to the images / videos for the comparison. Defaults to None.\n
94
+ If provided has to be the same length as datapoints and will be shown in addition to the instruction. (Therefore will be different for each datapoint)
95
+ Will be matched up with the datapoints using the list index.
61
96
  explanations (list[str | None], optional): The explanations for each datapoint. Will be given to the annotators in case the answer is wrong. Defaults to None.
62
97
  dimensions (list[str], optional): The dimensions to add to the validation set accross which users will be tracked. Defaults to [] which is the default dimension.
63
98
 
@@ -69,44 +104,61 @@ class ValidationSetManager:
69
104
  ```
70
105
  This would mean: first datapoint correct answer is "yes", second datapoint is "no" or "maybe"
71
106
  """
72
-
73
- if len(datapoints) != len(truths):
74
- raise ValueError("The number of datapoints and truths must be equal")
75
-
76
- if not all([isinstance(truth, (list, tuple)) for truth in truths]):
77
- raise ValueError("Truths must be a list of lists or tuples")
78
-
79
- if contexts and len(contexts) != len(datapoints):
80
- raise ValueError("The number of contexts and datapoints must be equal")
81
-
82
- if(explanations and len(explanations) != len(datapoints)):
83
- raise ValueError("The number of explanations and datapoints must be equal, the index must align, but can be padded with None")
84
-
85
- logger.debug("Creating classification rapids")
86
- rapids: list[Rapid] = []
87
- for i in range(len(datapoints)):
88
- rapids.append(
89
- self.rapid.classification_rapid(
90
- instruction=instruction,
91
- answer_options=answer_options,
92
- datapoint=datapoints[i],
93
- truths=truths[i],
94
- data_type=data_type,
95
- metadata=[PromptMetadata(contexts[i])] if contexts else [],
96
- explanation=explanations[i] if explanations != None else None
107
+ with tracer.start_as_current_span(
108
+ "ValidationSetManager.create_classification_set"
109
+ ):
110
+ if not datapoints:
111
+ raise ValueError("Datapoints cannot be empty")
112
+
113
+ if len(datapoints) != len(truths):
114
+ raise ValueError("The number of datapoints and truths must be equal")
115
+
116
+ if not all([isinstance(truth, (list, tuple)) for truth in truths]):
117
+ raise ValueError("Truths must be a list of lists or tuples")
118
+
119
+ if contexts and len(contexts) != len(datapoints):
120
+ raise ValueError("The number of contexts and datapoints must be equal")
121
+
122
+ if media_contexts and len(media_contexts) != len(datapoints):
123
+ raise ValueError(
124
+ "The number of media contexts and datapoints must be equal"
125
+ )
126
+
127
+ if explanations and len(explanations) != len(datapoints):
128
+ raise ValueError(
129
+ "The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
130
+ )
131
+
132
+ logger.debug("Creating classification rapids")
133
+ rapids: list[Rapid] = []
134
+ for i in range(len(datapoints)):
135
+ rapids.append(
136
+ self.rapid.classification_rapid(
137
+ instruction=instruction,
138
+ answer_options=answer_options,
139
+ datapoint=datapoints[i],
140
+ truths=truths[i],
141
+ data_type=data_type,
142
+ context=contexts[i] if contexts != None else None,
143
+ media_context=(
144
+ media_contexts[i] if media_contexts != None else None
145
+ ),
146
+ explanation=explanations[i] if explanations != None else None,
147
+ )
97
148
  )
98
- )
99
149
 
100
- logger.debug("Submitting classification rapids")
101
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
150
+ logger.debug("Submitting classification rapids")
151
+ return self._submit(name=name, rapids=rapids, dimensions=dimensions)
102
152
 
103
- def create_compare_set(self,
153
+ def create_compare_set(
154
+ self,
104
155
  name: str,
105
156
  instruction: str,
106
157
  datapoints: list[list[str]],
107
158
  truths: list[str],
108
- data_type: str = RapidataDataTypes.MEDIA,
159
+ data_type: Literal["media", "text"] = "media",
109
160
  contexts: list[str] | None = None,
161
+ media_contexts: list[str] | None = None,
110
162
  explanation: list[str | None] | None = None,
111
163
  dimensions: list[str] = [],
112
164
  ) -> RapidataValidationSet:
@@ -120,12 +172,15 @@ class ValidationSetManager:
120
172
  instruction: "Which image has a cat?"
121
173
  datapoints = [["image1.jpg", "image2.jpg"], ["image3.jpg", "image4.jpg"]]
122
174
  truths: ["image1.jpg", "image4.jpg"] -> first comparison image1.jpg has a cat, second comparison image4.jpg has a cat
123
- datapoints (list[list[str]]): The compare datapoints to create the validation set with.
175
+ datapoints (list[list[str]]): The compare datapoints to create the validation set with.
124
176
  Outer list is for each comparison, inner list the two images/texts that will be compared.
125
- data_type (str, optional): The type of data. Defaults to RapidataDataTypes.MEDIA. Other option: RapidataDataTypes.TEXT ("text").
177
+ data_type (str, optional): The type of data. Defaults to "media" (any form of image, video or audio). Other option: "text".
126
178
  contexts (list[str], optional): The contexts for each datapoint. Defaults to None.\n
127
179
  If provided has to be the same length as datapoints and will be shown in addition to the instruction and truth. (Therefore will be different for each datapoint)
128
180
  Will be match up with the datapoints using the list index.
181
+ media_contexts (list[str], optional): The list of media contexts i.e. links to the images / videos for the comparison. Defaults to None.\n
182
+ If provided has to be the same length as datapoints and will be shown in addition to the instruction. (Therefore will be different for each datapoint)
183
+ Will be matched up with the datapoints using the list index.
129
184
  explanation (list[str | None], optional): The explanations for each datapoint. Will be given to the annotators in case the answer is wrong. Defaults to None.
130
185
  dimensions (list[str], optional): The dimensions to add to the validation set accross which users will be tracked. Defaults to [] which is the default dimension.
131
186
 
@@ -137,37 +192,51 @@ class ValidationSetManager:
137
192
  ```
138
193
  This would mean: first comparison image1.jpg has a cat, second comparison image4.jpg has a cat
139
194
  """
140
-
141
- if len(datapoints) != len(truths):
142
- raise ValueError("The number of datapoints and truths must be equal")
143
-
144
- if not all([isinstance(truth, str) for truth in truths]):
145
- raise ValueError("Truths must be a list of strings")
146
-
147
- if contexts and len(contexts) != len(datapoints):
148
- raise ValueError("The number of contexts and datapoints must be equal")
149
-
150
- if(explanation and len(explanation) != len(datapoints)):
151
- raise ValueError("The number of explanations and datapoints must be equal, the index must align, but can be padded with None")
152
-
153
- logger.debug("Creating comparison rapids")
154
- rapids: list[Rapid] = []
155
- for i in range(len(datapoints)):
156
- rapids.append(
157
- self.rapid.compare_rapid(
158
- instruction=instruction,
159
- truth=truths[i],
160
- datapoint=datapoints[i],
161
- data_type=data_type,
162
- metadata=[PromptMetadata(contexts[i])] if contexts else [],
163
- explanation=explanation[i] if explanation != None else None
195
+ with tracer.start_as_current_span("ValidationSetManager.create_compare_set"):
196
+ if not datapoints:
197
+ raise ValueError("Datapoints cannot be empty")
198
+
199
+ if len(datapoints) != len(truths):
200
+ raise ValueError("The number of datapoints and truths must be equal")
201
+
202
+ if not all([isinstance(truth, str) for truth in truths]):
203
+ raise ValueError("Truths must be a list of strings")
204
+
205
+ if contexts and len(contexts) != len(datapoints):
206
+ raise ValueError("The number of contexts and datapoints must be equal")
207
+
208
+ if media_contexts and len(media_contexts) != len(datapoints):
209
+ raise ValueError(
210
+ "The number of media contexts and datapoints must be equal"
164
211
  )
165
- )
166
-
167
- logger.debug("Submitting comparison rapids")
168
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
169
-
170
- def create_select_words_set(self,
212
+
213
+ if explanation and len(explanation) != len(datapoints):
214
+ raise ValueError(
215
+ "The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
216
+ )
217
+
218
+ logger.debug("Creating comparison rapids")
219
+ rapids: list[Rapid] = []
220
+ for i in range(len(datapoints)):
221
+ rapids.append(
222
+ self.rapid.compare_rapid(
223
+ instruction=instruction,
224
+ truth=truths[i],
225
+ datapoint=datapoints[i],
226
+ data_type=data_type,
227
+ context=contexts[i] if contexts != None else None,
228
+ media_context=(
229
+ media_contexts[i] if media_contexts != None else None
230
+ ),
231
+ explanation=explanation[i] if explanation != None else None,
232
+ )
233
+ )
234
+
235
+ logger.debug("Submitting comparison rapids")
236
+ return self._submit(name=name, rapids=rapids, dimensions=dimensions)
237
+
238
+ def create_select_words_set(
239
+ self,
171
240
  name: str,
172
241
  instruction: str,
173
242
  truths: list[list[int]],
@@ -203,41 +272,52 @@ class ValidationSetManager:
203
272
  truths: [[0, 1], [2]]
204
273
  ```
205
274
  This would mean: first datapoint the correct words are "this" and "example", second datapoint is "with"
206
- """
207
-
208
- if not all([isinstance(truth, (list, tuple)) for truth in truths]):
209
- raise ValueError("Truths must be a list of lists or tuples")
210
-
211
- if len(datapoints) != len(truths) or len(datapoints) != len(sentences):
212
- raise ValueError("The number of datapoints, truths, and sentences must be equal")
213
-
214
- if(explanation and len(explanation) != len(datapoints)):
215
- raise ValueError("The number of explanations and datapoints must be equal, the index must align, but can be padded with None")
216
-
217
- logger.debug("Creating select words rapids")
218
- rapids: list[Rapid] = []
219
- for i in range(len(datapoints)):
220
- rapids.append(
221
- self.rapid.select_words_rapid(
222
- instruction=instruction,
223
- truths=truths[i],
224
- datapoint=datapoints[i],
225
- sentence=sentences[i],
226
- required_precision=required_precision,
227
- required_completeness=required_completeness,
228
- explanation=explanation[i] if explanation != None else None
275
+ """
276
+ with tracer.start_as_current_span(
277
+ "ValidationSetManager.create_select_words_set"
278
+ ):
279
+ if not datapoints:
280
+ raise ValueError("Datapoints cannot be empty")
281
+
282
+ if not all([isinstance(truth, (list, tuple)) for truth in truths]):
283
+ raise ValueError("Truths must be a list of lists or tuples")
284
+
285
+ if len(datapoints) != len(truths) or len(datapoints) != len(sentences):
286
+ raise ValueError(
287
+ "The number of datapoints, truths, and sentences must be equal"
288
+ )
289
+
290
+ if explanation and len(explanation) != len(datapoints):
291
+ raise ValueError(
292
+ "The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
293
+ )
294
+
295
+ logger.debug("Creating select words rapids")
296
+ rapids: list[Rapid] = []
297
+ for i in range(len(datapoints)):
298
+ rapids.append(
299
+ self.rapid.select_words_rapid(
300
+ instruction=instruction,
301
+ truths=truths[i],
302
+ datapoint=datapoints[i],
303
+ sentence=sentences[i],
304
+ required_precision=required_precision,
305
+ required_completeness=required_completeness,
306
+ explanation=explanation[i] if explanation != None else None,
307
+ )
229
308
  )
230
- )
231
309
 
232
- logger.debug("Submitting select words rapids")
233
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
310
+ logger.debug("Submitting select words rapids")
311
+ return self._submit(name=name, rapids=rapids, dimensions=dimensions)
234
312
 
235
- def create_locate_set(self,
313
+ def create_locate_set(
314
+ self,
236
315
  name: str,
237
316
  instruction: str,
238
317
  truths: list[list[Box]],
239
318
  datapoints: list[str],
240
319
  contexts: list[str] | None = None,
320
+ media_contexts: list[str] | None = None,
241
321
  explanation: list[str | None] | None = None,
242
322
  dimensions: list[str] = [],
243
323
  ) -> RapidataValidationSet:
@@ -252,6 +332,9 @@ class ValidationSetManager:
252
332
  truths: [[Box(0, 0, 100, 100)], [Box(50, 50, 150, 150)]] -> first datapoint the object is in the top left corner, second datapoint the object is in the center
253
333
  datapoints (list[str]): The datapoints that will be used for validation.
254
334
  contexts (list[str], optional): The contexts for each datapoint. Defaults to None.
335
+ media_contexts (list[str], optional): The list of media contexts i.e. links to the images / videos for the comparison. Defaults to None.\n
336
+ If provided has to be the same length as datapoints and will be shown in addition to the instruction. (Therefore will be different for each datapoint)
337
+ Will be matched up with the datapoints using the list index.
255
338
  explanation (list[str | None], optional): The explanations for each datapoint. Will be given to the annotators in case the answer is wrong. Defaults to None.
256
339
  dimensions (list[str], optional): The dimensions to add to the validation set accross which users will be tracked. Defaults to [] which is the default dimension.
257
340
 
@@ -262,43 +345,57 @@ class ValidationSetManager:
262
345
  ```
263
346
  This would mean: first datapoint the object is in the top left corner, second datapoint the object is in the center
264
347
  """
265
-
266
- if len(datapoints) != len(truths):
267
- raise ValueError("The number of datapoints and truths must be equal")
268
-
269
- if not all([isinstance(truth, (list, tuple)) for truth in truths]):
270
- raise ValueError("Truths must be a list of lists or tuples")
271
-
272
- if contexts and len(contexts) != len(datapoints):
273
- raise ValueError("The number of contexts and datapoints must be equal")
274
-
275
- if(explanation and len(explanation) != len(datapoints)):
276
- raise ValueError("The number of explanations and datapoints must be equal, the index must align, but can be padded with None")
277
-
278
- logger.debug("Creating locate rapids")
279
- rapids = []
280
- rapids: list[Rapid] = []
281
- for i in range(len(datapoints)):
282
- rapids.append(
283
- self.rapid.locate_rapid(
284
- instruction=instruction,
285
- truths=truths[i],
286
- datapoint=datapoints[i],
287
- metadata=[PromptMetadata(contexts[i])] if contexts else [],
288
- explanation=explanation[i] if explanation != None else None
348
+ with tracer.start_as_current_span("ValidationSetManager.create_locate_set"):
349
+ if not datapoints:
350
+ raise ValueError("Datapoints cannot be empty")
289
351
 
352
+ if len(datapoints) != len(truths):
353
+ raise ValueError("The number of datapoints and truths must be equal")
354
+
355
+ if not all([isinstance(truth, (list, tuple)) for truth in truths]):
356
+ raise ValueError("Truths must be a list of lists or tuples")
357
+
358
+ if contexts and len(contexts) != len(datapoints):
359
+ raise ValueError("The number of contexts and datapoints must be equal")
360
+
361
+ if media_contexts and len(media_contexts) != len(datapoints):
362
+ raise ValueError(
363
+ "The number of media contexts and datapoints must be equal"
290
364
  )
291
- )
292
-
293
- logger.debug("Submitting locate rapids")
294
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
295
-
296
- def create_draw_set(self,
365
+
366
+ if explanation and len(explanation) != len(datapoints):
367
+ raise ValueError(
368
+ "The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
369
+ )
370
+
371
+ logger.debug("Creating locate rapids")
372
+ rapids = []
373
+ rapids: list[Rapid] = []
374
+ for i in range(len(datapoints)):
375
+ rapids.append(
376
+ self.rapid.locate_rapid(
377
+ instruction=instruction,
378
+ truths=truths[i],
379
+ datapoint=datapoints[i],
380
+ context=contexts[i] if contexts != None else None,
381
+ media_context=(
382
+ media_contexts[i] if media_contexts != None else None
383
+ ),
384
+ explanation=explanation[i] if explanation != None else None,
385
+ )
386
+ )
387
+
388
+ logger.debug("Submitting locate rapids")
389
+ return self._submit(name=name, rapids=rapids, dimensions=dimensions)
390
+
391
+ def create_draw_set(
392
+ self,
297
393
  name: str,
298
394
  instruction: str,
299
395
  truths: list[list[Box]],
300
396
  datapoints: list[str],
301
397
  contexts: list[str] | None = None,
398
+ media_contexts: list[str] | None = None,
302
399
  explanation: list[str | None] | None = None,
303
400
  dimensions: list[str] = [],
304
401
  ) -> RapidataValidationSet:
@@ -313,6 +410,9 @@ class ValidationSetManager:
313
410
  truths: [[Box(0, 0, 100, 100)], [Box(50, 50, 150, 150)]] -> first datapoint the object is in the top left corner, second datapoint the object is in the center
314
411
  datapoints (list[str]): The datapoints that will be used for validation.
315
412
  contexts (list[str], optional): The contexts for each datapoint. Defaults to None.
413
+ media_contexts (list[str], optional): The list of media contexts i.e. links to the images / videos for the comparison. Defaults to None.\n
414
+ If provided has to be the same length as datapoints and will be shown in addition to the instruction. (Therefore will be different for each datapoint)
415
+ Will be matched up with the datapoints using the list index.
316
416
  explanation (list[str | None], optional): The explanations for each datapoint. Will be given to the annotators in case the answer is wrong. Defaults to None.
317
417
  dimensions (list[str], optional): The dimensions to add to the validation set accross which users will be tracked. Defaults to [] which is the default dimension.
318
418
 
@@ -323,42 +423,56 @@ class ValidationSetManager:
323
423
  ```
324
424
  This would mean: first datapoint the object is in the top left corner, second datapoint the object is in the center
325
425
  """
326
-
327
- if len(datapoints) != len(truths):
328
- raise ValueError("The number of datapoints and truths must be equal")
329
-
330
- if not all([isinstance(truth, (list, tuple)) for truth in truths]):
331
- raise ValueError("Truths must be a list of lists or tuples")
332
-
333
- if contexts and len(contexts) != len(datapoints):
334
- raise ValueError("The number of contexts and datapoints must be equal")
335
-
336
- if(explanation and len(explanation) != len(datapoints)):
337
- raise ValueError("The number of explanations and datapoints must be equal, the index must align, but can be padded with None")
338
-
339
- logger.debug("Creating draw rapids")
340
- rapids: list[Rapid] = []
341
- for i in range(len(datapoints)):
342
- rapids.append(
343
- self.rapid.draw_rapid(
344
- instruction=instruction,
345
- truths=truths[i],
346
- datapoint=datapoints[i],
347
- metadata=[PromptMetadata(contexts[i])] if contexts else [],
348
- explanation=explanation[i] if explanation != None else None
426
+ with tracer.start_as_current_span("ValidationSetManager.create_draw_set"):
427
+ if not datapoints:
428
+ raise ValueError("Datapoints cannot be empty")
429
+
430
+ if len(datapoints) != len(truths):
431
+ raise ValueError("The number of datapoints and truths must be equal")
432
+
433
+ if not all([isinstance(truth, (list, tuple)) for truth in truths]):
434
+ raise ValueError("Truths must be a list of lists or tuples")
435
+
436
+ if contexts and len(contexts) != len(datapoints):
437
+ raise ValueError("The number of contexts and datapoints must be equal")
349
438
 
439
+ if media_contexts and len(media_contexts) != len(datapoints):
440
+ raise ValueError(
441
+ "The number of media contexts and datapoints must be equal"
442
+ )
443
+
444
+ if explanation and len(explanation) != len(datapoints):
445
+ raise ValueError(
446
+ "The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
350
447
  )
351
- )
352
448
 
353
- logger.debug("Submitting draw rapids")
354
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
449
+ logger.debug("Creating draw rapids")
450
+ rapids: list[Rapid] = []
451
+ for i in range(len(datapoints)):
452
+ rapids.append(
453
+ self.rapid.draw_rapid(
454
+ instruction=instruction,
455
+ truths=truths[i],
456
+ datapoint=datapoints[i],
457
+ context=contexts[i] if contexts != None else None,
458
+ media_context=(
459
+ media_contexts[i] if media_contexts != None else None
460
+ ),
461
+ explanation=explanation[i] if explanation != None else None,
462
+ )
463
+ )
464
+
465
+ logger.debug("Submitting draw rapids")
466
+ return self._submit(name=name, rapids=rapids, dimensions=dimensions)
355
467
 
356
- def create_timestamp_set(self,
468
+ def create_timestamp_set(
469
+ self,
357
470
  name: str,
358
471
  instruction: str,
359
472
  truths: list[list[tuple[int, int]]],
360
473
  datapoints: list[str],
361
474
  contexts: list[str] | None = None,
475
+ media_contexts: list[str] | None = None,
362
476
  explanation: list[str | None] | None = None,
363
477
  dimensions: list[str] = [],
364
478
  ) -> RapidataValidationSet:
@@ -367,13 +481,16 @@ class ValidationSetManager:
367
481
  Args:
368
482
  name (str): The name of the validation set. (will not be shown to the labeler)
369
483
  instruction (str): The instruction to show to the labeler.
370
- truths (list[list[tuple[int, int]]]): The truths for each datapoint defined as start and endpoint based on miliseconds.
484
+ truths (list[list[tuple[int, int]]]): The truths for each datapoint defined as start and endpoint based on miliseconds.
371
485
  Outer list is for each datapoint, inner list is for each truth.\n
372
486
  example:
373
487
  datapoints: ["datapoint1", "datapoint2"]
374
488
  truths: [[(0, 10)], [(20, 30)]] -> first datapoint the correct interval is from 0 to 10, second datapoint the correct interval is from 20 to 30
375
489
  datapoints (list[str]): The datapoints that will be used for validation.
376
490
  contexts (list[str], optional): The contexts for each datapoint. Defaults to None.
491
+ media_contexts (list[str], optional): The list of media contexts i.e. links to the images / videos for the comparison. Defaults to None.\n
492
+ If provided has to be the same length as datapoints and will be shown in addition to the instruction. (Therefore will be different for each datapoint)
493
+ Will be matched up with the datapoints using the list index.
377
494
  explanation (list[str | None], optional): The explanations for each datapoint. Will be given to the annotators in case the answer is wrong. Defaults to None.
378
495
  dimensions (list[str], optional): The dimensions to add to the validation set accross which users will be tracked. Defaults to [] which is the default dimension.
379
496
 
@@ -384,36 +501,50 @@ class ValidationSetManager:
384
501
  ```
385
502
  This would mean: first datapoint the correct interval is from 0 to 10, second datapoint the correct interval is from 20 to 30
386
503
  """
387
-
388
- if len(datapoints) != len(truths):
389
- raise ValueError("The number of datapoints and truths must be equal")
390
-
391
- if not all([isinstance(truth, (list, tuple)) for truth in truths]):
392
- raise ValueError("Truths must be a list of lists or tuples")
393
-
394
- if contexts and len(contexts) != len(datapoints):
395
- raise ValueError("The number of contexts and datapoints must be equal")
396
-
397
- if(explanation and len(explanation) != len(datapoints)):
398
- raise ValueError("The number of explanations and datapoints must be equal, the index must align, but can be padded with None")
399
-
400
- logger.debug("Creating timestamp rapids")
401
- rapids: list[Rapid] = []
402
- for i in range(len(datapoints)):
403
- rapids.append(
404
- self.rapid.timestamp_rapid(
405
- instruction=instruction,
406
- truths=truths[i],
407
- datapoint=datapoints[i],
408
- metadata=[PromptMetadata(contexts[i])] if contexts else [],
409
- explanation=explanation[i] if explanation != None else None
504
+ with tracer.start_as_current_span("ValidationSetManager.create_timestamp_set"):
505
+ if not datapoints:
506
+ raise ValueError("Datapoints cannot be empty")
507
+
508
+ if len(datapoints) != len(truths):
509
+ raise ValueError("The number of datapoints and truths must be equal")
510
+
511
+ if not all([isinstance(truth, (list, tuple)) for truth in truths]):
512
+ raise ValueError("Truths must be a list of lists or tuples")
513
+
514
+ if contexts and len(contexts) != len(datapoints):
515
+ raise ValueError("The number of contexts and datapoints must be equal")
516
+
517
+ if media_contexts and len(media_contexts) != len(datapoints):
518
+ raise ValueError(
519
+ "The number of media contexts and datapoints must be equal"
410
520
  )
411
- )
412
521
 
413
- logger.debug("Submitting timestamp rapids")
414
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
415
-
416
- def create_mixed_set(self,
522
+ if explanation and len(explanation) != len(datapoints):
523
+ raise ValueError(
524
+ "The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
525
+ )
526
+
527
+ logger.debug("Creating timestamp rapids")
528
+ rapids: list[Rapid] = []
529
+ for i in range(len(datapoints)):
530
+ rapids.append(
531
+ self.rapid.timestamp_rapid(
532
+ instruction=instruction,
533
+ truths=truths[i],
534
+ datapoint=datapoints[i],
535
+ context=contexts[i] if contexts != None else None,
536
+ media_context=(
537
+ media_contexts[i] if media_contexts != None else None
538
+ ),
539
+ explanation=explanation[i] if explanation != None else None,
540
+ )
541
+ )
542
+
543
+ logger.debug("Submitting timestamp rapids")
544
+ return self._submit(name=name, rapids=rapids, dimensions=dimensions)
545
+
546
+ def create_mixed_set(
547
+ self,
417
548
  name: str,
418
549
  rapids: list[Rapid],
419
550
  dimensions: list[str] = [],
@@ -425,20 +556,23 @@ class ValidationSetManager:
425
556
  rapids (list[Rapid]): The list of rapids to add to the validation set.
426
557
  dimensions (list[str], optional): The dimensions to add to the validation set accross which users will be tracked. Defaults to [] which is the default dimension.
427
558
  """
559
+ with tracer.start_as_current_span("ValidationSetManager.create_mixed_set"):
560
+ if not rapids:
561
+ raise ValueError("Rapids cannot be empty")
428
562
 
429
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
563
+ return self._submit(name=name, rapids=rapids, dimensions=dimensions)
430
564
 
431
- def _submit(self, name: str, rapids: list[Rapid], dimensions: list[str] | None) -> RapidataValidationSet:
565
+ def _submit(
566
+ self, name: str, rapids: list[Rapid], dimensions: list[str]
567
+ ) -> RapidataValidationSet:
432
568
  logger.debug("Creating validation set")
433
569
  validation_set_id = (
434
- self.__openapi_service.validation_api.validation_set_post(
435
- create_validation_set_model=CreateValidationSetModel(
436
- name=name
437
- )
570
+ self._openapi_service.validation_api.validation_set_post(
571
+ create_validation_set_model=CreateValidationSetModel(name=name)
438
572
  )
439
573
  ).validation_set_id
440
574
 
441
- logger.debug(f"Validation set created with ID: {validation_set_id}")
575
+ logger.debug("Validation set created with ID: %s", validation_set_id)
442
576
 
443
577
  if validation_set_id is None:
444
578
  raise ValueError("Failed to create validation set")
@@ -448,23 +582,159 @@ class ValidationSetManager:
448
582
  validation_set = RapidataValidationSet(
449
583
  name=name,
450
584
  validation_set_id=validation_set_id,
451
- openapi_service=self.__openapi_service
585
+ dimensions=dimensions,
586
+ openapi_service=self._openapi_service,
452
587
  )
588
+ with tracer.start_as_current_span("Adding rapids to validation set"):
589
+ logger.debug("Adding rapids to validation set")
590
+ failed_rapids = []
591
+
592
+ progress_bar = tqdm(
593
+ total=len(rapids),
594
+ desc="Uploading validation tasks",
595
+ disable=rapidata_config.logging.silent_mode,
596
+ )
597
+
598
+ for rapid in rapids:
599
+ try:
600
+ validation_set.add_rapid(rapid)
601
+ progress_bar.update(1)
602
+ except Exception as e:
603
+ logger.error(
604
+ "Failed to add rapid %s to validation set.\nError: %s",
605
+ rapid.asset,
606
+ str(e),
607
+ )
608
+ failed_rapids.append(rapid.asset)
609
+
610
+ progress_bar.close()
611
+
612
+ if failed_rapids:
613
+ logger.error(
614
+ "Failed to add %s datapoints to validation set: %s",
615
+ len(failed_rapids),
616
+ failed_rapids,
617
+ )
618
+ raise RuntimeError(
619
+ f"Failed to add {len(failed_rapids)} datapoints to validation set: {failed_rapids}"
620
+ )
453
621
 
454
- logger.debug("Adding rapids to validation set")
455
- for rapid in tqdm(rapids, desc="Uploading validation tasks", disable=RapidataOutputManager.silent_mode):
456
- validation_set.add_rapid(rapid)
457
-
458
622
  managed_print()
459
- managed_print(f"Validation set '{name}' created with ID {validation_set_id}\n",
460
- f"Now viewable under: https://app.{self.__openapi_service.environment}/validation-set/detail/{validation_set_id}",
461
- sep="")
462
-
623
+ managed_print(
624
+ f"Validation set '{name}' created with ID {validation_set_id}\n",
625
+ f"Now viewable under: {validation_set.validation_set_details_page}",
626
+ sep="",
627
+ )
628
+
463
629
  if dimensions:
464
630
  validation_set.update_dimensions(dimensions)
465
-
631
+
466
632
  return validation_set
467
-
633
+
634
+ def _create_order_validation_set(
635
+ self,
636
+ workflow: Workflow,
637
+ name: str,
638
+ datapoints: list[Datapoint],
639
+ required_amount: int,
640
+ settings: Sequence[RapidataSetting] | None = None,
641
+ dimensions: list[str] = [],
642
+ ) -> RapidataValidationSet:
643
+ with tracer.start_as_current_span(
644
+ "ValidationSetManager._create_order_validation_set"
645
+ ):
646
+ rapids: list[Rapid] = []
647
+ for datapoint in workflow._format_datapoints(datapoints):
648
+ rapids.append(
649
+ Rapid(
650
+ asset=datapoint.asset,
651
+ payload=workflow._to_payload(datapoint),
652
+ context=datapoint.context,
653
+ media_context=datapoint.media_context,
654
+ data_type=datapoint.data_type,
655
+ settings=settings,
656
+ )
657
+ )
658
+ validation_set = RapidataValidationSet(
659
+ validation_set_id=self._openapi_service.validation_api.validation_set_post(
660
+ create_validation_set_model=CreateValidationSetModel(name=name)
661
+ ).validation_set_id,
662
+ name=name,
663
+ dimensions=dimensions,
664
+ openapi_service=self._openapi_service,
665
+ )
666
+
667
+ managed_print()
668
+ managed_print(
669
+ Fore.YELLOW
670
+ + f"A new validation set was created. Please annotate {required_amount} datapoint{('s' if required_amount != 1 else '')} before the order can run."
671
+ + Fore.RESET
672
+ )
673
+
674
+ link = f"https://app.{self._openapi_service.environment}/validation-set/detail/{validation_set.id}/annotate?maxSize={len(datapoints)}&required={required_amount}"
675
+ could_open_browser = webbrowser.open(link)
676
+ if not could_open_browser:
677
+ encoded_url = urllib.parse.quote(link, safe="%/:=&?~#+!$,;'@()*[]")
678
+ managed_print(
679
+ Fore.RED
680
+ + f"Please open this URL in your browser to annotate the validation set: '{encoded_url}'"
681
+ + Fore.RESET
682
+ )
683
+ else:
684
+ managed_print(
685
+ Fore.YELLOW
686
+ + f"Please annotate the validation set. \n'{link}'"
687
+ + Fore.RESET
688
+ )
689
+
690
+ with tracer.start_as_current_span("Annotating validation set"):
691
+ progress_bar = tqdm(
692
+ total=required_amount,
693
+ desc="Annotate the validation set",
694
+ disable=rapidata_config.logging.silent_mode,
695
+ )
696
+
697
+ rapid_index = 0
698
+ while True:
699
+ total_rapids, labeled_rapids = (
700
+ self._get_total_and_labeled_rapids_count(validation_set.id)
701
+ )
702
+
703
+ progress_bar.n = labeled_rapids
704
+ progress_bar.refresh()
705
+
706
+ if labeled_rapids >= required_amount:
707
+ break
708
+
709
+ if total_rapids < required_amount and rapid_index >= len(rapids):
710
+ managed_print(
711
+ Fore.RED
712
+ + f"""Warning: An order can only be started with at least {required_amount} annotated validation tasks. But only {labeled_rapids}/{required_amount} were annotated.
713
+ Either add clearer examples or turn off the 'autoValidationSetCreation' with:
714
+
715
+ from rapidata import rapidata_config
716
+ rapidata_config.order.autoValidationSetCreation = False"""
717
+ + Fore.RESET
718
+ )
719
+ raise RuntimeError(
720
+ f"Not enough rapids annotated. Required: {required_amount}, Annotated: {labeled_rapids}"
721
+ )
722
+
723
+ if (
724
+ rapid_index < len(rapids)
725
+ and total_rapids - labeled_rapids <= required_amount * 2
726
+ ):
727
+ validation_set.add_rapid(rapids[rapid_index])
728
+ rapid_index += 1
729
+
730
+ time.sleep(2)
731
+
732
+ progress_bar.close()
733
+
734
+ validation_set.update_dimensions(dimensions)
735
+
736
+ return validation_set
737
+
468
738
  def get_validation_set_by_id(self, validation_set_id: str) -> RapidataValidationSet:
469
739
  """Get a validation set by ID.
470
740
 
@@ -474,29 +744,71 @@ class ValidationSetManager:
474
744
  Returns:
475
745
  RapidataValidationSet: The ValidationSet instance.
476
746
  """
477
-
478
- validation_set = self.__openapi_service.validation_api.validation_set_validation_set_id_get(validation_set_id=validation_set_id)
479
-
480
- return RapidataValidationSet(validation_set_id, str(validation_set.name), self.__openapi_service)
481
747
 
748
+ with tracer.start_as_current_span(
749
+ "ValidationSetManager.get_validation_set_by_id"
750
+ ):
751
+ logger.debug("Getting validation set by ID: %s", validation_set_id)
752
+ validation_set = self._openapi_service.validation_api.validation_set_validation_set_id_get(
753
+ validation_set_id=validation_set_id
754
+ )
755
+
756
+ return RapidataValidationSet(
757
+ validation_set_id,
758
+ str(validation_set.name),
759
+ validation_set.dimensions,
760
+ self._openapi_service,
761
+ )
482
762
 
483
- def find_validation_sets(self, name: str = "", amount: int = 1) -> list[RapidataValidationSet]:
763
+ def find_validation_sets(
764
+ self, name: str = "", amount: int = 10
765
+ ) -> list[RapidataValidationSet]:
484
766
  """Find validation sets by name.
485
767
 
486
768
  Args:
487
769
  name (str, optional): The name to search for. Defaults to "" to match with any set.
488
- amount (int, optional): The amount of validation sets to return. Defaults to 1.
770
+ amount (int, optional): The amount of validation sets to return. Defaults to 10.
489
771
 
490
772
  Returns:
491
773
  list[RapidataValidationSet]: The list of validation sets.
492
774
  """
775
+ with tracer.start_as_current_span("ValidationSetManager.find_validation_sets"):
776
+ logger.debug(
777
+ "Finding validation sets with name: %s and amount: %s", name, amount
778
+ )
779
+
780
+ validation_page_result = (
781
+ self._openapi_service.validation_api.validation_sets_get(
782
+ QueryModel(
783
+ page=PageInfo(index=1, size=amount),
784
+ filter=RootFilter(
785
+ filters=[
786
+ Filter(
787
+ field="Name",
788
+ operator=FilterOperator.CONTAINS,
789
+ value=name,
790
+ )
791
+ ]
792
+ ),
793
+ sortCriteria=[
794
+ SortCriterion(
795
+ direction=SortDirection.DESC, propertyName="CreatedAt"
796
+ )
797
+ ],
798
+ )
799
+ )
800
+ )
801
+
802
+ logger.debug("Validation sets found: %s", validation_page_result.items)
493
803
 
494
- validation_page_result = self.__openapi_service.validation_api.validation_sets_get(QueryModel(
495
- page=PageInfo(index=1, size=amount),
496
- filter=RootFilter(filters=[Filter(field="Name", operator="Contains", value=name)]),
497
- sortCriteria=[SortCriterion(direction="Desc", propertyName="CreatedAt")]
498
- ))
804
+ validation_sets = [
805
+ self.get_validation_set_by_id(str(validation_set.id))
806
+ for validation_set in validation_page_result.items
807
+ ]
808
+ return validation_sets
499
809
 
500
- validation_sets = [self.get_validation_set_by_id(str(validation_set.id)) for validation_set in validation_page_result.items]
501
- return validation_sets
810
+ def __str__(self) -> str:
811
+ return "ValidationSetManager"
502
812
 
813
+ def __repr__(self) -> str:
814
+ return self.__str__()