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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (761) hide show
  1. rapidata/__init__.py +11 -10
  2. rapidata/api_client/__init__.py +83 -355
  3. rapidata/api_client/api/__init__.py +8 -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 +222 -444
  8. rapidata/api_client/api/client_api.py +38 -33
  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 -530
  13. rapidata/api_client/api/dataset_api.py +228 -3469
  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 +356 -312
  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 +510 -3659
  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 -332
  35. rapidata/api_client/models/ab_test_selection_a_inner.py +1 -1
  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 +7 -10
  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/boosting_profile.py +89 -0
  69. rapidata/api_client/models/box_shape.py +4 -33
  70. rapidata/api_client/models/campaign_filter.py +98 -0
  71. rapidata/api_client/models/campaign_query_result.py +15 -13
  72. rapidata/api_client/models/campaign_status.py +2 -2
  73. rapidata/api_client/models/change_boost_model.py +89 -0
  74. rapidata/api_client/models/classification_metadata.py +12 -1
  75. rapidata/api_client/models/classify_payload.py +14 -15
  76. rapidata/api_client/models/classify_payload_category.py +89 -0
  77. rapidata/api_client/models/client_model.py +25 -35
  78. rapidata/api_client/models/clients_query_result.py +5 -5
  79. rapidata/api_client/models/clone_order_model.py +6 -8
  80. rapidata/api_client/models/clone_order_result.py +9 -4
  81. rapidata/api_client/models/compare_rapid_blueprint.py +5 -3
  82. rapidata/api_client/models/compare_rapid_blueprint1.py +96 -0
  83. rapidata/api_client/models/compare_workflow_config.py +34 -23
  84. rapidata/api_client/models/compare_workflow_config_context_asset.py +174 -0
  85. rapidata/api_client/models/compare_workflow_config_metadata_value.py +31 -17
  86. rapidata/api_client/models/compare_workflow_config_model.py +15 -5
  87. rapidata/api_client/models/compare_workflow_model.py +34 -6
  88. rapidata/api_client/models/compare_workflow_model1.py +20 -9
  89. rapidata/api_client/models/compare_workflow_model_context_asset.py +160 -0
  90. rapidata/api_client/models/compare_workflow_model_metadata_inner.py +154 -0
  91. rapidata/api_client/models/compare_workflow_model_pair_maker_config.py +1 -1
  92. rapidata/api_client/models/comparison_operator.py +2 -2
  93. rapidata/api_client/models/conditional_validation_selection.py +8 -11
  94. rapidata/api_client/models/conditional_validation_selection_validation_chance.py +103 -0
  95. rapidata/api_client/models/confidence_interval.py +89 -0
  96. rapidata/api_client/models/count_metadata.py +12 -1
  97. rapidata/api_client/models/country_filter.py +98 -0
  98. rapidata/api_client/models/create_audience_request.py +99 -0
  99. rapidata/api_client/models/create_audience_result.py +87 -0
  100. rapidata/api_client/models/create_benchmark_model.py +87 -0
  101. rapidata/api_client/models/create_benchmark_participant_model.py +87 -0
  102. rapidata/api_client/models/create_benchmark_participant_result.py +89 -0
  103. rapidata/api_client/models/create_benchmark_prompt_result.py +87 -0
  104. rapidata/api_client/models/create_benchmark_result.py +87 -0
  105. rapidata/api_client/models/create_bridge_token_result.py +2 -2
  106. rapidata/api_client/models/create_client_model.py +6 -13
  107. rapidata/api_client/models/create_complex_order_model.py +9 -9
  108. rapidata/api_client/models/create_complex_order_result.py +6 -4
  109. rapidata/api_client/models/create_customer_client_result.py +2 -2
  110. rapidata/api_client/models/create_datapoint_from_files_model.py +3 -3
  111. rapidata/api_client/models/create_datapoint_from_text_sources_model.py +3 -3
  112. rapidata/api_client/models/create_datapoint_from_urls_model.py +3 -3
  113. rapidata/api_client/models/create_datapoint_model.py +134 -0
  114. rapidata/api_client/models/create_datapoint_model_asset.py +154 -0
  115. rapidata/api_client/models/create_datapoint_model_context_asset.py +160 -0
  116. rapidata/api_client/models/create_datapoint_model_metadata_inner.py +154 -0
  117. rapidata/api_client/models/create_datapoint_result.py +6 -18
  118. rapidata/api_client/models/create_demographic_rapid_model.py +45 -7
  119. rapidata/api_client/models/create_demographic_rapid_model_asset.py +160 -0
  120. rapidata/api_client/models/create_demographic_rapid_model_context_asset.py +160 -0
  121. rapidata/api_client/models/create_demographic_rapid_model_new.py +119 -0
  122. rapidata/api_client/models/create_empty_validation_set_result.py +2 -2
  123. rapidata/api_client/models/create_leaderboard_model.py +59 -10
  124. rapidata/api_client/models/create_leaderboard_result.py +17 -5
  125. rapidata/api_client/models/create_order_model.py +30 -101
  126. rapidata/api_client/models/create_order_model_referee.py +12 -12
  127. rapidata/api_client/models/create_order_model_workflow.py +35 -21
  128. rapidata/api_client/models/create_order_result.py +6 -4
  129. rapidata/api_client/models/create_rapid_result.py +2 -2
  130. rapidata/api_client/models/create_sample_model.py +93 -0
  131. rapidata/api_client/models/create_sample_model_asset.py +154 -0
  132. rapidata/api_client/models/create_sample_model_obsolete.py +87 -0
  133. rapidata/api_client/models/create_simple_pipeline_model_pipeline_steps_inner.py +8 -22
  134. rapidata/api_client/models/create_unsupported_order_model.py +6 -6
  135. rapidata/api_client/models/create_validation_set_model.py +5 -5
  136. rapidata/api_client/models/datapoint_model.py +3 -3
  137. rapidata/api_client/models/datapoint_state.py +2 -2
  138. rapidata/api_client/models/demographic_filter.py +100 -0
  139. rapidata/api_client/models/dynamic_client_registration_request.py +21 -36
  140. rapidata/api_client/models/early_stopping_referee_model.py +3 -3
  141. rapidata/api_client/models/effort_capped_selection.py +2 -11
  142. rapidata/api_client/models/elo_config.py +2 -2
  143. rapidata/api_client/models/elo_config_model.py +6 -6
  144. rapidata/api_client/models/entity_tag_header_value.py +93 -0
  145. rapidata/api_client/models/evaluation_workflow_config.py +13 -3
  146. rapidata/api_client/models/evaluation_workflow_model.py +16 -6
  147. rapidata/api_client/models/existing_asset_input.py +120 -0
  148. rapidata/api_client/models/existing_asset_input_metadata_value.py +126 -0
  149. rapidata/api_client/models/feature_flag.py +2 -2
  150. rapidata/api_client/models/feature_flag_model.py +6 -6
  151. rapidata/api_client/models/feedback_model.py +7 -7
  152. rapidata/api_client/models/file_asset.py +3 -5
  153. rapidata/api_client/models/file_asset_input.py +104 -0
  154. rapidata/api_client/models/file_asset_input1.py +104 -0
  155. rapidata/api_client/models/file_asset_input1_file.py +168 -0
  156. rapidata/api_client/models/file_asset_input2.py +104 -0
  157. rapidata/api_client/models/file_asset_input3.py +104 -0
  158. rapidata/api_client/models/file_asset_input_file.py +168 -0
  159. rapidata/api_client/models/file_asset_metadata_value.py +252 -0
  160. rapidata/api_client/models/file_asset_model_metadata_value.py +25 -81
  161. rapidata/api_client/models/file_stream_result.py +122 -0
  162. rapidata/api_client/models/file_type.py +39 -0
  163. rapidata/api_client/models/file_type_metadata.py +110 -0
  164. rapidata/api_client/models/file_type_metadata_model.py +97 -0
  165. rapidata/api_client/models/filter.py +7 -25
  166. rapidata/api_client/models/filter_operator.py +3 -2
  167. rapidata/api_client/models/fork_benchmark_result.py +87 -0
  168. rapidata/api_client/models/form_file_wrapper.py +135 -0
  169. rapidata/api_client/models/free_text_payload.py +10 -3
  170. rapidata/api_client/models/free_text_rapid_blueprint.py +10 -3
  171. rapidata/api_client/models/gender_user_filter_model.py +2 -2
  172. rapidata/api_client/models/gender_user_filter_model_gender.py +38 -0
  173. rapidata/api_client/models/get_asset_metadata_result.py +100 -0
  174. rapidata/api_client/models/get_audience_by_id_result.py +111 -0
  175. rapidata/api_client/models/get_available_validation_sets_result.py +2 -2
  176. rapidata/api_client/models/get_benchmark_by_id_query.py +96 -0
  177. rapidata/api_client/models/get_benchmark_by_id_query_result.py +94 -0
  178. rapidata/api_client/models/get_benchmark_by_id_query_result_paged_result.py +105 -0
  179. rapidata/api_client/models/get_benchmark_by_id_result.py +96 -0
  180. rapidata/api_client/models/get_boost_result.py +97 -0
  181. rapidata/api_client/models/get_boost_result_boost_mode.py +37 -0
  182. rapidata/api_client/models/get_boost_result_boost_status.py +39 -0
  183. rapidata/api_client/models/get_compare_ab_summary_result.py +5 -5
  184. rapidata/api_client/models/get_compare_workflow_results_model.py +7 -7
  185. rapidata/api_client/models/get_compare_workflow_results_result.py +5 -5
  186. rapidata/api_client/models/get_datapoint_by_id_result.py +10 -21
  187. rapidata/api_client/models/get_datapoint_by_id_result_asset.py +170 -0
  188. rapidata/api_client/models/get_dataset_by_id_result.py +2 -2
  189. rapidata/api_client/models/get_dataset_progress_result.py +2 -2
  190. rapidata/api_client/models/get_evaluation_workflow_results_model.py +119 -0
  191. rapidata/api_client/models/get_failed_datapoints_result.py +5 -5
  192. rapidata/api_client/models/get_failed_datapoints_result_datapoint.py +100 -0
  193. rapidata/api_client/models/get_file_metadata_result.py +100 -0
  194. rapidata/api_client/models/get_grouped_ranking_workflow_results_model.py +106 -0
  195. rapidata/api_client/models/get_grouped_ranking_workflow_results_result.py +97 -0
  196. rapidata/api_client/models/get_grouped_ranking_workflow_results_result_paged_result.py +105 -0
  197. rapidata/api_client/models/get_leaderboard_by_id_result.py +50 -6
  198. rapidata/api_client/models/get_order_by_id_result.py +12 -5
  199. rapidata/api_client/models/get_participant_by_id_result.py +9 -20
  200. rapidata/api_client/models/get_pipeline_by_id_result.py +5 -5
  201. rapidata/api_client/models/get_public_orders_result.py +2 -2
  202. rapidata/api_client/models/get_public_responses_result.py +95 -0
  203. rapidata/api_client/models/get_public_responses_result_response.py +112 -0
  204. rapidata/api_client/models/get_rapid_responses_result.py +6 -12
  205. rapidata/api_client/models/get_recommended_validation_set_result.py +95 -0
  206. rapidata/api_client/models/get_responses_for_rapid_result.py +106 -0
  207. rapidata/api_client/models/get_responses_for_rapid_result_response.py +103 -0
  208. rapidata/api_client/models/get_responses_for_rapid_result_response_result.py +266 -0
  209. rapidata/api_client/models/get_responses_result.py +5 -5
  210. rapidata/api_client/models/get_responses_result_response.py +103 -0
  211. rapidata/api_client/models/get_sample_by_id_result.py +125 -0
  212. rapidata/api_client/models/get_simple_workflow_results_model.py +20 -15
  213. rapidata/api_client/models/get_standing_by_id_result.py +96 -0
  214. rapidata/api_client/models/get_validation_rapids_result.py +32 -41
  215. rapidata/api_client/models/get_validation_set_by_id_result.py +10 -4
  216. rapidata/api_client/models/get_workflow_by_id_result.py +5 -5
  217. rapidata/api_client/models/get_workflow_by_id_result_workflow.py +23 -9
  218. rapidata/api_client/models/get_workflow_progress_result.py +5 -11
  219. rapidata/api_client/models/get_workflow_results_result.py +34 -23
  220. rapidata/api_client/models/get_workflow_results_result_response.py +103 -0
  221. rapidata/api_client/models/google_one_tap_login_model.py +4 -4
  222. rapidata/api_client/models/grouped_ranking_workflow_config.py +155 -0
  223. rapidata/api_client/models/grouped_ranking_workflow_config_context_assets_value.py +170 -0
  224. rapidata/api_client/models/grouped_ranking_workflow_model.py +147 -0
  225. rapidata/api_client/models/grouped_ranking_workflow_model1.py +121 -0
  226. rapidata/api_client/models/i_artifact_model.py +182 -0
  227. rapidata/api_client/models/i_artifact_model_campaign_artifact_model.py +98 -0
  228. rapidata/api_client/models/i_artifact_model_dataset_artifact_model.py +98 -0
  229. rapidata/api_client/models/i_artifact_model_file_artifact_model.py +98 -0
  230. rapidata/api_client/models/i_artifact_model_workflow_artifact_model.py +98 -0
  231. rapidata/api_client/models/i_artifact_model_workflow_config_artifact_model.py +102 -0
  232. rapidata/api_client/models/i_asset.py +170 -0
  233. rapidata/api_client/models/i_asset_file_asset.py +111 -0
  234. rapidata/api_client/models/i_asset_input.py +156 -0
  235. rapidata/api_client/models/i_asset_input_existing_asset_input.py +118 -0
  236. rapidata/api_client/models/i_asset_input_multi_asset_input.py +128 -0
  237. rapidata/api_client/models/i_asset_input_text_asset_input.py +118 -0
  238. rapidata/api_client/models/i_asset_model.py +170 -0
  239. rapidata/api_client/models/i_asset_model_file_asset_model.py +113 -0
  240. rapidata/api_client/models/i_asset_model_multi_asset_model.py +123 -0
  241. rapidata/api_client/models/i_asset_model_null_asset_model.py +111 -0
  242. rapidata/api_client/models/i_asset_model_text_asset_model.py +113 -0
  243. rapidata/api_client/models/i_asset_multi_asset.py +121 -0
  244. rapidata/api_client/models/i_asset_null_asset.py +109 -0
  245. rapidata/api_client/models/i_asset_text_asset.py +111 -0
  246. rapidata/api_client/models/i_campaign_filter.py +282 -0
  247. rapidata/api_client/models/i_campaign_filter_and_filter.py +117 -0
  248. rapidata/api_client/models/i_campaign_filter_campaign_filter.py +98 -0
  249. rapidata/api_client/models/i_campaign_filter_country_filter.py +98 -0
  250. rapidata/api_client/models/i_campaign_filter_demographic_filter.py +100 -0
  251. rapidata/api_client/models/i_campaign_filter_language_filter.py +98 -0
  252. rapidata/api_client/models/i_campaign_filter_new_user_filter.py +96 -0
  253. rapidata/api_client/models/i_campaign_filter_not_filter.py +113 -0
  254. rapidata/api_client/models/i_campaign_filter_or_filter.py +117 -0
  255. rapidata/api_client/models/i_campaign_filter_response_count_filter.py +103 -0
  256. rapidata/api_client/models/i_campaign_filter_user_action_restriction_filter.py +106 -0
  257. rapidata/api_client/models/i_campaign_filter_user_score_filter.py +102 -0
  258. rapidata/api_client/models/i_campaign_filter_user_state_filter.py +106 -0
  259. rapidata/api_client/models/i_dataset_metadata_input.py +154 -0
  260. rapidata/api_client/models/i_dataset_metadata_input_prompt_asset_metadata_input.py +100 -0
  261. rapidata/api_client/models/i_dataset_metadata_input_prompt_metadata_input.py +96 -0
  262. rapidata/api_client/models/i_dataset_metadata_input_transcription_metadata_input.py +96 -0
  263. rapidata/api_client/models/i_dataset_model.py +126 -0
  264. rapidata/api_client/models/i_dataset_model_clone_dataset_model.py +98 -0
  265. rapidata/api_client/models/i_metadata.py +252 -0
  266. rapidata/api_client/models/i_metadata_classification_metadata.py +109 -0
  267. rapidata/api_client/models/i_metadata_count_metadata.py +109 -0
  268. rapidata/api_client/models/i_metadata_file_type_metadata.py +110 -0
  269. rapidata/api_client/models/i_metadata_image_dimension_metadata.py +111 -0
  270. rapidata/api_client/models/i_metadata_input.py +126 -0
  271. rapidata/api_client/models/i_metadata_input_text_metadata_input.py +111 -0
  272. rapidata/api_client/models/i_metadata_location_metadata.py +111 -0
  273. rapidata/api_client/models/i_metadata_model.py +252 -0
  274. rapidata/api_client/models/i_metadata_model_classification_metadata_model.py +96 -0
  275. rapidata/api_client/models/i_metadata_model_count_metadata_model.py +96 -0
  276. rapidata/api_client/models/i_metadata_model_file_type_metadata_model.py +97 -0
  277. rapidata/api_client/models/i_metadata_model_image_dimension_metadata_model.py +98 -0
  278. rapidata/api_client/models/i_metadata_model_location_metadata_model.py +98 -0
  279. rapidata/api_client/models/i_metadata_model_original_filename_metadata_model.py +96 -0
  280. rapidata/api_client/models/i_metadata_model_source_url_metadata_model.py +96 -0
  281. rapidata/api_client/models/i_metadata_model_streams_metadata_model.py +100 -0
  282. rapidata/api_client/models/i_metadata_model_text_metadata_model.py +101 -0
  283. rapidata/api_client/models/i_metadata_model_video_duration_metadata_model.py +97 -0
  284. rapidata/api_client/models/i_metadata_original_filename_metadata.py +109 -0
  285. rapidata/api_client/models/i_metadata_source_url_metadata.py +109 -0
  286. rapidata/api_client/models/i_metadata_streams_metadata.py +113 -0
  287. rapidata/api_client/models/i_metadata_text_metadata.py +114 -0
  288. rapidata/api_client/models/i_metadata_video_duration_metadata.py +110 -0
  289. rapidata/api_client/models/i_order_workflow_model.py +168 -0
  290. rapidata/api_client/models/i_order_workflow_model_compare_workflow_model.py +146 -0
  291. rapidata/api_client/models/i_order_workflow_model_evaluation_workflow_model.py +108 -0
  292. rapidata/api_client/models/i_order_workflow_model_grouped_ranking_workflow_model.py +147 -0
  293. rapidata/api_client/models/i_order_workflow_model_simple_workflow_model.py +110 -0
  294. rapidata/api_client/models/i_pair_maker_config.py +126 -0
  295. rapidata/api_client/models/i_pair_maker_config_model.py +126 -0
  296. rapidata/api_client/models/i_pair_maker_config_model_online_pair_maker_config_model.py +98 -0
  297. rapidata/api_client/models/i_pair_maker_config_online_pair_maker_config.py +98 -0
  298. rapidata/api_client/models/i_pair_maker_information.py +126 -0
  299. rapidata/api_client/models/i_pair_maker_information_online_pair_maker_information.py +100 -0
  300. rapidata/api_client/models/i_pipeline_artifact_model.py +126 -0
  301. rapidata/api_client/models/i_pipeline_artifact_model_create_dataset_artifact_model.py +102 -0
  302. rapidata/api_client/models/i_pipeline_model.py +126 -0
  303. rapidata/api_client/models/i_pipeline_model_create_simple_pipeline_model.py +116 -0
  304. rapidata/api_client/models/i_pipeline_step_model.py +168 -0
  305. rapidata/api_client/models/i_pipeline_step_model_dataset_evaluation_step_model.py +102 -0
  306. rapidata/api_client/models/i_pipeline_step_model_send_completion_mail_step_model.py +98 -0
  307. rapidata/api_client/models/i_pipeline_step_model_workflow_aggregation_step_model.py +103 -0
  308. rapidata/api_client/models/i_pipeline_step_model_workflow_labeling_step_model.py +96 -0
  309. rapidata/api_client/models/i_rapid_blueprint.py +252 -0
  310. rapidata/api_client/models/i_rapid_blueprint_attach_category_rapid_blueprint.py +108 -0
  311. rapidata/api_client/models/i_rapid_blueprint_bounding_box_rapid_blueprint.py +96 -0
  312. rapidata/api_client/models/i_rapid_blueprint_compare_rapid_blueprint.py +98 -0
  313. rapidata/api_client/models/i_rapid_blueprint_free_text_rapid_blueprint.py +103 -0
  314. rapidata/api_client/models/i_rapid_blueprint_line_rapid_blueprint.py +96 -0
  315. rapidata/api_client/models/i_rapid_blueprint_locate_rapid_blueprint.py +96 -0
  316. rapidata/api_client/models/i_rapid_blueprint_named_entity_rapid_blueprint.py +98 -0
  317. rapidata/api_client/models/i_rapid_blueprint_polygon_rapid_blueprint.py +96 -0
  318. rapidata/api_client/models/i_rapid_blueprint_scrub_rapid_blueprint.py +96 -0
  319. rapidata/api_client/models/i_rapid_blueprint_transcription_rapid_blueprint.py +96 -0
  320. rapidata/api_client/models/i_rapid_payload.py +252 -0
  321. rapidata/api_client/models/i_rapid_payload_bounding_box_payload.py +96 -0
  322. rapidata/api_client/models/i_rapid_payload_classify_payload.py +106 -0
  323. rapidata/api_client/models/i_rapid_payload_compare_payload.py +96 -0
  324. rapidata/api_client/models/i_rapid_payload_free_text_payload.py +103 -0
  325. rapidata/api_client/models/i_rapid_payload_line_payload.py +96 -0
  326. rapidata/api_client/models/i_rapid_payload_locate_payload.py +96 -0
  327. rapidata/api_client/models/i_rapid_payload_named_entity_payload.py +98 -0
  328. rapidata/api_client/models/i_rapid_payload_polygon_payload.py +96 -0
  329. rapidata/api_client/models/i_rapid_payload_scrub_payload.py +96 -0
  330. rapidata/api_client/models/i_rapid_payload_transcription_payload.py +106 -0
  331. rapidata/api_client/models/i_rapid_result.py +266 -0
  332. rapidata/api_client/models/i_rapid_result_attach_category_result.py +98 -0
  333. rapidata/api_client/models/i_rapid_result_bounding_box_result.py +106 -0
  334. rapidata/api_client/models/i_rapid_result_compare_result.py +98 -0
  335. rapidata/api_client/models/i_rapid_result_free_text_result.py +98 -0
  336. rapidata/api_client/models/i_rapid_result_line_result.py +106 -0
  337. rapidata/api_client/models/i_rapid_result_locate_result.py +106 -0
  338. rapidata/api_client/models/i_rapid_result_named_entity_result.py +106 -0
  339. rapidata/api_client/models/i_rapid_result_polygon_result.py +106 -0
  340. rapidata/api_client/models/i_rapid_result_scrub_result.py +98 -0
  341. rapidata/api_client/models/i_rapid_result_skip_result.py +96 -0
  342. rapidata/api_client/models/i_rapid_result_transcription_result.py +106 -0
  343. rapidata/api_client/models/i_referee_config.py +154 -0
  344. rapidata/api_client/models/i_referee_config_naive_referee_config.py +96 -0
  345. rapidata/api_client/models/i_referee_config_never_ending_referee_config.py +94 -0
  346. rapidata/api_client/models/i_referee_config_probabilistic_attach_category_referee_config.py +98 -0
  347. rapidata/api_client/models/i_referee_info.py +154 -0
  348. rapidata/api_client/models/i_referee_info_naive_referee_info.py +96 -0
  349. rapidata/api_client/models/i_referee_info_never_ending_referee_info.py +94 -0
  350. rapidata/api_client/models/i_referee_info_probabilistic_attach_category_referee_info.py +98 -0
  351. rapidata/api_client/models/i_referee_model.py +140 -0
  352. rapidata/api_client/models/i_referee_model_early_stopping_referee_model.py +98 -0
  353. rapidata/api_client/models/i_referee_model_naive_referee_model.py +96 -0
  354. rapidata/api_client/models/i_selection.py +240 -0
  355. rapidata/api_client/models/i_selection_ab_test_selection.py +122 -0
  356. rapidata/api_client/models/i_selection_capped_selection.py +108 -0
  357. rapidata/api_client/models/i_selection_conditional_validation_selection.py +110 -0
  358. rapidata/api_client/models/i_selection_demographic_selection.py +98 -0
  359. rapidata/api_client/models/i_selection_effort_capped_selection.py +101 -0
  360. rapidata/api_client/models/i_selection_labeling_selection.py +103 -0
  361. rapidata/api_client/models/i_selection_shuffling_selection.py +106 -0
  362. rapidata/api_client/models/i_selection_static_selection.py +96 -0
  363. rapidata/api_client/models/i_selection_validation_selection.py +98 -0
  364. rapidata/api_client/models/i_user_filter_model.py +282 -0
  365. rapidata/api_client/models/i_user_filter_model_age_user_filter_model.py +104 -0
  366. rapidata/api_client/models/i_user_filter_model_and_user_filter_model.py +106 -0
  367. rapidata/api_client/models/i_user_filter_model_campaign_user_filter_model.py +96 -0
  368. rapidata/api_client/models/i_user_filter_model_country_user_filter_model.py +96 -0
  369. rapidata/api_client/models/i_user_filter_model_custom_user_filter_model.py +98 -0
  370. rapidata/api_client/models/i_user_filter_model_gender_user_filter_model.py +104 -0
  371. rapidata/api_client/models/i_user_filter_model_language_user_filter_model.py +96 -0
  372. rapidata/api_client/models/i_user_filter_model_new_user_filter_model.py +94 -0
  373. rapidata/api_client/models/i_user_filter_model_not_user_filter_model.py +102 -0
  374. rapidata/api_client/models/i_user_filter_model_or_user_filter_model.py +106 -0
  375. rapidata/api_client/models/i_user_filter_model_response_count_user_filter_model.py +101 -0
  376. rapidata/api_client/models/i_user_filter_model_user_score_user_filter_model.py +105 -0
  377. rapidata/api_client/models/i_validation_metadata_input.py +140 -0
  378. rapidata/api_client/models/i_validation_metadata_input_prompt_asset_metadata_input.py +100 -0
  379. rapidata/api_client/models/i_validation_metadata_input_prompt_metadata_input.py +96 -0
  380. rapidata/api_client/models/i_validation_truth.py +280 -0
  381. rapidata/api_client/models/i_validation_truth_attach_category_truth.py +96 -0
  382. rapidata/api_client/models/i_validation_truth_bounding_box_truth.py +102 -0
  383. rapidata/api_client/models/i_validation_truth_compare_truth.py +96 -0
  384. rapidata/api_client/models/i_validation_truth_empty_validation_truth.py +94 -0
  385. rapidata/api_client/models/i_validation_truth_line_truth.py +94 -0
  386. rapidata/api_client/models/i_validation_truth_locate_box_truth.py +104 -0
  387. rapidata/api_client/models/i_validation_truth_multi_compare_truth.py +96 -0
  388. rapidata/api_client/models/i_validation_truth_named_entity_truth.py +104 -0
  389. rapidata/api_client/models/i_validation_truth_polygon_truth.py +94 -0
  390. rapidata/api_client/models/i_validation_truth_scrub_truth.py +104 -0
  391. rapidata/api_client/models/i_validation_truth_skip_truth.py +94 -0
  392. rapidata/api_client/models/i_validation_truth_transcription_truth.py +115 -0
  393. rapidata/api_client/models/i_workflow_config.py +168 -0
  394. rapidata/api_client/models/i_workflow_config_compare_workflow_config.py +142 -0
  395. rapidata/api_client/models/i_workflow_config_evaluation_workflow_config.py +114 -0
  396. rapidata/api_client/models/i_workflow_config_grouped_ranking_workflow_config.py +155 -0
  397. rapidata/api_client/models/i_workflow_config_simple_workflow_config.py +116 -0
  398. rapidata/api_client/models/i_workflow_model.py +168 -0
  399. rapidata/api_client/models/i_workflow_model_compare_workflow_model.py +145 -0
  400. rapidata/api_client/models/i_workflow_model_evaluation_workflow_model.py +115 -0
  401. rapidata/api_client/models/i_workflow_model_grouped_ranking_workflow_model.py +121 -0
  402. rapidata/api_client/models/i_workflow_model_simple_workflow_model.py +119 -0
  403. rapidata/api_client/models/image_dimension_metadata.py +12 -1
  404. rapidata/api_client/models/inquire_file_metadata_result.py +100 -0
  405. rapidata/api_client/models/inspect_report_result.py +2 -2
  406. rapidata/api_client/models/json_web_key.py +2 -36
  407. rapidata/api_client/models/json_web_key_set.py +2 -22
  408. rapidata/api_client/models/labeling_selection.py +11 -13
  409. rapidata/api_client/models/language_filter.py +98 -0
  410. rapidata/api_client/models/leaderboard_query_result.py +46 -4
  411. rapidata/api_client/models/leaderboards_query_result.py +135 -0
  412. rapidata/api_client/models/line_result.py +3 -3
  413. rapidata/api_client/models/line_result_line.py +97 -0
  414. rapidata/api_client/models/line_result_line_point.py +89 -0
  415. rapidata/api_client/models/local_file_wrapper.py +120 -0
  416. rapidata/api_client/models/locate_coordinate.py +4 -13
  417. rapidata/api_client/models/location_metadata.py +12 -1
  418. rapidata/api_client/models/logic_operator.py +2 -2
  419. rapidata/api_client/models/metadata_i_order_metadata_input.py +154 -0
  420. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_asset_metadata_input.py +100 -0
  421. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_metadata_input.py +96 -0
  422. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_transcription_metadata_input.py +96 -0
  423. rapidata/api_client/models/metadata_prompt_asset_metadata_input.py +100 -0
  424. rapidata/api_client/models/metadata_prompt_metadata_input.py +96 -0
  425. rapidata/api_client/models/metadata_transcription_metadata_input.py +96 -0
  426. rapidata/api_client/models/multi_asset.py +6 -6
  427. rapidata/api_client/models/multi_asset_assets_inner.py +170 -0
  428. rapidata/api_client/models/multi_asset_input.py +130 -0
  429. rapidata/api_client/models/multi_asset_input1.py +110 -0
  430. rapidata/api_client/models/multi_asset_input1_assets_inner.py +198 -0
  431. rapidata/api_client/models/multi_asset_input2.py +110 -0
  432. rapidata/api_client/models/multi_asset_input3.py +110 -0
  433. rapidata/api_client/models/multi_asset_input3_assets_inner.py +198 -0
  434. rapidata/api_client/models/multi_asset_input_assets_inner.py +156 -0
  435. rapidata/api_client/models/multi_asset_model.py +3 -3
  436. rapidata/api_client/models/naive_referee_model.py +2 -2
  437. rapidata/api_client/models/named_classification.py +4 -13
  438. rapidata/api_client/models/new_user_filter.py +96 -0
  439. rapidata/api_client/models/newsletter_model.py +6 -6
  440. rapidata/api_client/models/not_available_yet_result.py +4 -13
  441. rapidata/api_client/models/not_filter.py +117 -0
  442. rapidata/api_client/models/not_user_filter_model.py +3 -3
  443. rapidata/api_client/models/null_asset.py +3 -5
  444. rapidata/api_client/models/online_pair_maker_config_model.py +3 -3
  445. rapidata/api_client/models/or_filter.py +121 -0
  446. rapidata/api_client/models/or_user_filter_model.py +3 -3
  447. rapidata/api_client/models/order_model.py +15 -14
  448. rapidata/api_client/models/order_state.py +2 -2
  449. rapidata/api_client/models/original_filename_metadata.py +12 -1
  450. rapidata/api_client/models/page_info.py +2 -7
  451. rapidata/api_client/models/paged_result_aggregated_orders_model.py +105 -0
  452. rapidata/api_client/models/paged_result_benchmark_query_result.py +105 -0
  453. rapidata/api_client/models/paged_result_campaign_query_result.py +105 -0
  454. rapidata/api_client/models/paged_result_clients_query_result.py +105 -0
  455. rapidata/api_client/models/paged_result_datapoint_model.py +105 -0
  456. rapidata/api_client/models/paged_result_get_compare_workflow_results_result.py +105 -0
  457. rapidata/api_client/models/paged_result_get_grouped_ranking_workflow_results_result.py +105 -0
  458. rapidata/api_client/models/paged_result_get_validation_rapids_result.py +105 -0
  459. rapidata/api_client/models/paged_result_get_workflow_results_result.py +105 -0
  460. rapidata/api_client/models/paged_result_i_workflow_model.py +105 -0
  461. rapidata/api_client/models/paged_result_leaderboard_query_result.py +105 -0
  462. rapidata/api_client/models/paged_result_leaderboards_query_result.py +105 -0
  463. rapidata/api_client/models/paged_result_of_aggregated_orders_model.py +103 -0
  464. rapidata/api_client/models/paged_result_of_benchmark_query_result.py +103 -0
  465. rapidata/api_client/models/paged_result_of_campaign_query_result.py +103 -0
  466. rapidata/api_client/models/paged_result_of_clients_query_result.py +103 -0
  467. rapidata/api_client/models/paged_result_of_get_compare_workflow_results_result.py +103 -0
  468. rapidata/api_client/models/paged_result_of_get_grouped_ranking_workflow_results_result.py +103 -0
  469. rapidata/api_client/models/paged_result_of_get_validation_rapids_result.py +103 -0
  470. rapidata/api_client/models/paged_result_of_get_workflow_results_result.py +103 -0
  471. rapidata/api_client/models/paged_result_of_i_workflow_model.py +103 -0
  472. rapidata/api_client/models/paged_result_of_leaderboards_query_result.py +103 -0
  473. rapidata/api_client/models/paged_result_of_order_model.py +103 -0
  474. rapidata/api_client/models/paged_result_of_participant_by_benchmark.py +103 -0
  475. rapidata/api_client/models/paged_result_of_prompt_by_benchmark_result.py +103 -0
  476. rapidata/api_client/models/paged_result_of_query_audiences_result.py +103 -0
  477. rapidata/api_client/models/paged_result_of_query_datapoints_by_dataset_id_result.py +103 -0
  478. rapidata/api_client/models/paged_result_of_query_validation_rapid_eligibility_result.py +103 -0
  479. rapidata/api_client/models/paged_result_of_rapid_model.py +103 -0
  480. rapidata/api_client/models/paged_result_of_runs_by_leaderboard_result.py +103 -0
  481. rapidata/api_client/models/paged_result_of_sample_by_identifier.py +103 -0
  482. rapidata/api_client/models/paged_result_of_sample_by_participant.py +103 -0
  483. rapidata/api_client/models/paged_result_of_standing_by_leaderboard.py +103 -0
  484. rapidata/api_client/models/paged_result_of_validation_set_model.py +103 -0
  485. rapidata/api_client/models/paged_result_order_model.py +105 -0
  486. rapidata/api_client/models/paged_result_participant_by_benchmark.py +105 -0
  487. rapidata/api_client/models/paged_result_potential_validation_rapid.py +105 -0
  488. rapidata/api_client/models/paged_result_prompt_by_benchmark_result.py +105 -0
  489. rapidata/api_client/models/paged_result_query_audiences_result.py +105 -0
  490. rapidata/api_client/models/paged_result_query_datapoints_by_dataset_id_result.py +105 -0
  491. rapidata/api_client/models/paged_result_query_validation_rapid_eligibility_result.py +105 -0
  492. rapidata/api_client/models/paged_result_rapid_model.py +105 -0
  493. rapidata/api_client/models/paged_result_runs_by_leaderboard_result.py +105 -0
  494. rapidata/api_client/models/paged_result_sample_by_identifier.py +105 -0
  495. rapidata/api_client/models/paged_result_sample_by_participant.py +105 -0
  496. rapidata/api_client/models/paged_result_standing_by_leaderboard.py +105 -0
  497. rapidata/api_client/models/paged_result_validation_set_model.py +105 -0
  498. rapidata/api_client/models/participant_by_benchmark.py +94 -0
  499. rapidata/api_client/models/participant_by_benchmark_paged_result.py +105 -0
  500. rapidata/api_client/models/participant_by_leaderboard.py +19 -8
  501. rapidata/api_client/models/participant_status.py +4 -5
  502. rapidata/api_client/models/pipeline_id_workflow_config_put_request.py +140 -0
  503. rapidata/api_client/models/polygon_result.py +3 -3
  504. rapidata/api_client/models/polygon_result_coordinate.py +89 -0
  505. rapidata/api_client/models/polygon_result_shape.py +95 -0
  506. rapidata/api_client/models/potential_validation_rapid.py +103 -0
  507. rapidata/api_client/models/potential_validation_rapid_paged_result.py +105 -0
  508. rapidata/api_client/models/potential_validation_rapid_truth.py +280 -0
  509. rapidata/api_client/models/preliminary_download_model.py +5 -5
  510. rapidata/api_client/models/preview_order_model.py +87 -0
  511. rapidata/api_client/models/problem_details.py +2 -20
  512. rapidata/api_client/models/prompt_asset_metadata_input.py +6 -8
  513. rapidata/api_client/models/prompt_asset_metadata_input_asset.py +154 -0
  514. rapidata/api_client/models/prompt_by_benchmark_result.py +112 -0
  515. rapidata/api_client/models/prompt_by_benchmark_result_paged_result.py +105 -0
  516. rapidata/api_client/models/prompt_metadata.py +12 -1
  517. rapidata/api_client/models/prompt_metadata_input.py +2 -2
  518. rapidata/api_client/models/prompt_type.py +38 -0
  519. rapidata/api_client/models/proxy_file_wrapper.py +129 -0
  520. rapidata/api_client/models/public_order_model.py +2 -2
  521. rapidata/api_client/models/public_rapid_response.py +112 -0
  522. rapidata/api_client/models/query_audiences_result.py +111 -0
  523. rapidata/api_client/models/query_datapoints_by_dataset_id_result.py +95 -0
  524. rapidata/api_client/models/query_model.py +10 -5
  525. rapidata/api_client/models/query_validation_model.py +97 -0
  526. rapidata/api_client/models/query_validation_rapid_eligibility_model_query_validation_model.py +107 -0
  527. rapidata/api_client/models/query_validation_rapid_eligibility_result.py +103 -0
  528. rapidata/api_client/models/query_validation_rapid_eligibility_result_truth.py +280 -0
  529. rapidata/api_client/models/rapid_issue.py +2 -2
  530. rapidata/api_client/models/rapid_modality.py +46 -0
  531. rapidata/api_client/models/rapid_model.py +33 -49
  532. rapidata/api_client/models/rapid_result_model.py +7 -7
  533. rapidata/api_client/models/rapid_skipped_model.py +5 -5
  534. rapidata/api_client/models/rapid_state.py +2 -2
  535. rapidata/api_client/models/read_bridge_token_keys_result.py +10 -24
  536. rapidata/api_client/models/reference_asset_input.py +100 -0
  537. rapidata/api_client/models/report_model.py +9 -15
  538. rapidata/api_client/models/response_count_filter.py +103 -0
  539. rapidata/api_client/models/response_count_user_filter_model.py +2 -8
  540. rapidata/api_client/models/retrieval_mode.py +2 -2
  541. rapidata/api_client/models/root_filter.py +5 -14
  542. rapidata/api_client/models/run_status.py +39 -0
  543. rapidata/api_client/models/runs_by_leaderboard_result.py +104 -0
  544. rapidata/api_client/models/runs_by_leaderboard_result_paged_result.py +105 -0
  545. rapidata/api_client/models/sample_by_identifier.py +125 -0
  546. rapidata/api_client/models/sample_by_identifier_paged_result.py +105 -0
  547. rapidata/api_client/models/sample_by_participant.py +121 -0
  548. rapidata/api_client/models/sample_by_participant_paged_result.py +105 -0
  549. rapidata/api_client/models/scrub_range.py +2 -2
  550. rapidata/api_client/models/send_survey_model.py +87 -0
  551. rapidata/api_client/models/simple_workflow_config.py +15 -7
  552. rapidata/api_client/models/simple_workflow_config_blueprint.py +37 -23
  553. rapidata/api_client/models/simple_workflow_config_model.py +11 -3
  554. rapidata/api_client/models/simple_workflow_model.py +14 -4
  555. rapidata/api_client/models/simple_workflow_model1.py +4 -11
  556. rapidata/api_client/models/simple_workflow_model_blueprint.py +1 -1
  557. rapidata/api_client/models/sort_criterion.py +5 -11
  558. rapidata/api_client/models/sort_direction.py +2 -2
  559. rapidata/api_client/models/source_url_metadata.py +12 -1
  560. rapidata/api_client/models/standing_by_benchmark.py +113 -0
  561. rapidata/api_client/models/standing_by_leaderboard.py +113 -0
  562. rapidata/api_client/models/standing_by_leaderboard_paged_result.py +105 -0
  563. rapidata/api_client/models/standing_status.py +38 -0
  564. rapidata/api_client/models/standings_by_benchmark_result.py +95 -0
  565. rapidata/api_client/models/standings_by_leaderboard_result.py +95 -0
  566. rapidata/api_client/models/start_preliminary_download_result.py +87 -0
  567. rapidata/api_client/models/sticky_state.py +3 -2
  568. rapidata/api_client/models/stream_file_wrapper.py +138 -0
  569. rapidata/api_client/models/streams_metadata.py +12 -1
  570. rapidata/api_client/models/string_segment.py +105 -0
  571. rapidata/api_client/models/submit_coco_model.py +1 -3
  572. rapidata/api_client/models/submit_order_model.py +87 -0
  573. rapidata/api_client/models/submit_participant_result.py +89 -0
  574. rapidata/api_client/models/submit_prompt_model.py +107 -0
  575. rapidata/api_client/models/submit_prompt_model_prompt_asset.py +202 -0
  576. rapidata/api_client/models/tags_by_benchmark_result.py +87 -0
  577. rapidata/api_client/models/text_asset.py +3 -5
  578. rapidata/api_client/models/text_asset_input.py +120 -0
  579. rapidata/api_client/models/text_metadata.py +18 -2
  580. rapidata/api_client/models/text_metadata_input.py +111 -0
  581. rapidata/api_client/models/text_metadata_model.py +7 -2
  582. rapidata/api_client/models/transcription_metadata.py +9 -1
  583. rapidata/api_client/models/transcription_metadata_input.py +2 -2
  584. rapidata/api_client/models/transcription_word.py +2 -2
  585. rapidata/api_client/models/translated_string.py +2 -2
  586. rapidata/api_client/models/unlock_order_result.py +2 -2
  587. rapidata/api_client/models/update_audience_request.py +102 -0
  588. rapidata/api_client/models/update_benchmark_model.py +99 -0
  589. rapidata/api_client/models/update_benchmark_name_model.py +87 -0
  590. rapidata/api_client/models/update_campaign_model.py +11 -11
  591. rapidata/api_client/models/update_dataset_name_model.py +5 -5
  592. rapidata/api_client/models/update_dimensions_model.py +3 -3
  593. rapidata/api_client/models/update_leaderboard_model.py +106 -0
  594. rapidata/api_client/models/update_leaderboard_name_model.py +87 -0
  595. rapidata/api_client/models/update_leaderboard_response_config_model.py +89 -0
  596. rapidata/api_client/models/update_order_name_model.py +5 -5
  597. rapidata/api_client/models/update_participant_model.py +92 -0
  598. rapidata/api_client/models/update_participant_name_model.py +87 -0
  599. rapidata/api_client/models/update_priority_model.py +87 -0
  600. rapidata/api_client/models/update_prompt_tags_model.py +87 -0
  601. rapidata/api_client/models/update_should_alert_model.py +87 -0
  602. rapidata/api_client/models/update_validation_rapid_model.py +28 -10
  603. rapidata/api_client/models/update_validation_rapid_model_context_asset.py +160 -0
  604. rapidata/api_client/models/update_validation_set_model.py +120 -0
  605. rapidata/api_client/models/upload_asset_result.py +102 -0
  606. rapidata/api_client/models/upload_file_from_url_result.py +87 -0
  607. rapidata/api_client/models/upload_file_result.py +87 -0
  608. rapidata/api_client/models/user_action_restriction.py +37 -0
  609. rapidata/api_client/models/user_action_restriction_filter.py +101 -0
  610. rapidata/api_client/models/user_score_filter.py +102 -0
  611. rapidata/api_client/models/user_state.py +38 -0
  612. rapidata/api_client/models/user_state_filter.py +101 -0
  613. rapidata/api_client/models/validation_chance.py +20 -3
  614. rapidata/api_client/models/validation_set_model.py +39 -5
  615. rapidata/api_client/models/validation_set_overview_model.py +2 -2
  616. rapidata/api_client/models/validation_set_zip_post_request_blueprint.py +252 -0
  617. rapidata/api_client/models/video_duration_metadata.py +12 -1
  618. rapidata/api_client/models/workflow_aggregation_step_model.py +3 -12
  619. rapidata/api_client/models/workflow_config_artifact_model_workflow_config.py +23 -9
  620. rapidata/api_client/models/workflow_state.py +2 -2
  621. rapidata/api_client/models/zip_entry_file_wrapper.py +151 -0
  622. rapidata/api_client/rest.py +16 -9
  623. rapidata/api_client_README.md +373 -336
  624. rapidata/rapidata_client/__init__.py +9 -18
  625. rapidata/rapidata_client/api/rapidata_api_client.py +253 -0
  626. rapidata/rapidata_client/benchmark/_detail_mapper.py +32 -0
  627. rapidata/rapidata_client/benchmark/leaderboard/__init__.py +0 -0
  628. rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py +221 -0
  629. rapidata/rapidata_client/benchmark/participant/__init__.py +0 -0
  630. rapidata/rapidata_client/benchmark/participant/_participant.py +147 -0
  631. rapidata/rapidata_client/benchmark/rapidata_benchmark.py +546 -0
  632. rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +219 -0
  633. rapidata/rapidata_client/config/__init__.py +4 -0
  634. rapidata/rapidata_client/config/logger.py +135 -0
  635. rapidata/rapidata_client/config/logging_config.py +55 -0
  636. rapidata/rapidata_client/config/managed_print.py +6 -0
  637. rapidata/rapidata_client/config/order_config.py +14 -0
  638. rapidata/rapidata_client/config/rapidata_config.py +36 -0
  639. rapidata/rapidata_client/config/tracer.py +184 -0
  640. rapidata/rapidata_client/config/upload_config.py +64 -0
  641. rapidata/rapidata_client/datapoints/__init__.py +10 -0
  642. rapidata/rapidata_client/datapoints/_asset_uploader.py +169 -0
  643. rapidata/rapidata_client/datapoints/_datapoint.py +92 -0
  644. rapidata/rapidata_client/datapoints/_datapoint_uploader.py +47 -0
  645. rapidata/rapidata_client/datapoints/_datapoints_validator.py +70 -0
  646. rapidata/rapidata_client/datapoints/assets/__init__.py +0 -0
  647. rapidata/rapidata_client/datapoints/assets/constants.py +7 -0
  648. rapidata/rapidata_client/{metadata → datapoints/metadata}/__init__.py +1 -0
  649. rapidata/rapidata_client/datapoints/metadata/_media_asset_metadata.py +26 -0
  650. rapidata/rapidata_client/datapoints/metadata/_private_text_metadata.py +16 -0
  651. rapidata/rapidata_client/datapoints/metadata/_prompt_identifier_metadata.py +14 -0
  652. rapidata/rapidata_client/datapoints/metadata/_prompt_metadata.py +12 -0
  653. rapidata/rapidata_client/datapoints/metadata/_public_text_metadata.py +16 -0
  654. rapidata/rapidata_client/{metadata → datapoints/metadata}/_select_words_metadata.py +4 -5
  655. rapidata/rapidata_client/demographic/demographic_manager.py +44 -19
  656. rapidata/rapidata_client/exceptions/__init__.py +1 -0
  657. rapidata/rapidata_client/exceptions/failed_upload_exception.py +20 -0
  658. rapidata/rapidata_client/filter/__init__.py +1 -0
  659. rapidata/rapidata_client/filter/_base_filter.py +27 -6
  660. rapidata/rapidata_client/filter/age_filter.py +21 -10
  661. rapidata/rapidata_client/filter/and_filter.py +42 -0
  662. rapidata/rapidata_client/filter/campaign_filter.py +18 -10
  663. rapidata/rapidata_client/filter/country_filter.py +34 -12
  664. rapidata/rapidata_client/filter/custom_filter.py +22 -12
  665. rapidata/rapidata_client/filter/gender_filter.py +22 -10
  666. rapidata/rapidata_client/filter/language_filter.py +39 -21
  667. rapidata/rapidata_client/filter/models/age_group.py +14 -12
  668. rapidata/rapidata_client/filter/models/gender.py +12 -8
  669. rapidata/rapidata_client/filter/new_user_filter.py +11 -4
  670. rapidata/rapidata_client/filter/not_filter.py +23 -11
  671. rapidata/rapidata_client/filter/or_filter.py +23 -11
  672. rapidata/rapidata_client/filter/rapidata_filters.py +19 -13
  673. rapidata/rapidata_client/filter/response_count_filter.py +36 -20
  674. rapidata/rapidata_client/filter/user_score_filter.py +47 -24
  675. rapidata/rapidata_client/order/_rapidata_order_builder.py +289 -154
  676. rapidata/rapidata_client/order/dataset/_rapidata_dataset.py +153 -0
  677. rapidata/rapidata_client/order/rapidata_order.py +316 -163
  678. rapidata/rapidata_client/order/rapidata_order_manager.py +688 -430
  679. rapidata/rapidata_client/order/rapidata_results.py +86 -63
  680. rapidata/rapidata_client/rapidata_client.py +98 -36
  681. rapidata/rapidata_client/referee/__init__.py +1 -1
  682. rapidata/rapidata_client/referee/_base_referee.py +7 -3
  683. rapidata/rapidata_client/referee/_early_stopping_referee.py +20 -11
  684. rapidata/rapidata_client/referee/_naive_referee.py +18 -3
  685. rapidata/rapidata_client/selection/__init__.py +2 -2
  686. rapidata/rapidata_client/selection/_base_selection.py +9 -2
  687. rapidata/rapidata_client/selection/ab_test_selection.py +28 -20
  688. rapidata/rapidata_client/selection/capped_selection.py +23 -16
  689. rapidata/rapidata_client/selection/conditional_validation_selection.py +43 -24
  690. rapidata/rapidata_client/selection/demographic_selection.py +21 -6
  691. rapidata/rapidata_client/selection/effort_selection.py +40 -10
  692. rapidata/rapidata_client/selection/labeling_selection.py +34 -11
  693. rapidata/rapidata_client/selection/{retrieval_modes.py → rapidata_retrieval_modes.py} +7 -4
  694. rapidata/rapidata_client/selection/rapidata_selections.py +17 -8
  695. rapidata/rapidata_client/selection/shuffling_selection.py +21 -13
  696. rapidata/rapidata_client/selection/static_selection.py +19 -8
  697. rapidata/rapidata_client/selection/validation_selection.py +20 -4
  698. rapidata/rapidata_client/settings/__init__.py +2 -0
  699. rapidata/rapidata_client/settings/_rapidata_setting.py +15 -2
  700. rapidata/rapidata_client/settings/alert_on_fast_response.py +8 -5
  701. rapidata/rapidata_client/settings/allow_neither_both.py +3 -0
  702. rapidata/rapidata_client/settings/custom_setting.py +3 -2
  703. rapidata/rapidata_client/settings/free_text_minimum_characters.py +9 -4
  704. rapidata/rapidata_client/settings/models/translation_behaviour_options.py +3 -2
  705. rapidata/rapidata_client/settings/mute_video.py +15 -0
  706. rapidata/rapidata_client/settings/no_shuffle.py +4 -2
  707. rapidata/rapidata_client/settings/play_video_until_the_end.py +7 -4
  708. rapidata/rapidata_client/settings/rapidata_settings.py +16 -3
  709. rapidata/rapidata_client/settings/swap_context_instruction.py +20 -0
  710. rapidata/rapidata_client/settings/translation_behaviour.py +7 -5
  711. rapidata/rapidata_client/validation/rapidata_validation_set.py +106 -12
  712. rapidata/rapidata_client/validation/rapids/_validation_rapid_uploader.py +62 -0
  713. rapidata/rapidata_client/validation/rapids/box.py +37 -12
  714. rapidata/rapidata_client/validation/rapids/rapids.py +28 -103
  715. rapidata/rapidata_client/validation/rapids/rapids_manager.py +315 -208
  716. rapidata/rapidata_client/validation/validation_set_manager.py +511 -274
  717. rapidata/rapidata_client/workflow/__init__.py +2 -1
  718. rapidata/rapidata_client/workflow/_base_workflow.py +25 -7
  719. rapidata/rapidata_client/workflow/_classify_workflow.py +58 -15
  720. rapidata/rapidata_client/workflow/_compare_workflow.py +44 -9
  721. rapidata/rapidata_client/workflow/_draw_workflow.py +40 -10
  722. rapidata/rapidata_client/workflow/_evaluation_workflow.py +28 -7
  723. rapidata/rapidata_client/workflow/_free_text_workflow.py +46 -9
  724. rapidata/rapidata_client/workflow/_locate_workflow.py +40 -10
  725. rapidata/rapidata_client/workflow/_multi_ranking_workflow.py +87 -0
  726. rapidata/rapidata_client/workflow/_ranking_workflow.py +109 -25
  727. rapidata/rapidata_client/workflow/_select_words_workflow.py +51 -11
  728. rapidata/rapidata_client/workflow/_timestamp_workflow.py +42 -11
  729. rapidata/service/__init__.py +0 -1
  730. rapidata/service/credential_manager.py +14 -14
  731. rapidata/service/openapi_service.py +79 -24
  732. rapidata/types/__init__.py +166 -0
  733. rapidata-2.44.3.dist-info/METADATA +32 -0
  734. rapidata-2.44.3.dist-info/RECORD +1014 -0
  735. {rapidata-2.28.2.dist-info → rapidata-2.44.3.dist-info}/WHEEL +1 -1
  736. rapidata/rapidata_client/api/rapidata_exception.py +0 -107
  737. rapidata/rapidata_client/assets/__init__.py +0 -10
  738. rapidata/rapidata_client/assets/_base_asset.py +0 -11
  739. rapidata/rapidata_client/assets/_media_asset.py +0 -306
  740. rapidata/rapidata_client/assets/_multi_asset.py +0 -61
  741. rapidata/rapidata_client/assets/_sessions.py +0 -35
  742. rapidata/rapidata_client/assets/_text_asset.py +0 -34
  743. rapidata/rapidata_client/assets/data_type_enum.py +0 -7
  744. rapidata/rapidata_client/country_codes/__init__.py +0 -1
  745. rapidata/rapidata_client/country_codes/country_codes.py +0 -19
  746. rapidata/rapidata_client/leaderboard/rapidata_leaderboard.py +0 -127
  747. rapidata/rapidata_client/leaderboard/rapidata_leaderboard_manager.py +0 -92
  748. rapidata/rapidata_client/logging/__init__.py +0 -2
  749. rapidata/rapidata_client/logging/logger.py +0 -122
  750. rapidata/rapidata_client/logging/output_manager.py +0 -20
  751. rapidata/rapidata_client/metadata/_media_asset_metadata.py +0 -15
  752. rapidata/rapidata_client/metadata/_private_text_metadata.py +0 -17
  753. rapidata/rapidata_client/metadata/_prompt_metadata.py +0 -18
  754. rapidata/rapidata_client/metadata/_public_text_metadata.py +0 -17
  755. rapidata/rapidata_client/order/_rapidata_dataset.py +0 -461
  756. rapidata/service/local_file_service.py +0 -25
  757. rapidata-2.28.2.dist-info/METADATA +0 -35
  758. rapidata-2.28.2.dist-info/RECORD +0 -574
  759. /rapidata/rapidata_client/{leaderboard → benchmark}/__init__.py +0 -0
  760. /rapidata/rapidata_client/{metadata → datapoints/metadata}/_base_metadata.py +0 -0
  761. {rapidata-2.28.2.dist-info → rapidata-2.44.3.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,219 @@
1
+ from typing import Optional, cast
2
+ from rapidata.rapidata_client.benchmark.rapidata_benchmark import RapidataBenchmark
3
+ from rapidata.api_client.models.create_benchmark_model import CreateBenchmarkModel
4
+ from rapidata.service.openapi_service import OpenAPIService
5
+ from rapidata.api_client.models.query_model import QueryModel
6
+ from rapidata.api_client.models.page_info import PageInfo
7
+ from rapidata.api_client.models.root_filter import RootFilter
8
+ from rapidata.api_client.models.filter import Filter
9
+ from rapidata.api_client.models.sort_criterion import SortCriterion
10
+ from rapidata.api_client.models.sort_direction import SortDirection
11
+ from rapidata.api_client.models.filter_operator import FilterOperator
12
+ from rapidata.rapidata_client.config import logger, tracer
13
+
14
+
15
+ class RapidataBenchmarkManager:
16
+ """
17
+ A manager for benchmarks.
18
+
19
+ Used to create and retrieve benchmarks.
20
+
21
+ A benchmark is a collection of leaderboards.
22
+
23
+ Args:
24
+ openapi_service: The OpenAPIService instance for API interaction.
25
+ """
26
+
27
+ def __init__(self, openapi_service: OpenAPIService):
28
+ self.__openapi_service = openapi_service
29
+
30
+ def create_new_benchmark(
31
+ self,
32
+ name: str,
33
+ identifiers: Optional[list[str]] = None,
34
+ prompts: Optional[list[str | None] | list[str]] = None,
35
+ prompt_assets: Optional[list[str | None] | list[str]] = None,
36
+ tags: Optional[list[list[str] | None] | list[list[str]]] = None,
37
+ ) -> RapidataBenchmark:
38
+ """
39
+ Creates a new benchmark with the given name, identifiers, prompts, and media assets.
40
+ Everything is matched up by the indexes of the lists.
41
+
42
+ prompts or identifiers must be provided, as well as prompts or prompt_assets.
43
+
44
+ Args:
45
+ name: The name of the benchmark.
46
+ identifiers: The identifiers of the prompts/assets/tags that will be used to match up the media. If not provided, it will use the prompts as the identifiers.
47
+ prompts: The prompts that will be registered for the benchmark.
48
+ prompt_assets: The prompt assets that will be registered for the benchmark.
49
+ tags: The tags that will be associated with the prompts to use for filtering the leaderboard results. They will NOT be shown to the users.
50
+
51
+ Example:
52
+ ```python
53
+ name = "Example Benchmark"
54
+ identifiers = ["id1", "id2", "id3"]
55
+ prompts = ["prompt 1", "prompt 2", "prompt 3"]
56
+ prompt_assets = ["https://assets.rapidata.ai/prompt_1.jpg", "https://assets.rapidata.ai/prompt_2.jpg", "https://assets.rapidata.ai/prompt_3.jpg"]
57
+ tags = [["tag1", "tag2"], ["tag2"], ["tag2", "tag3"]]
58
+
59
+ benchmark = create_new_benchmark(name=name, identifiers=identifiers, prompts=prompts, prompt_assets=prompt_assets, tags=tags)
60
+ ```
61
+ """
62
+ with tracer.start_as_current_span(
63
+ "RapidataBenchmarkManager.create_new_benchmark"
64
+ ):
65
+ if not isinstance(name, str):
66
+ raise ValueError("Name must be a string.")
67
+
68
+ if prompts and (
69
+ not isinstance(prompts, list)
70
+ or not all(
71
+ isinstance(prompt, str) or prompt is None for prompt in prompts
72
+ )
73
+ ):
74
+ raise ValueError("Prompts must be a list of strings or None.")
75
+
76
+ if prompt_assets and (
77
+ not isinstance(prompt_assets, list)
78
+ or not all(
79
+ isinstance(asset, str) or asset is None for asset in prompt_assets
80
+ )
81
+ ):
82
+ raise ValueError("Media assets must be a list of strings or None.")
83
+
84
+ if identifiers and (
85
+ not isinstance(identifiers, list)
86
+ or not all(isinstance(identifier, str) for identifier in identifiers)
87
+ ):
88
+ raise ValueError("Identifiers must be a list of strings.")
89
+
90
+ if identifiers:
91
+ if not len(set(identifiers)) == len(identifiers):
92
+ raise ValueError("Identifiers must be unique.")
93
+
94
+ if tags is not None:
95
+ if not isinstance(tags, list):
96
+ raise ValueError("Tags must be a list of lists of strings or None.")
97
+
98
+ for tag in tags:
99
+ if tag is not None and (
100
+ not isinstance(tag, list)
101
+ or not all(isinstance(item, str) for item in tag)
102
+ ):
103
+ raise ValueError(
104
+ "Tags must be a list of lists of strings or None."
105
+ )
106
+
107
+ if not identifiers and not prompts:
108
+ raise ValueError(
109
+ "At least one of identifiers or prompts must be provided."
110
+ )
111
+
112
+ if not prompts and not prompt_assets:
113
+ raise ValueError(
114
+ "At least one of prompts or media assets must be provided."
115
+ )
116
+
117
+ if not identifiers:
118
+ assert prompts is not None
119
+ if not len(set(prompts)) == len(prompts):
120
+ raise ValueError(
121
+ "Prompts must be unique. Otherwise use identifiers."
122
+ )
123
+ if any(prompt is None for prompt in prompts):
124
+ raise ValueError(
125
+ "Prompts must not be None. Otherwise use identifiers."
126
+ )
127
+
128
+ identifiers = cast(list[str], prompts)
129
+
130
+ assert identifiers is not None
131
+
132
+ expected_length = len(identifiers)
133
+
134
+ if not prompts:
135
+ prompts = cast(list[str | None], [None] * expected_length)
136
+
137
+ if not prompt_assets:
138
+ prompt_assets = cast(list[str | None], [None] * expected_length)
139
+
140
+ if not tags:
141
+ tags = cast(list[list[str] | None], [None] * expected_length)
142
+
143
+ # At this point, all variables are guaranteed to be lists, not None
144
+ assert prompts is not None
145
+ assert prompt_assets is not None
146
+ assert tags is not None
147
+
148
+ if not (expected_length == len(prompts) == len(prompt_assets) == len(tags)):
149
+ raise ValueError(
150
+ "Identifiers, prompts, media assets, and tags must have the same length or set to None."
151
+ )
152
+
153
+ logger.info("Creating new benchmark %s", name)
154
+
155
+ benchmark_result = self.__openapi_service.benchmark_api.benchmark_post(
156
+ create_benchmark_model=CreateBenchmarkModel(
157
+ name=name,
158
+ )
159
+ )
160
+
161
+ logger.info("Benchmark created with id %s", benchmark_result.id)
162
+
163
+ benchmark = RapidataBenchmark(
164
+ name, benchmark_result.id, self.__openapi_service
165
+ )
166
+
167
+ for identifier, prompt, asset, tag in zip(
168
+ identifiers, prompts, prompt_assets, tags
169
+ ):
170
+ benchmark.add_prompt(identifier, prompt, asset, tag)
171
+
172
+ return benchmark
173
+
174
+ def get_benchmark_by_id(self, id: str) -> RapidataBenchmark:
175
+ """
176
+ Returns a benchmark by its ID.
177
+ """
178
+ with tracer.start_as_current_span(
179
+ "RapidataBenchmarkManager.get_benchmark_by_id"
180
+ ):
181
+ benchmark_result = (
182
+ self.__openapi_service.benchmark_api.benchmark_benchmark_id_get(
183
+ benchmark_id=id
184
+ )
185
+ )
186
+ return RapidataBenchmark(
187
+ benchmark_result.name, benchmark_result.id, self.__openapi_service
188
+ )
189
+
190
+ def find_benchmarks(
191
+ self, name: str = "", amount: int = 10
192
+ ) -> list[RapidataBenchmark]:
193
+ """
194
+ Returns a list of benchmarks by their name.
195
+ """
196
+ with tracer.start_as_current_span("RapidataBenchmarkManager.find_benchmarks"):
197
+ benchmark_result = self.__openapi_service.benchmark_api.benchmarks_get(
198
+ QueryModel(
199
+ page=PageInfo(index=1, size=amount),
200
+ filter=RootFilter(
201
+ filters=[
202
+ Filter(
203
+ field="Name",
204
+ operator=FilterOperator.CONTAINS,
205
+ value=name,
206
+ )
207
+ ]
208
+ ),
209
+ sortCriteria=[
210
+ SortCriterion(
211
+ direction=SortDirection.DESC, propertyName="CreatedAt"
212
+ )
213
+ ],
214
+ )
215
+ )
216
+ return [
217
+ RapidataBenchmark(benchmark.name, benchmark.id, self.__openapi_service)
218
+ for benchmark in benchmark_result.items
219
+ ]
@@ -0,0 +1,4 @@
1
+ from .logger import logger # has to be instantiated before rapidata_config
2
+ from .tracer import tracer # has to be instantiated before rapidata_config
3
+ from .rapidata_config import rapidata_config
4
+ from .managed_print import managed_print
@@ -0,0 +1,135 @@
1
+ import logging
2
+ from typing import Protocol, runtime_checkable
3
+ from opentelemetry._logs import set_logger_provider
4
+ from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
5
+ from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
6
+ from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
7
+ from opentelemetry.sdk.resources import Resource
8
+ from rapidata import __version__
9
+ from .logging_config import LoggingConfig, register_config_handler
10
+
11
+
12
+ @runtime_checkable
13
+ class LoggerProtocol(Protocol):
14
+ """Protocol that defines the logger interface for type checking."""
15
+
16
+ def debug(self, msg: object, *args, **kwargs) -> None: ...
17
+ def info(self, msg: object, *args, **kwargs) -> None: ...
18
+ def warning(self, msg: object, *args, **kwargs) -> None: ...
19
+ def warn(self, msg: object, *args, **kwargs) -> None: ...
20
+ def error(self, msg: object, *args, **kwargs) -> None: ...
21
+ def exception(self, msg: object, *args, exc_info=True, **kwargs) -> None: ...
22
+ def critical(self, msg: object, *args, **kwargs) -> None: ...
23
+ def fatal(self, msg: object, *args, **kwargs) -> None: ...
24
+ def log(self, level: int, msg: object, *args, **kwargs) -> None: ...
25
+ def isEnabledFor(self, level: int) -> bool: ...
26
+ def getEffectiveLevel(self) -> int: ...
27
+ def setLevel(self, level: int | str) -> None: ...
28
+ def addHandler(self, handler: logging.Handler) -> None: ...
29
+ def removeHandler(self, handler: logging.Handler) -> None: ...
30
+ @property
31
+ def handlers(self) -> list[logging.Handler]: ...
32
+ @property
33
+ def level(self) -> int: ...
34
+ @property
35
+ def name(self) -> str: ...
36
+
37
+
38
+ class RapidataLogger:
39
+ """Logger implementation that updates when the configuration changes."""
40
+
41
+ def __init__(self, name: str = "rapidata"):
42
+ self._logger = logging.getLogger(name)
43
+ self._otlp_initialized = False
44
+ self._otlp_handler = None
45
+
46
+ # Register this logger to receive configuration updates
47
+ register_config_handler(self._handle_config_update)
48
+
49
+ def _handle_config_update(self, config: LoggingConfig) -> None:
50
+ """Handle configuration updates."""
51
+ self._update_logger(config)
52
+
53
+ def _update_logger(self, config: LoggingConfig) -> None:
54
+ """Update the logger based on the new configuration."""
55
+ # Initialize OTLP logging only once and only if not disabled
56
+ if not self._otlp_initialized and config.enable_otlp:
57
+ try:
58
+ logger_provider = LoggerProvider(
59
+ resource=Resource.create(
60
+ {
61
+ "service.name": "Rapidata.Python.SDK",
62
+ "service.version": __version__,
63
+ }
64
+ ),
65
+ )
66
+ set_logger_provider(logger_provider)
67
+
68
+ exporter = OTLPLogExporter(
69
+ endpoint="https://otlp-sdk.rapidata.ai/v1/logs",
70
+ timeout=30,
71
+ )
72
+
73
+ processor = BatchLogRecordProcessor(
74
+ exporter,
75
+ max_queue_size=2048,
76
+ export_timeout_millis=30000,
77
+ max_export_batch_size=512,
78
+ )
79
+
80
+ logger_provider.add_log_record_processor(processor)
81
+
82
+ # OTLP handler - captures DEBUG and above
83
+ self._otlp_handler = LoggingHandler(logger_provider=logger_provider)
84
+ self._otlp_handler.setLevel(logging.DEBUG) # OTLP gets everything
85
+
86
+ self._otlp_initialized = True
87
+
88
+ except Exception as e:
89
+ self._logger.warning(f"Failed to initialize OTLP logging: {e}")
90
+ import traceback
91
+
92
+ traceback.print_exc()
93
+
94
+ # Console handler with configurable level
95
+ console_handler = logging.StreamHandler()
96
+ console_level = getattr(logging, config.level.upper())
97
+ console_handler.setLevel(console_level)
98
+ console_formatter = logging.Formatter(config.format)
99
+ console_handler.setFormatter(console_formatter)
100
+
101
+ # Configure the logger
102
+ self._logger.setLevel(logging.DEBUG) # Logger must allow DEBUG for OTLP
103
+
104
+ # Remove any existing handlers (except OTLP when appropriate)
105
+ for handler in self._logger.handlers[:]:
106
+ if handler != self._otlp_handler:
107
+ self._logger.removeHandler(handler)
108
+ elif handler == self._otlp_handler and not config.enable_otlp:
109
+ self._logger.removeHandler(handler)
110
+
111
+ # Add OTLP handler if initialized and not disabled
112
+ if (
113
+ self._otlp_handler
114
+ and self._otlp_handler not in self._logger.handlers
115
+ and config.enable_otlp
116
+ ):
117
+ self._logger.addHandler(self._otlp_handler)
118
+
119
+ # Add console handler
120
+ self._logger.addHandler(console_handler)
121
+
122
+ # Add file handler if log_file is provided
123
+ if config.log_file:
124
+ file_handler = logging.FileHandler(config.log_file)
125
+ file_handler.setLevel(console_level) # Use same level as console
126
+ file_formatter = logging.Formatter(config.format)
127
+ file_handler.setFormatter(file_formatter)
128
+ self._logger.addHandler(file_handler)
129
+
130
+ def __getattr__(self, name: str) -> object:
131
+ """Delegate attribute access to the underlying logger."""
132
+ return getattr(self._logger, name)
133
+
134
+
135
+ logger: LoggerProtocol = RapidataLogger() # type: ignore[assignment]
@@ -0,0 +1,55 @@
1
+ from typing import Callable
2
+ from pydantic import BaseModel, Field
3
+ from rapidata.rapidata_client.config import logger
4
+
5
+ # Type alias for config update handlers
6
+ ConfigUpdateHandler = Callable[["LoggingConfig"], None]
7
+
8
+ # Global list to store registered handlers
9
+ _config_handlers: list[ConfigUpdateHandler] = []
10
+
11
+
12
+ def register_config_handler(handler: ConfigUpdateHandler) -> None:
13
+ """Register a handler to be called when the logging configuration updates."""
14
+ _config_handlers.append(handler)
15
+
16
+
17
+ def unregister_config_handler(handler: ConfigUpdateHandler) -> None:
18
+ """Unregister a previously registered handler."""
19
+ if handler in _config_handlers:
20
+ _config_handlers.remove(handler)
21
+
22
+
23
+ class LoggingConfig(BaseModel):
24
+ """
25
+ Holds the configuration for the logging process.
26
+
27
+ Attributes:
28
+ level (str): The logging level. Defaults to "WARNING".
29
+ log_file (str | None): The logging file. Defaults to None.
30
+ format (str): The logging format. Defaults to "%(asctime)s - %(name)s - %(levelname)s - %(message)s".
31
+ silent_mode (bool): Whether to disable the prints and progress bars. Does NOT affect the logging. Defaults to False.
32
+ enable_otlp (bool): Whether to enable OpenTelemetry trace logs. Defaults to True.
33
+ """
34
+
35
+ level: str = Field(default="WARNING")
36
+ log_file: str | None = Field(default=None)
37
+ format: str = Field(default="%(asctime)s - %(name)s - %(levelname)s - %(message)s")
38
+ silent_mode: bool = Field(default=False)
39
+ enable_otlp: bool = Field(default=True)
40
+
41
+ def __init__(self, **kwargs):
42
+ super().__init__(**kwargs)
43
+ self._notify_handlers()
44
+
45
+ def __setattr__(self, name: str, value) -> None:
46
+ super().__setattr__(name, value)
47
+ self._notify_handlers()
48
+
49
+ def _notify_handlers(self) -> None:
50
+ """Notify all registered handlers that the configuration has updated."""
51
+ for handler in _config_handlers:
52
+ try:
53
+ handler(self)
54
+ except Exception as e:
55
+ logger.warning(f"Warning: Config handler failed: {e}")
@@ -0,0 +1,6 @@
1
+ from rapidata.rapidata_client.config import rapidata_config
2
+
3
+
4
+ def managed_print(*args, **kwargs) -> None:
5
+ if not rapidata_config.logging.silent_mode:
6
+ print(*args, **kwargs)
@@ -0,0 +1,14 @@
1
+ from pydantic import BaseModel, Field
2
+
3
+
4
+ class OrderConfig(BaseModel):
5
+ """
6
+ Holds the configuration for the order process.
7
+
8
+ Attributes:
9
+ minOrderDatapointsForValidation (int): The minimum number of datapoints required so that an automatic validationset gets created if no recommended was found. Defaults to 50.
10
+ autoValidationSetSize (int): The maximum size of the auto-generated validation set. Defaults to 20.
11
+ """
12
+
13
+ autoValidationSetCreation: bool = Field(default=True)
14
+ minOrderDatapointsForValidation: int = Field(default=20)
@@ -0,0 +1,36 @@
1
+ from pydantic import BaseModel, Field
2
+
3
+ from rapidata.rapidata_client.config.logging_config import LoggingConfig
4
+ from rapidata.rapidata_client.config.order_config import OrderConfig
5
+ from rapidata.rapidata_client.config.upload_config import UploadConfig
6
+
7
+
8
+ class RapidataConfig(BaseModel):
9
+ """
10
+ Holds the configuration for the Rapidata client.
11
+
12
+ To adjust the configurations used, you can modify the `rapidata_config` object.
13
+
14
+ Attributes:
15
+ enableBetaFeatures (bool): Whether to enable beta features. Defaults to False.
16
+ upload (UploadConfig): The configuration for the upload process.
17
+ Such as the maximum number of worker threads for processing media paths and the maximum number of retries for failed uploads.
18
+ order (OrderConfig): The configuration for the order process.
19
+ Such as the minimum number of datapoints required so that an automatic validationset gets created if no recommended was found.
20
+ logging (LoggingConfig): The configuration for the logging process.
21
+ Such as the logging level and the logging file.
22
+
23
+ Example:
24
+ ```python
25
+ from rapidata import rapidata_config
26
+ rapidata_config.upload.maxUploadWorkers = 20
27
+ ```
28
+ """
29
+
30
+ enableBetaFeatures: bool = False
31
+ upload: UploadConfig = Field(default_factory=UploadConfig)
32
+ order: OrderConfig = Field(default_factory=OrderConfig)
33
+ logging: LoggingConfig = Field(default_factory=LoggingConfig)
34
+
35
+
36
+ rapidata_config = RapidataConfig()
@@ -0,0 +1,184 @@
1
+ from typing import Protocol, runtime_checkable, Any
2
+ import platform
3
+ import sys
4
+ import os
5
+ from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
6
+ from opentelemetry.sdk.trace import TracerProvider
7
+ from opentelemetry.sdk.trace.export import BatchSpanProcessor
8
+ from opentelemetry.sdk.resources import Resource
9
+ from rapidata import __version__
10
+ from .logging_config import LoggingConfig, register_config_handler
11
+ from rapidata.rapidata_client.config import logger
12
+
13
+
14
+ def get_system_attributes() -> dict[str, str | int | None]:
15
+ """Gather system telemetry for traces."""
16
+ try:
17
+ attrs = {
18
+ "system.os": platform.system(),
19
+ "system.os.version": platform.release(),
20
+ "system.arch": platform.machine(),
21
+ "python.version": f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}",
22
+ "process.cpu_count": os.cpu_count(),
23
+ }
24
+ logger.debug(f"System attributes: {attrs}")
25
+ return attrs
26
+ except Exception:
27
+ logger.debug("Failed to get system attributes, returning empty dict")
28
+ return {}
29
+
30
+
31
+ @runtime_checkable
32
+ class TracerProtocol(Protocol):
33
+ """Protocol that defines the tracer interface for type checking."""
34
+
35
+ def start_span(self, name: str, *args, **kwargs) -> Any: ...
36
+ def start_as_current_span(self, name: str, *args, **kwargs) -> Any: ...
37
+ def set_session_id(self, session_id: str) -> None: ...
38
+
39
+
40
+ class NoOpSpan:
41
+ """A no-op span that does nothing when tracing is disabled."""
42
+
43
+ def __enter__(self):
44
+ return self
45
+
46
+ def __exit__(self, *args):
47
+ pass
48
+
49
+ def set_attribute(self, *args, **kwargs):
50
+ pass
51
+
52
+ def set_status(self, *args, **kwargs):
53
+ pass
54
+
55
+ def add_event(self, *args, **kwargs):
56
+ pass
57
+
58
+ def end(self, *args, **kwargs):
59
+ pass
60
+
61
+ def __getattr__(self, name: str) -> Any:
62
+ """Return self for any method call to maintain chainability."""
63
+ return lambda *args, **kwargs: self
64
+
65
+
66
+ class NoOpTracer:
67
+ """A no-op tracer that returns no-op spans when tracing is disabled."""
68
+
69
+ def start_span(self, name: str, *args, **kwargs) -> NoOpSpan:
70
+ return NoOpSpan()
71
+
72
+ def start_as_current_span(self, name: str, *args, **kwargs) -> NoOpSpan:
73
+ return NoOpSpan()
74
+
75
+ def set_session_id(self, session_id: str) -> None:
76
+ pass
77
+
78
+ def __getattr__(self, name: str) -> Any:
79
+ """Delegate to no-op behavior."""
80
+ return lambda *args, **kwargs: NoOpSpan()
81
+
82
+
83
+ class SpanContextManagerWrapper:
84
+ """Wrapper for span context managers to add session_id on enter."""
85
+
86
+ def __init__(self, context_manager: Any, session_id: str | None):
87
+ self._context_manager = context_manager
88
+ self.session_id = session_id
89
+
90
+ def __enter__(self):
91
+ span = self._context_manager.__enter__()
92
+ if self.session_id and hasattr(span, "set_attribute"):
93
+ span.set_attribute("SDK.session.id", self.session_id)
94
+ return span
95
+
96
+ def __exit__(self, *args):
97
+ return self._context_manager.__exit__(*args)
98
+
99
+
100
+ class RapidataTracer:
101
+ """Tracer implementation that updates when the configuration changes."""
102
+
103
+ def __init__(self, name: str = __name__):
104
+ self._name = name
105
+ self._otlp_initialized = False
106
+ self._tracer_provider = None
107
+ self._real_tracer = None
108
+ self._no_op_tracer = NoOpTracer()
109
+ self._enabled = True # Default to enabled
110
+ self.session_id: str | None = None
111
+
112
+ # Register this tracer to receive configuration updates
113
+ register_config_handler(self._handle_config_update)
114
+
115
+ def _handle_config_update(self, config: LoggingConfig) -> None:
116
+ """Handle configuration updates."""
117
+ self._update_tracer(config)
118
+
119
+ def _update_tracer(self, config: LoggingConfig) -> None:
120
+ """Update the tracer based on the new configuration."""
121
+ self._enabled = config.enable_otlp
122
+
123
+ # Initialize OTLP tracing only once and only if not disabled
124
+ if not self._otlp_initialized and config.enable_otlp:
125
+ try:
126
+ resource_attributes = {
127
+ "service.name": "Rapidata.Python.SDK",
128
+ "service.version": __version__,
129
+ **get_system_attributes(),
130
+ }
131
+
132
+ resource = Resource.create(resource_attributes)
133
+
134
+ self._tracer_provider = TracerProvider(resource=resource)
135
+
136
+ exporter = OTLPSpanExporter(
137
+ endpoint="https://otlp-sdk.rapidata.ai/v1/traces",
138
+ timeout=30,
139
+ )
140
+
141
+ span_processor = BatchSpanProcessor(exporter)
142
+ self._tracer_provider.add_span_processor(span_processor)
143
+
144
+ self._real_tracer = self._tracer_provider.get_tracer(self._name)
145
+ self._otlp_initialized = True
146
+
147
+ except Exception as e:
148
+ logger.warning(f"Failed to initialize tracing: {e}")
149
+ self._enabled = False
150
+
151
+ def _add_session_id_to_span(self, span: Any) -> Any:
152
+ """Add session_id attribute to a span if session_id is set."""
153
+ if self.session_id and hasattr(span, "set_attribute"):
154
+ span.set_attribute("SDK.session.id", self.session_id)
155
+ return span
156
+
157
+ def start_span(self, name: str, *args, **kwargs) -> Any:
158
+ """Start a span, or return a no-op span if tracing is disabled."""
159
+ if self._enabled and self._real_tracer:
160
+ span = self._real_tracer.start_span(name, *args, **kwargs)
161
+ return self._add_session_id_to_span(span)
162
+ return self._no_op_tracer.start_span(name, *args, **kwargs)
163
+
164
+ def start_as_current_span(self, name: str, *args, **kwargs) -> Any:
165
+ """Start a span as current, or return a no-op span if tracing is disabled."""
166
+ if self._enabled and self._real_tracer:
167
+ context_manager = self._real_tracer.start_as_current_span(
168
+ name, *args, **kwargs
169
+ )
170
+ return SpanContextManagerWrapper(context_manager, self.session_id)
171
+ return self._no_op_tracer.start_as_current_span(name, *args, **kwargs)
172
+
173
+ def set_session_id(self, session_id: str) -> None:
174
+ self.session_id = session_id
175
+
176
+ def __getattr__(self, name: str) -> Any:
177
+ """Delegate attribute access to the appropriate tracer."""
178
+ if self._enabled and self._real_tracer:
179
+ return getattr(self._real_tracer, name)
180
+ return getattr(self._no_op_tracer, name)
181
+
182
+
183
+ # Create the main tracer instance - type checkers will see it as TracerProtocol
184
+ tracer: TracerProtocol = RapidataTracer() # type: ignore[assignment]