rapidata 2.23.2__py3-none-any.whl → 3.0.1__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.
- rapidata/__init__.py +31 -14
- rapidata/api_client/__init__.py +84 -312
- rapidata/api_client/api/__init__.py +12 -3
- rapidata/api_client/api/asset_api.py +853 -0
- rapidata/api_client/api/audience_api.py +3044 -0
- rapidata/api_client/api/benchmark_api.py +4307 -0
- rapidata/api_client/api/campaign_api.py +232 -207
- rapidata/api_client/api/client_api.py +166 -145
- rapidata/api_client/api/coco_api.py +0 -571
- rapidata/api_client/api/compare_workflow_api.py +11 -10
- rapidata/api_client/api/customer_rapid_api.py +2216 -0
- rapidata/api_client/api/datapoint_api.py +8 -797
- rapidata/api_client/api/dataset_api.py +276 -2858
- rapidata/api_client/api/evaluation_workflow_api.py +29 -82
- rapidata/api_client/api/feedback_api.py +11 -281
- rapidata/api_client/api/grouped_ranking_workflow_api.py +319 -0
- rapidata/api_client/api/identity_api.py +83 -1171
- rapidata/api_client/api/job_api.py +4200 -0
- rapidata/api_client/api/job_definition_api.py +319 -0
- rapidata/api_client/api/job_revision_api.py +335 -0
- rapidata/api_client/api/leaderboard_api.py +2855 -0
- rapidata/api_client/api/newsletter_api.py +30 -317
- rapidata/api_client/api/order_api.py +758 -5487
- rapidata/api_client/api/participant_api.py +2181 -0
- rapidata/api_client/api/pipeline_api.py +24 -1783
- rapidata/api_client/api/prompt_api.py +320 -0
- rapidata/api_client/api/rapidata_identity_api_api.py +5 -4
- rapidata/api_client/api/sample_api.py +300 -0
- rapidata/api_client/api/simple_workflow_api.py +11 -10
- rapidata/api_client/api/survey_api.py +304 -0
- rapidata/api_client/api/user_rapid_api.py +1389 -0
- rapidata/api_client/api/validation_set_api.py +510 -3230
- rapidata/api_client/api/workflow_api.py +32 -825
- rapidata/api_client/api_client.py +2 -2
- rapidata/api_client/configuration.py +16 -29
- rapidata/api_client/exceptions.py +2 -2
- rapidata/api_client/models/__init__.py +65 -291
- rapidata/api_client/models/ab_test_selection_a_inner.py +27 -13
- rapidata/api_client/models/add_campaign_model.py +8 -3
- rapidata/api_client/models/add_rapid_to_audience_model.py +144 -0
- rapidata/api_client/models/add_user_response_result.py +10 -5
- rapidata/api_client/models/add_validation_rapid_model.py +49 -28
- rapidata/api_client/models/add_validation_rapid_model_asset.py +154 -0
- rapidata/api_client/models/add_validation_rapid_model_context_asset.py +160 -0
- rapidata/api_client/models/add_validation_rapid_model_metadata_inner.py +140 -0
- rapidata/api_client/models/add_validation_rapid_model_truth.py +32 -12
- rapidata/api_client/models/add_validation_rapid_new_model.py +137 -0
- rapidata/api_client/models/add_validation_rapid_new_model_asset.py +182 -0
- rapidata/api_client/models/add_validation_rapid_new_model_truth.py +286 -0
- rapidata/api_client/models/add_validation_text_rapid_model.py +4 -6
- rapidata/api_client/models/age_user_filter_model.py +2 -2
- rapidata/api_client/models/age_user_filter_model_age_group.py +41 -0
- rapidata/api_client/models/aggregated_orders_model.py +98 -0
- rapidata/api_client/models/aggregator_type.py +4 -2
- rapidata/api_client/models/and_filter.py +121 -0
- rapidata/api_client/models/and_filter_filters_inner.py +282 -0
- rapidata/api_client/models/and_user_filter_model.py +106 -0
- rapidata/api_client/models/and_user_filter_model_filters_inner.py +282 -0
- rapidata/api_client/models/are_rapids_active_result.py +2 -2
- rapidata/api_client/models/asset_metadata.py +106 -0
- rapidata/api_client/models/asset_metadata_asset.py +170 -0
- rapidata/api_client/models/asset_metadata_model.py +96 -0
- rapidata/api_client/models/asset_metadata_model_asset.py +170 -0
- rapidata/api_client/models/asset_type.py +40 -0
- rapidata/api_client/models/attach_category_rapid_blueprint.py +13 -3
- rapidata/api_client/models/attach_category_rapid_blueprint_category.py +89 -0
- rapidata/api_client/models/audience_job_state.py +38 -0
- rapidata/api_client/models/audience_status.py +39 -0
- rapidata/api_client/models/benchmark_query_result.py +98 -0
- rapidata/api_client/models/benchmark_query_result_paged_result.py +105 -0
- rapidata/api_client/models/boost_leaderboard_model.py +89 -0
- rapidata/api_client/models/boost_mode.py +37 -0
- rapidata/api_client/models/boost_query_result.py +97 -0
- rapidata/api_client/models/boost_query_result_boost_mode.py +37 -0
- rapidata/api_client/models/boost_query_result_boost_status.py +39 -0
- rapidata/api_client/models/boost_status.py +39 -0
- rapidata/api_client/models/boosting_profile.py +91 -0
- rapidata/api_client/models/box_shape.py +4 -33
- rapidata/api_client/models/campaign_filter.py +98 -0
- rapidata/api_client/models/campaign_query_result.py +15 -13
- rapidata/api_client/models/campaign_status.py +2 -2
- rapidata/api_client/models/change_boost_model.py +89 -0
- rapidata/api_client/models/classification_metadata.py +12 -1
- rapidata/api_client/models/classify_payload.py +14 -15
- rapidata/api_client/models/classify_payload_category.py +89 -0
- rapidata/api_client/models/client_model.py +181 -0
- rapidata/api_client/models/clients_query_result.py +5 -5
- rapidata/api_client/models/clone_order_model.py +6 -8
- rapidata/api_client/models/clone_order_result.py +9 -4
- rapidata/api_client/models/compare_rapid_blueprint.py +5 -3
- rapidata/api_client/models/compare_rapid_blueprint1.py +96 -0
- rapidata/api_client/models/compare_result.py +1 -10
- rapidata/api_client/models/compare_workflow_config.py +34 -23
- rapidata/api_client/models/compare_workflow_config_context_asset.py +174 -0
- rapidata/api_client/models/compare_workflow_config_metadata_value.py +75 -17
- rapidata/api_client/models/compare_workflow_config_model.py +15 -5
- rapidata/api_client/models/compare_workflow_model.py +34 -6
- rapidata/api_client/models/compare_workflow_model1.py +20 -9
- rapidata/api_client/models/compare_workflow_model_context_asset.py +160 -0
- rapidata/api_client/models/compare_workflow_model_metadata_inner.py +154 -0
- rapidata/api_client/models/compare_workflow_model_pair_maker_config.py +1 -1
- rapidata/api_client/models/comparison_operator.py +2 -2
- rapidata/api_client/models/conditional_validation_selection.py +8 -11
- rapidata/api_client/models/conditional_validation_selection_validation_chance.py +103 -0
- rapidata/api_client/models/confidence_interval.py +89 -0
- rapidata/api_client/models/count_metadata.py +12 -1
- rapidata/api_client/models/country_filter.py +98 -0
- rapidata/api_client/models/create_audience_request.py +122 -0
- rapidata/api_client/models/create_audience_result.py +87 -0
- rapidata/api_client/models/create_benchmark_model.py +87 -0
- rapidata/api_client/models/create_benchmark_participant_model.py +87 -0
- rapidata/api_client/models/create_benchmark_participant_result.py +89 -0
- rapidata/api_client/models/create_benchmark_prompt_result.py +87 -0
- rapidata/api_client/models/create_benchmark_result.py +87 -0
- rapidata/api_client/models/create_bridge_token_result.py +2 -2
- rapidata/api_client/models/create_client_model.py +6 -13
- rapidata/api_client/models/create_complex_order_model.py +9 -9
- rapidata/api_client/models/create_complex_order_result.py +6 -4
- rapidata/api_client/models/create_customer_client_result.py +89 -0
- rapidata/api_client/models/create_datapoint_from_files_model_metadata_inner.py +25 -11
- rapidata/api_client/models/create_datapoint_model.py +124 -0
- rapidata/api_client/models/create_datapoint_model_asset.py +154 -0
- rapidata/api_client/models/create_datapoint_model_context_asset.py +160 -0
- rapidata/api_client/models/create_datapoint_model_metadata_inner.py +154 -0
- rapidata/api_client/models/create_datapoint_result.py +6 -18
- rapidata/api_client/models/create_dataset_endpoint_input.py +87 -0
- rapidata/api_client/models/create_dataset_endpoint_output.py +87 -0
- rapidata/api_client/models/create_demographic_rapid_model.py +45 -7
- rapidata/api_client/models/create_demographic_rapid_model_asset.py +160 -0
- rapidata/api_client/models/create_demographic_rapid_model_context_asset.py +160 -0
- rapidata/api_client/models/create_demographic_rapid_model_new.py +119 -0
- rapidata/api_client/models/create_empty_validation_set_result.py +2 -2
- rapidata/api_client/models/create_job_definition_endpoint_input.py +119 -0
- rapidata/api_client/models/create_job_definition_endpoint_output.py +89 -0
- rapidata/api_client/models/create_job_endpoint_input.py +100 -0
- rapidata/api_client/models/create_job_endpoint_output.py +89 -0
- rapidata/api_client/models/create_job_revision_endpoint_input.py +127 -0
- rapidata/api_client/models/create_job_revision_endpoint_output.py +89 -0
- rapidata/api_client/models/create_leaderboard_model.py +147 -0
- rapidata/api_client/models/create_leaderboard_participant_model.py +87 -0
- rapidata/api_client/models/create_leaderboard_participant_result.py +89 -0
- rapidata/api_client/models/create_leaderboard_result.py +99 -0
- rapidata/api_client/models/create_order_definition_model.py +119 -0
- rapidata/api_client/models/create_order_definition_result.py +87 -0
- rapidata/api_client/models/create_order_definition_revision_model.py +117 -0
- rapidata/api_client/models/create_order_definition_revision_result.py +87 -0
- rapidata/api_client/models/create_order_model.py +30 -103
- rapidata/api_client/models/create_order_model_referee.py +12 -12
- rapidata/api_client/models/create_order_model_workflow.py +35 -21
- rapidata/api_client/models/create_order_result.py +6 -4
- rapidata/api_client/models/create_rapid_result.py +2 -2
- rapidata/api_client/models/create_sample_model.py +93 -0
- rapidata/api_client/models/create_sample_model_asset.py +154 -0
- rapidata/api_client/models/create_sample_model_obsolete.py +87 -0
- rapidata/api_client/models/create_simple_pipeline_model_pipeline_steps_inner.py +8 -22
- rapidata/api_client/models/create_unsupported_order_model.py +6 -6
- rapidata/api_client/models/create_validation_set_model.py +5 -5
- rapidata/api_client/models/datapoint_metadata_model.py +3 -3
- rapidata/api_client/models/datapoint_model.py +3 -3
- rapidata/api_client/models/datapoint_model_paged_result.py +105 -0
- rapidata/api_client/models/datapoint_state.py +2 -2
- rapidata/api_client/models/dataset_dataset_id_datapoints_post_request_metadata_inner.py +182 -0
- rapidata/api_client/models/definition_type.py +49 -0
- rapidata/api_client/models/demographic_filter.py +100 -0
- rapidata/api_client/models/dynamic_client_registration_request.py +160 -0
- rapidata/api_client/models/early_stopping_referee_model.py +3 -3
- rapidata/api_client/models/effort_capped_selection.py +106 -0
- rapidata/api_client/models/elo_config.py +2 -2
- rapidata/api_client/models/elo_config_model.py +6 -6
- rapidata/api_client/models/entity_tag_header_value.py +93 -0
- rapidata/api_client/models/evaluation_workflow_config.py +13 -3
- rapidata/api_client/models/evaluation_workflow_model.py +16 -6
- rapidata/api_client/models/existing_asset_input.py +109 -0
- rapidata/api_client/models/existing_asset_input_metadata_value.py +126 -0
- rapidata/api_client/models/feature_flag.py +2 -2
- rapidata/api_client/models/feature_flag_model.py +6 -6
- rapidata/api_client/models/feedback_model.py +7 -7
- rapidata/api_client/models/file_asset.py +15 -12
- rapidata/api_client/models/file_asset_input.py +104 -0
- rapidata/api_client/models/file_asset_input1.py +104 -0
- rapidata/api_client/models/file_asset_input1_file.py +168 -0
- rapidata/api_client/models/file_asset_input2.py +104 -0
- rapidata/api_client/models/file_asset_input3.py +104 -0
- rapidata/api_client/models/file_asset_input_file.py +168 -0
- rapidata/api_client/models/file_asset_metadata_value.py +252 -0
- rapidata/api_client/models/file_asset_model_metadata_value.py +37 -51
- rapidata/api_client/models/file_stream_result.py +122 -0
- rapidata/api_client/models/file_type.py +39 -0
- rapidata/api_client/models/file_type_metadata.py +110 -0
- rapidata/api_client/models/file_type_metadata_model.py +97 -0
- rapidata/api_client/models/filter.py +7 -25
- rapidata/api_client/models/filter_operator.py +3 -2
- rapidata/api_client/models/fork_benchmark_result.py +87 -0
- rapidata/api_client/models/form_file_wrapper.py +135 -0
- rapidata/api_client/models/free_text_payload.py +10 -3
- rapidata/api_client/models/free_text_rapid_blueprint.py +10 -3
- rapidata/api_client/models/gender_user_filter_model.py +2 -2
- rapidata/api_client/models/gender_user_filter_model_gender.py +38 -0
- rapidata/api_client/models/get_asset_metadata_result.py +100 -0
- rapidata/api_client/models/get_audience_by_id_result.py +118 -0
- rapidata/api_client/models/get_audience_user_state_metrics_result.py +87 -0
- rapidata/api_client/models/get_available_validation_sets_result.py +2 -2
- rapidata/api_client/models/get_benchmark_by_id_query.py +96 -0
- rapidata/api_client/models/get_benchmark_by_id_query_result.py +94 -0
- rapidata/api_client/models/get_benchmark_by_id_query_result_paged_result.py +105 -0
- rapidata/api_client/models/get_benchmark_by_id_result.py +98 -0
- rapidata/api_client/models/get_boost_result.py +97 -0
- rapidata/api_client/models/get_boost_result_boost_mode.py +37 -0
- rapidata/api_client/models/get_boost_result_boost_status.py +39 -0
- rapidata/api_client/models/get_compare_ab_summary_result.py +5 -5
- rapidata/api_client/models/get_compare_workflow_results_model.py +7 -7
- rapidata/api_client/models/get_compare_workflow_results_result.py +5 -5
- rapidata/api_client/models/get_datapoint_by_id_result.py +10 -21
- rapidata/api_client/models/get_datapoint_by_id_result_asset.py +170 -0
- rapidata/api_client/models/get_dataset_by_id_result.py +2 -2
- rapidata/api_client/models/get_dataset_progress_result.py +2 -2
- rapidata/api_client/models/get_evaluation_workflow_results_model.py +119 -0
- rapidata/api_client/models/get_failed_datapoints_result.py +5 -5
- rapidata/api_client/models/get_failed_datapoints_result_datapoint.py +100 -0
- rapidata/api_client/models/get_file_metadata_result.py +100 -0
- rapidata/api_client/models/get_grouped_ranking_workflow_results_model.py +106 -0
- rapidata/api_client/models/get_grouped_ranking_workflow_results_result.py +97 -0
- rapidata/api_client/models/get_grouped_ranking_workflow_results_result_paged_result.py +105 -0
- rapidata/api_client/models/get_job_by_id_endpoint_output.py +130 -0
- rapidata/api_client/models/get_job_definition_by_id_endpoint_output.py +95 -0
- rapidata/api_client/models/get_job_revision_endpoint_output.py +133 -0
- rapidata/api_client/models/get_leaderboard_by_id_result.py +135 -0
- rapidata/api_client/models/get_order_by_id_result.py +12 -5
- rapidata/api_client/models/get_participant_by_id_result.py +91 -0
- rapidata/api_client/models/get_pipeline_by_id_result.py +5 -5
- rapidata/api_client/models/get_public_orders_result.py +2 -2
- rapidata/api_client/models/get_public_responses_result.py +95 -0
- rapidata/api_client/models/get_public_responses_result_response.py +112 -0
- rapidata/api_client/models/get_rapid_responses_result.py +6 -12
- rapidata/api_client/models/get_recommended_validation_set_result.py +95 -0
- rapidata/api_client/models/get_responses_for_rapid_result.py +106 -0
- rapidata/api_client/models/get_responses_for_rapid_result_response.py +103 -0
- rapidata/api_client/models/get_responses_for_rapid_result_response_result.py +266 -0
- rapidata/api_client/models/get_responses_result.py +5 -5
- rapidata/api_client/models/get_responses_result_response.py +103 -0
- rapidata/api_client/models/get_sample_by_id_result.py +125 -0
- rapidata/api_client/models/get_simple_workflow_results_model.py +20 -15
- rapidata/api_client/models/get_standing_by_id_result.py +96 -0
- rapidata/api_client/models/get_validation_rapids_result.py +33 -33
- rapidata/api_client/models/get_validation_rapids_result_truth.py +25 -11
- rapidata/api_client/models/get_validation_set_by_id_result.py +10 -4
- rapidata/api_client/models/get_workflow_by_id_result.py +5 -5
- rapidata/api_client/models/get_workflow_by_id_result_workflow.py +23 -9
- rapidata/api_client/models/get_workflow_progress_result.py +5 -11
- rapidata/api_client/models/get_workflow_results_result.py +34 -23
- rapidata/api_client/models/get_workflow_results_result_response.py +103 -0
- rapidata/api_client/models/google_one_tap_login_model.py +4 -4
- rapidata/api_client/models/grouped_ranking_workflow_config.py +155 -0
- rapidata/api_client/models/grouped_ranking_workflow_config_context_assets_value.py +170 -0
- rapidata/api_client/models/grouped_ranking_workflow_model.py +147 -0
- rapidata/api_client/models/grouped_ranking_workflow_model1.py +121 -0
- rapidata/api_client/models/i_artifact_model.py +182 -0
- rapidata/api_client/models/i_artifact_model_campaign_artifact_model.py +98 -0
- rapidata/api_client/models/i_artifact_model_dataset_artifact_model.py +98 -0
- rapidata/api_client/models/i_artifact_model_file_artifact_model.py +98 -0
- rapidata/api_client/models/i_artifact_model_workflow_artifact_model.py +98 -0
- rapidata/api_client/models/i_artifact_model_workflow_config_artifact_model.py +102 -0
- rapidata/api_client/models/i_asset.py +170 -0
- rapidata/api_client/models/i_asset_file_asset.py +111 -0
- rapidata/api_client/models/i_asset_input.py +156 -0
- rapidata/api_client/models/i_asset_input_existing_asset_input.py +118 -0
- rapidata/api_client/models/i_asset_input_multi_asset_input.py +128 -0
- rapidata/api_client/models/i_asset_input_text_asset_input.py +118 -0
- rapidata/api_client/models/i_asset_model.py +170 -0
- rapidata/api_client/models/i_asset_model_file_asset_model.py +113 -0
- rapidata/api_client/models/i_asset_model_multi_asset_model.py +123 -0
- rapidata/api_client/models/i_asset_model_null_asset_model.py +111 -0
- rapidata/api_client/models/i_asset_model_text_asset_model.py +113 -0
- rapidata/api_client/models/i_asset_multi_asset.py +121 -0
- rapidata/api_client/models/i_asset_null_asset.py +109 -0
- rapidata/api_client/models/i_asset_text_asset.py +111 -0
- rapidata/api_client/models/i_audience_filter.py +184 -0
- rapidata/api_client/models/i_audience_filter_and_audience_filter.py +106 -0
- rapidata/api_client/models/i_audience_filter_country_audience_filter.py +96 -0
- rapidata/api_client/models/i_audience_filter_country_filter.py +96 -0
- rapidata/api_client/models/i_audience_filter_language_audience_filter.py +96 -0
- rapidata/api_client/models/i_audience_filter_language_filter.py +96 -0
- rapidata/api_client/models/i_audience_filter_not_audience_filter.py +102 -0
- rapidata/api_client/models/i_audience_filter_or_audience_filter.py +106 -0
- rapidata/api_client/models/i_campaign_filter.py +296 -0
- rapidata/api_client/models/i_campaign_filter_and_filter.py +117 -0
- rapidata/api_client/models/i_campaign_filter_campaign_filter.py +98 -0
- rapidata/api_client/models/i_campaign_filter_campaign_session_count_filter.py +101 -0
- rapidata/api_client/models/i_campaign_filter_country_filter.py +98 -0
- rapidata/api_client/models/i_campaign_filter_demographic_filter.py +100 -0
- rapidata/api_client/models/i_campaign_filter_device_filter.py +106 -0
- rapidata/api_client/models/i_campaign_filter_language_filter.py +98 -0
- rapidata/api_client/models/i_campaign_filter_new_user_filter.py +96 -0
- rapidata/api_client/models/i_campaign_filter_not_filter.py +113 -0
- rapidata/api_client/models/i_campaign_filter_or_filter.py +117 -0
- rapidata/api_client/models/i_campaign_filter_response_count_filter.py +103 -0
- rapidata/api_client/models/i_campaign_filter_user_action_restriction_filter.py +106 -0
- rapidata/api_client/models/i_campaign_filter_user_score_filter.py +102 -0
- rapidata/api_client/models/i_campaign_filter_user_state_filter.py +106 -0
- rapidata/api_client/models/i_dataset_metadata_input.py +154 -0
- rapidata/api_client/models/i_dataset_metadata_input_prompt_asset_metadata_input.py +100 -0
- rapidata/api_client/models/i_dataset_metadata_input_prompt_metadata_input.py +96 -0
- rapidata/api_client/models/i_dataset_metadata_input_transcription_metadata_input.py +96 -0
- rapidata/api_client/models/i_dataset_model.py +126 -0
- rapidata/api_client/models/i_dataset_model_clone_dataset_model.py +98 -0
- rapidata/api_client/models/i_metadata.py +252 -0
- rapidata/api_client/models/i_metadata_classification_metadata.py +109 -0
- rapidata/api_client/models/i_metadata_count_metadata.py +109 -0
- rapidata/api_client/models/i_metadata_duration_metadata.py +110 -0
- rapidata/api_client/models/i_metadata_file_type_metadata.py +110 -0
- rapidata/api_client/models/i_metadata_image_dimension_metadata.py +111 -0
- rapidata/api_client/models/i_metadata_input.py +126 -0
- rapidata/api_client/models/i_metadata_input_text_metadata_input.py +111 -0
- rapidata/api_client/models/i_metadata_location_metadata.py +111 -0
- rapidata/api_client/models/i_metadata_model.py +252 -0
- rapidata/api_client/models/i_metadata_model_classification_metadata_model.py +96 -0
- rapidata/api_client/models/i_metadata_model_count_metadata_model.py +96 -0
- rapidata/api_client/models/i_metadata_model_file_type_metadata_model.py +97 -0
- rapidata/api_client/models/i_metadata_model_image_dimension_metadata_model.py +98 -0
- rapidata/api_client/models/i_metadata_model_location_metadata_model.py +98 -0
- rapidata/api_client/models/i_metadata_model_original_filename_metadata_model.py +96 -0
- rapidata/api_client/models/i_metadata_model_source_url_metadata_model.py +96 -0
- rapidata/api_client/models/i_metadata_model_streams_metadata_model.py +100 -0
- rapidata/api_client/models/i_metadata_model_text_metadata_model.py +101 -0
- rapidata/api_client/models/i_metadata_model_video_duration_metadata_model.py +97 -0
- rapidata/api_client/models/i_metadata_original_filename_metadata.py +109 -0
- rapidata/api_client/models/i_metadata_source_url_metadata.py +109 -0
- rapidata/api_client/models/i_metadata_streams_metadata.py +113 -0
- rapidata/api_client/models/i_metadata_text_metadata.py +114 -0
- rapidata/api_client/models/i_metadata_video_duration_metadata.py +110 -0
- rapidata/api_client/models/i_order_workflow_model.py +168 -0
- rapidata/api_client/models/i_order_workflow_model_compare_workflow_model.py +146 -0
- rapidata/api_client/models/i_order_workflow_model_evaluation_workflow_model.py +108 -0
- rapidata/api_client/models/i_order_workflow_model_grouped_ranking_workflow_model.py +147 -0
- rapidata/api_client/models/i_order_workflow_model_simple_workflow_model.py +110 -0
- rapidata/api_client/models/i_pair_maker_config.py +126 -0
- rapidata/api_client/models/i_pair_maker_config_model.py +126 -0
- rapidata/api_client/models/i_pair_maker_config_model_online_pair_maker_config_model.py +98 -0
- rapidata/api_client/models/i_pair_maker_config_online_pair_maker_config.py +98 -0
- rapidata/api_client/models/i_pair_maker_information.py +126 -0
- rapidata/api_client/models/i_pair_maker_information_online_pair_maker_information.py +100 -0
- rapidata/api_client/models/i_pipeline_artifact_model.py +126 -0
- rapidata/api_client/models/i_pipeline_artifact_model_create_dataset_artifact_model.py +102 -0
- rapidata/api_client/models/i_pipeline_model.py +126 -0
- rapidata/api_client/models/i_pipeline_model_create_simple_pipeline_model.py +116 -0
- rapidata/api_client/models/i_pipeline_step_model.py +168 -0
- rapidata/api_client/models/i_pipeline_step_model_dataset_evaluation_step_model.py +102 -0
- rapidata/api_client/models/i_pipeline_step_model_send_completion_mail_step_model.py +98 -0
- rapidata/api_client/models/i_pipeline_step_model_workflow_aggregation_step_model.py +103 -0
- rapidata/api_client/models/i_pipeline_step_model_workflow_labeling_step_model.py +96 -0
- rapidata/api_client/models/i_rapid_blueprint.py +252 -0
- rapidata/api_client/models/i_rapid_blueprint_attach_category_rapid_blueprint.py +108 -0
- rapidata/api_client/models/i_rapid_blueprint_bounding_box_rapid_blueprint.py +96 -0
- rapidata/api_client/models/i_rapid_blueprint_compare_rapid_blueprint.py +98 -0
- rapidata/api_client/models/i_rapid_blueprint_free_text_rapid_blueprint.py +105 -0
- rapidata/api_client/models/i_rapid_blueprint_line_rapid_blueprint.py +96 -0
- rapidata/api_client/models/i_rapid_blueprint_locate_rapid_blueprint.py +96 -0
- rapidata/api_client/models/i_rapid_blueprint_named_entity_rapid_blueprint.py +98 -0
- rapidata/api_client/models/i_rapid_blueprint_polygon_rapid_blueprint.py +96 -0
- rapidata/api_client/models/i_rapid_blueprint_scrub_rapid_blueprint.py +96 -0
- rapidata/api_client/models/i_rapid_blueprint_transcription_rapid_blueprint.py +96 -0
- rapidata/api_client/models/i_rapid_payload.py +252 -0
- rapidata/api_client/models/i_rapid_payload_bounding_box_payload.py +96 -0
- rapidata/api_client/models/i_rapid_payload_classify_payload.py +106 -0
- rapidata/api_client/models/i_rapid_payload_compare_payload.py +96 -0
- rapidata/api_client/models/i_rapid_payload_free_text_payload.py +105 -0
- rapidata/api_client/models/i_rapid_payload_line_payload.py +96 -0
- rapidata/api_client/models/i_rapid_payload_locate_payload.py +96 -0
- rapidata/api_client/models/i_rapid_payload_named_entity_payload.py +98 -0
- rapidata/api_client/models/i_rapid_payload_polygon_payload.py +96 -0
- rapidata/api_client/models/i_rapid_payload_scrub_payload.py +96 -0
- rapidata/api_client/models/i_rapid_payload_transcription_payload.py +106 -0
- rapidata/api_client/models/i_rapid_result.py +266 -0
- rapidata/api_client/models/i_rapid_result_attach_category_result.py +98 -0
- rapidata/api_client/models/i_rapid_result_bounding_box_result.py +106 -0
- rapidata/api_client/models/i_rapid_result_compare_result.py +98 -0
- rapidata/api_client/models/i_rapid_result_free_text_result.py +98 -0
- rapidata/api_client/models/i_rapid_result_line_result.py +106 -0
- rapidata/api_client/models/i_rapid_result_locate_result.py +106 -0
- rapidata/api_client/models/i_rapid_result_named_entity_result.py +106 -0
- rapidata/api_client/models/i_rapid_result_polygon_result.py +106 -0
- rapidata/api_client/models/i_rapid_result_scrub_result.py +98 -0
- rapidata/api_client/models/i_rapid_result_skip_result.py +96 -0
- rapidata/api_client/models/i_rapid_result_transcription_result.py +106 -0
- rapidata/api_client/models/i_referee_config.py +154 -0
- rapidata/api_client/models/i_referee_config_naive_referee_config.py +96 -0
- rapidata/api_client/models/i_referee_config_never_ending_referee_config.py +94 -0
- rapidata/api_client/models/i_referee_config_probabilistic_attach_category_referee_config.py +98 -0
- rapidata/api_client/models/i_referee_info.py +154 -0
- rapidata/api_client/models/i_referee_info_naive_referee_info.py +96 -0
- rapidata/api_client/models/i_referee_info_never_ending_referee_info.py +94 -0
- rapidata/api_client/models/i_referee_info_probabilistic_attach_category_referee_info.py +98 -0
- rapidata/api_client/models/i_referee_model.py +140 -0
- rapidata/api_client/models/i_referee_model_early_stopping_referee_model.py +98 -0
- rapidata/api_client/models/i_referee_model_naive_referee_model.py +96 -0
- rapidata/api_client/models/i_selection.py +240 -0
- rapidata/api_client/models/i_selection_ab_test_selection.py +122 -0
- rapidata/api_client/models/i_selection_capped_selection.py +108 -0
- rapidata/api_client/models/i_selection_conditional_validation_selection.py +110 -0
- rapidata/api_client/models/i_selection_demographic_selection.py +98 -0
- rapidata/api_client/models/i_selection_effort_capped_selection.py +101 -0
- rapidata/api_client/models/i_selection_labeling_selection.py +103 -0
- rapidata/api_client/models/i_selection_shuffling_selection.py +106 -0
- rapidata/api_client/models/i_selection_static_selection.py +96 -0
- rapidata/api_client/models/i_selection_validation_selection.py +98 -0
- rapidata/api_client/models/i_user_filter_model.py +296 -0
- rapidata/api_client/models/i_user_filter_model_age_user_filter_model.py +104 -0
- rapidata/api_client/models/i_user_filter_model_and_user_filter_model.py +106 -0
- rapidata/api_client/models/i_user_filter_model_campaign_user_filter_model.py +96 -0
- rapidata/api_client/models/i_user_filter_model_country_user_filter_model.py +96 -0
- rapidata/api_client/models/i_user_filter_model_custom_user_filter_model.py +98 -0
- rapidata/api_client/models/i_user_filter_model_device_user_filter_model.py +104 -0
- rapidata/api_client/models/i_user_filter_model_gender_user_filter_model.py +104 -0
- rapidata/api_client/models/i_user_filter_model_language_user_filter_model.py +96 -0
- rapidata/api_client/models/i_user_filter_model_new_user_filter_model.py +94 -0
- rapidata/api_client/models/i_user_filter_model_not_user_filter_model.py +102 -0
- rapidata/api_client/models/i_user_filter_model_or_user_filter_model.py +106 -0
- rapidata/api_client/models/i_user_filter_model_response_count_user_filter_model.py +101 -0
- rapidata/api_client/models/i_user_filter_model_user_score_user_filter_model.py +105 -0
- rapidata/api_client/models/i_validation_metadata_input.py +140 -0
- rapidata/api_client/models/i_validation_metadata_input_prompt_asset_metadata_input.py +100 -0
- rapidata/api_client/models/i_validation_metadata_input_prompt_metadata_input.py +96 -0
- rapidata/api_client/models/i_validation_truth.py +280 -0
- rapidata/api_client/models/i_validation_truth_attach_category_truth.py +96 -0
- rapidata/api_client/models/i_validation_truth_bounding_box_truth.py +102 -0
- rapidata/api_client/models/i_validation_truth_compare_truth.py +96 -0
- rapidata/api_client/models/i_validation_truth_empty_validation_truth.py +94 -0
- rapidata/api_client/models/i_validation_truth_line_truth.py +94 -0
- rapidata/api_client/models/i_validation_truth_locate_box_truth.py +108 -0
- rapidata/api_client/models/i_validation_truth_model.py +294 -0
- rapidata/api_client/models/i_validation_truth_model_attach_category_truth_model.py +96 -0
- rapidata/api_client/models/i_validation_truth_model_bounding_box_truth_model.py +102 -0
- rapidata/api_client/models/i_validation_truth_model_classify_truth_model.py +96 -0
- rapidata/api_client/models/i_validation_truth_model_compare_truth_model.py +96 -0
- rapidata/api_client/models/i_validation_truth_model_empty_validation_truth_model.py +94 -0
- rapidata/api_client/models/i_validation_truth_model_line_truth_model.py +94 -0
- rapidata/api_client/models/i_validation_truth_model_locate_box_truth_model.py +108 -0
- rapidata/api_client/models/i_validation_truth_model_multi_compare_truth_model.py +96 -0
- rapidata/api_client/models/i_validation_truth_model_named_entity_truth_model.py +104 -0
- rapidata/api_client/models/i_validation_truth_model_polygon_truth_model.py +94 -0
- rapidata/api_client/models/i_validation_truth_model_scrub_truth_model.py +104 -0
- rapidata/api_client/models/i_validation_truth_model_skip_truth_model.py +94 -0
- rapidata/api_client/models/i_validation_truth_model_transcription_truth_model.py +115 -0
- rapidata/api_client/models/i_validation_truth_multi_compare_truth.py +96 -0
- rapidata/api_client/models/i_validation_truth_named_entity_truth.py +104 -0
- rapidata/api_client/models/i_validation_truth_polygon_truth.py +94 -0
- rapidata/api_client/models/i_validation_truth_scrub_truth.py +104 -0
- rapidata/api_client/models/i_validation_truth_skip_truth.py +94 -0
- rapidata/api_client/models/i_validation_truth_transcription_truth.py +115 -0
- rapidata/api_client/models/i_workflow_config.py +168 -0
- rapidata/api_client/models/i_workflow_config_compare_workflow_config.py +142 -0
- rapidata/api_client/models/i_workflow_config_evaluation_workflow_config.py +114 -0
- rapidata/api_client/models/i_workflow_config_grouped_ranking_workflow_config.py +155 -0
- rapidata/api_client/models/i_workflow_config_simple_workflow_config.py +116 -0
- rapidata/api_client/models/i_workflow_model.py +168 -0
- rapidata/api_client/models/i_workflow_model_compare_workflow_model.py +145 -0
- rapidata/api_client/models/i_workflow_model_evaluation_workflow_model.py +115 -0
- rapidata/api_client/models/i_workflow_model_grouped_ranking_workflow_model.py +121 -0
- rapidata/api_client/models/i_workflow_model_simple_workflow_model.py +119 -0
- rapidata/api_client/models/image_dimension_metadata.py +12 -1
- rapidata/api_client/models/inquire_file_metadata_result.py +100 -0
- rapidata/api_client/models/inspect_report_result.py +2 -2
- rapidata/api_client/models/job_definition_revision_state.py +38 -0
- rapidata/api_client/models/json_web_key.py +224 -0
- rapidata/api_client/models/json_web_key_set.py +95 -0
- rapidata/api_client/models/labeling_selection.py +11 -13
- rapidata/api_client/models/language_filter.py +98 -0
- rapidata/api_client/models/leaderboard_query_result.py +135 -0
- rapidata/api_client/models/leaderboard_query_result_paged_result.py +105 -0
- rapidata/api_client/models/leaderboards_query_result.py +135 -0
- rapidata/api_client/models/line_result.py +3 -3
- rapidata/api_client/models/line_result_line.py +97 -0
- rapidata/api_client/models/line_result_line_point.py +89 -0
- rapidata/api_client/models/local_file_wrapper.py +120 -0
- rapidata/api_client/models/locate_coordinate.py +4 -13
- rapidata/api_client/models/location_metadata.py +12 -1
- rapidata/api_client/models/logic_operator.py +2 -2
- rapidata/api_client/models/metadata_i_order_metadata_input.py +154 -0
- rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_asset_metadata_input.py +100 -0
- rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_metadata_input.py +96 -0
- rapidata/api_client/models/metadata_i_order_metadata_input_metadata_transcription_metadata_input.py +96 -0
- rapidata/api_client/models/metadata_prompt_asset_metadata_input.py +100 -0
- rapidata/api_client/models/metadata_prompt_metadata_input.py +96 -0
- rapidata/api_client/models/metadata_transcription_metadata_input.py +96 -0
- rapidata/api_client/models/multi_asset.py +17 -12
- rapidata/api_client/models/multi_asset_assets_inner.py +170 -0
- rapidata/api_client/models/multi_asset_input.py +130 -0
- rapidata/api_client/models/multi_asset_input1.py +110 -0
- rapidata/api_client/models/multi_asset_input1_assets_inner.py +198 -0
- rapidata/api_client/models/multi_asset_input2.py +110 -0
- rapidata/api_client/models/multi_asset_input3.py +110 -0
- rapidata/api_client/models/multi_asset_input3_assets_inner.py +198 -0
- rapidata/api_client/models/multi_asset_input_assets_inner.py +156 -0
- rapidata/api_client/models/multi_asset_model.py +3 -3
- rapidata/api_client/models/multi_compare_truth.py +96 -0
- rapidata/api_client/models/naive_referee_info.py +96 -0
- rapidata/api_client/models/naive_referee_model.py +2 -2
- rapidata/api_client/models/named_classification.py +4 -13
- rapidata/api_client/models/never_ending_referee_info.py +94 -0
- rapidata/api_client/models/new_user_filter.py +96 -0
- rapidata/api_client/models/newsletter_model.py +6 -6
- rapidata/api_client/models/not_available_yet_result.py +4 -13
- rapidata/api_client/models/not_filter.py +117 -0
- rapidata/api_client/models/not_user_filter_model.py +3 -3
- rapidata/api_client/models/null_asset.py +14 -9
- rapidata/api_client/models/online_pair_maker_config_model.py +3 -3
- rapidata/api_client/models/option_of_aggregator_type.py +49 -0
- rapidata/api_client/models/or_filter.py +121 -0
- rapidata/api_client/models/or_user_filter_model.py +3 -3
- rapidata/api_client/models/order_model.py +15 -14
- rapidata/api_client/models/order_state.py +2 -2
- rapidata/api_client/models/original_filename_metadata.py +12 -1
- rapidata/api_client/models/page_info.py +2 -7
- rapidata/api_client/models/paged_result_aggregated_orders_model.py +105 -0
- rapidata/api_client/models/paged_result_benchmark_query_result.py +105 -0
- rapidata/api_client/models/paged_result_campaign_query_result.py +105 -0
- rapidata/api_client/models/paged_result_clients_query_result.py +105 -0
- rapidata/api_client/models/paged_result_datapoint_model.py +105 -0
- rapidata/api_client/models/paged_result_get_compare_workflow_results_result.py +105 -0
- rapidata/api_client/models/paged_result_get_grouped_ranking_workflow_results_result.py +105 -0
- rapidata/api_client/models/paged_result_get_validation_rapids_result.py +105 -0
- rapidata/api_client/models/paged_result_get_workflow_results_result.py +105 -0
- rapidata/api_client/models/paged_result_i_workflow_model.py +105 -0
- rapidata/api_client/models/paged_result_leaderboard_query_result.py +105 -0
- rapidata/api_client/models/paged_result_leaderboards_query_result.py +105 -0
- rapidata/api_client/models/paged_result_of_aggregated_orders_model.py +103 -0
- rapidata/api_client/models/paged_result_of_benchmark_query_result.py +103 -0
- rapidata/api_client/models/paged_result_of_campaign_query_result.py +103 -0
- rapidata/api_client/models/paged_result_of_clients_query_result.py +103 -0
- rapidata/api_client/models/paged_result_of_get_compare_workflow_results_result.py +103 -0
- rapidata/api_client/models/paged_result_of_get_grouped_ranking_workflow_results_result.py +103 -0
- rapidata/api_client/models/paged_result_of_get_validation_rapids_result.py +103 -0
- rapidata/api_client/models/paged_result_of_get_workflow_results_result.py +103 -0
- rapidata/api_client/models/paged_result_of_i_workflow_model.py +103 -0
- rapidata/api_client/models/paged_result_of_leaderboards_query_result.py +103 -0
- rapidata/api_client/models/paged_result_of_order_model.py +103 -0
- rapidata/api_client/models/paged_result_of_participant_by_benchmark.py +103 -0
- rapidata/api_client/models/paged_result_of_prompt_by_benchmark_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_audiences_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_datapoints_by_dataset_id_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_job_definitions_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_job_revisions_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_jobs_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_rapids_for_audience_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_validation_rapid_eligibility_result.py +103 -0
- rapidata/api_client/models/paged_result_of_rapid_model.py +103 -0
- rapidata/api_client/models/paged_result_of_runs_by_leaderboard_result.py +103 -0
- rapidata/api_client/models/paged_result_of_sample_by_identifier.py +103 -0
- rapidata/api_client/models/paged_result_of_sample_by_participant.py +103 -0
- rapidata/api_client/models/paged_result_of_standing_by_leaderboard.py +103 -0
- rapidata/api_client/models/paged_result_of_validation_set_model.py +103 -0
- rapidata/api_client/models/paged_result_order_model.py +105 -0
- rapidata/api_client/models/paged_result_participant_by_benchmark.py +105 -0
- rapidata/api_client/models/paged_result_potential_validation_rapid.py +105 -0
- rapidata/api_client/models/paged_result_prompt_by_benchmark_result.py +105 -0
- rapidata/api_client/models/paged_result_query_audiences_result.py +105 -0
- rapidata/api_client/models/paged_result_query_datapoints_by_dataset_id_result.py +105 -0
- rapidata/api_client/models/paged_result_query_validation_rapid_eligibility_result.py +105 -0
- rapidata/api_client/models/paged_result_rapid_model.py +105 -0
- rapidata/api_client/models/paged_result_runs_by_leaderboard_result.py +105 -0
- rapidata/api_client/models/paged_result_sample_by_identifier.py +105 -0
- rapidata/api_client/models/paged_result_sample_by_participant.py +105 -0
- rapidata/api_client/models/paged_result_standing_by_leaderboard.py +105 -0
- rapidata/api_client/models/paged_result_validation_set_model.py +105 -0
- rapidata/api_client/models/participant_by_benchmark.py +94 -0
- rapidata/api_client/models/participant_by_benchmark_paged_result.py +105 -0
- rapidata/api_client/models/participant_by_leaderboard.py +113 -0
- rapidata/api_client/models/participant_by_leaderboard_paged_result.py +105 -0
- rapidata/api_client/models/participant_status.py +38 -0
- rapidata/api_client/models/pipeline_id_workflow_config_put_request.py +140 -0
- rapidata/api_client/models/polygon_result.py +3 -3
- rapidata/api_client/models/polygon_result_coordinate.py +89 -0
- rapidata/api_client/models/polygon_result_shape.py +95 -0
- rapidata/api_client/models/potential_validation_rapid.py +103 -0
- rapidata/api_client/models/potential_validation_rapid_paged_result.py +105 -0
- rapidata/api_client/models/potential_validation_rapid_truth.py +280 -0
- rapidata/api_client/models/preliminary_download_model.py +5 -5
- rapidata/api_client/models/preview_order_model.py +92 -0
- rapidata/api_client/models/probabilistic_attach_category_referee_info.py +98 -0
- rapidata/api_client/models/problem_details.py +2 -20
- rapidata/api_client/models/prompt_asset_metadata_input.py +100 -0
- rapidata/api_client/models/prompt_asset_metadata_input_asset.py +154 -0
- rapidata/api_client/models/prompt_by_benchmark_result.py +112 -0
- rapidata/api_client/models/prompt_by_benchmark_result_paged_result.py +105 -0
- rapidata/api_client/models/prompt_by_leaderboard_result.py +90 -0
- rapidata/api_client/models/prompt_by_leaderboard_result_paged_result.py +105 -0
- rapidata/api_client/models/prompt_metadata.py +12 -1
- rapidata/api_client/models/prompt_metadata_input.py +2 -2
- rapidata/api_client/models/prompt_type.py +38 -0
- rapidata/api_client/models/proxy_file_wrapper.py +129 -0
- rapidata/api_client/models/public_order_model.py +2 -2
- rapidata/api_client/models/public_rapid_response.py +112 -0
- rapidata/api_client/models/query_audiences_result.py +118 -0
- rapidata/api_client/models/query_datapoints_by_dataset_id_result.py +95 -0
- rapidata/api_client/models/query_job_definitions_result.py +97 -0
- rapidata/api_client/models/query_job_revisions_result.py +95 -0
- rapidata/api_client/models/query_jobs_result.py +103 -0
- rapidata/api_client/models/query_model.py +10 -5
- rapidata/api_client/models/query_rapids_for_audience_result.py +150 -0
- rapidata/api_client/models/query_validation_model.py +97 -0
- rapidata/api_client/models/query_validation_rapid_eligibility_model_query_validation_model.py +107 -0
- rapidata/api_client/models/query_validation_rapid_eligibility_result.py +103 -0
- rapidata/api_client/models/query_validation_rapid_eligibility_result_truth.py +280 -0
- rapidata/api_client/models/rapid_issue.py +2 -2
- rapidata/api_client/models/rapid_modality.py +46 -0
- rapidata/api_client/models/rapid_model.py +157 -0
- rapidata/api_client/models/rapid_model_paged_result.py +105 -0
- rapidata/api_client/models/rapid_model_referee.py +154 -0
- rapidata/api_client/models/rapid_result_model.py +7 -7
- rapidata/api_client/models/rapid_skipped_model.py +5 -5
- rapidata/api_client/models/rapid_state.py +3 -2
- rapidata/api_client/models/read_bridge_token_keys_result.py +10 -24
- rapidata/api_client/models/reference_asset_input.py +100 -0
- rapidata/api_client/models/report_model.py +9 -15
- rapidata/api_client/models/response_count_filter.py +103 -0
- rapidata/api_client/models/response_count_user_filter_model.py +2 -8
- rapidata/api_client/models/retrieval_mode.py +2 -2
- rapidata/api_client/models/root_filter.py +5 -14
- rapidata/api_client/models/run_status.py +39 -0
- rapidata/api_client/models/runs_by_leaderboard_result.py +104 -0
- rapidata/api_client/models/runs_by_leaderboard_result_paged_result.py +105 -0
- rapidata/api_client/models/sample_by_identifier.py +125 -0
- rapidata/api_client/models/sample_by_identifier_paged_result.py +105 -0
- rapidata/api_client/models/sample_by_participant.py +121 -0
- rapidata/api_client/models/sample_by_participant_paged_result.py +105 -0
- rapidata/api_client/models/scrub_range.py +2 -2
- rapidata/api_client/models/send_survey_model.py +87 -0
- rapidata/api_client/models/simple_workflow_config.py +15 -7
- rapidata/api_client/models/simple_workflow_config_blueprint.py +37 -23
- rapidata/api_client/models/simple_workflow_config_model.py +11 -3
- rapidata/api_client/models/simple_workflow_model.py +14 -4
- rapidata/api_client/models/simple_workflow_model1.py +4 -11
- rapidata/api_client/models/simple_workflow_model_blueprint.py +1 -1
- rapidata/api_client/models/sort_criterion.py +5 -11
- rapidata/api_client/models/sort_direction.py +2 -2
- rapidata/api_client/models/source_url_metadata.py +12 -1
- rapidata/api_client/models/standing_by_benchmark.py +113 -0
- rapidata/api_client/models/standing_by_leaderboard.py +113 -0
- rapidata/api_client/models/standing_by_leaderboard_paged_result.py +105 -0
- rapidata/api_client/models/standing_status.py +38 -0
- rapidata/api_client/models/standings_by_benchmark_result.py +95 -0
- rapidata/api_client/models/standings_by_leaderboard_result.py +95 -0
- rapidata/api_client/models/start_preliminary_download_result.py +87 -0
- rapidata/api_client/models/sticky_state.py +3 -2
- rapidata/api_client/models/stream_file_wrapper.py +138 -0
- rapidata/api_client/models/streams_metadata.py +113 -0
- rapidata/api_client/models/streams_metadata_model.py +100 -0
- rapidata/api_client/models/string_segment.py +105 -0
- rapidata/api_client/models/submit_coco_model.py +1 -3
- rapidata/api_client/models/submit_order_model.py +92 -0
- rapidata/api_client/models/submit_participant_result.py +89 -0
- rapidata/api_client/models/submit_prompt_model.py +107 -0
- rapidata/api_client/models/submit_prompt_model_prompt_asset.py +202 -0
- rapidata/api_client/models/tags_by_benchmark_result.py +87 -0
- rapidata/api_client/models/text_asset.py +15 -10
- rapidata/api_client/models/text_asset_input.py +120 -0
- rapidata/api_client/models/text_metadata.py +18 -2
- rapidata/api_client/models/text_metadata_input.py +111 -0
- rapidata/api_client/models/text_metadata_model.py +7 -2
- rapidata/api_client/models/transcription_metadata.py +9 -1
- rapidata/api_client/models/transcription_metadata_input.py +2 -2
- rapidata/api_client/models/transcription_word.py +2 -2
- rapidata/api_client/models/translated_string.py +2 -2
- rapidata/api_client/models/unlock_order_result.py +2 -2
- rapidata/api_client/models/update_access_model.py +1 -1
- rapidata/api_client/models/update_audience_request.py +113 -0
- rapidata/api_client/models/update_benchmark_model.py +99 -0
- rapidata/api_client/models/update_benchmark_name_model.py +87 -0
- rapidata/api_client/models/update_campaign_model.py +11 -11
- rapidata/api_client/models/update_dataset_name_model.py +5 -5
- rapidata/api_client/models/update_dimensions_model.py +3 -3
- rapidata/api_client/models/update_job_definition_endpoint_input.py +92 -0
- rapidata/api_client/models/update_job_endpoint_input.py +92 -0
- rapidata/api_client/models/update_leaderboard_model.py +106 -0
- rapidata/api_client/models/update_leaderboard_name_model.py +87 -0
- rapidata/api_client/models/update_leaderboard_response_config_model.py +89 -0
- rapidata/api_client/models/update_order_name_model.py +5 -5
- rapidata/api_client/models/update_participant_model.py +92 -0
- rapidata/api_client/models/update_participant_name_model.py +87 -0
- rapidata/api_client/models/update_priority_model.py +87 -0
- rapidata/api_client/models/update_prompt_tags_model.py +87 -0
- rapidata/api_client/models/update_should_alert_model.py +87 -0
- rapidata/api_client/models/update_validation_rapid_model.py +28 -12
- rapidata/api_client/models/update_validation_rapid_model_context_asset.py +160 -0
- rapidata/api_client/models/update_validation_rapid_model_truth.py +26 -12
- rapidata/api_client/models/update_validation_set_model.py +120 -0
- rapidata/api_client/models/upload_asset_result.py +102 -0
- rapidata/api_client/models/upload_file_from_url_result.py +87 -0
- rapidata/api_client/models/upload_file_result.py +87 -0
- rapidata/api_client/models/upload_files_from_s3_bucket_model.py +12 -2
- rapidata/api_client/models/upload_text_sources_to_dataset_model.py +3 -3
- rapidata/api_client/models/url_asset_input.py +100 -0
- rapidata/api_client/models/user_action_restriction.py +37 -0
- rapidata/api_client/models/user_action_restriction_filter.py +101 -0
- rapidata/api_client/models/user_score_filter.py +102 -0
- rapidata/api_client/models/user_state.py +38 -0
- rapidata/api_client/models/user_state_filter.py +101 -0
- rapidata/api_client/models/validation_chance.py +20 -3
- rapidata/api_client/models/validation_problem_details.py +117 -0
- rapidata/api_client/models/validation_set_model.py +39 -5
- rapidata/api_client/models/validation_set_overview_model.py +2 -2
- rapidata/api_client/models/validation_set_validation_set_id_rapid_post_payload_parameter.py +252 -0
- rapidata/api_client/models/validation_set_validation_set_id_rapid_post_truth_parameter.py +280 -0
- rapidata/api_client/models/validation_set_zip_post_request_blueprint.py +252 -0
- rapidata/api_client/models/video_duration_metadata.py +109 -0
- rapidata/api_client/models/video_duration_metadata_model.py +96 -0
- rapidata/api_client/models/vote_matrix_result.py +91 -0
- rapidata/api_client/models/workflow_aggregation_step_model.py +3 -12
- rapidata/api_client/models/workflow_config_artifact_model_workflow_config.py +23 -9
- rapidata/api_client/models/workflow_state.py +2 -2
- rapidata/api_client/models/zip_entry_file_wrapper.py +151 -0
- rapidata/api_client/rest.py +2 -2
- rapidata/api_client_README.md +469 -309
- rapidata/rapidata_client/__init__.py +23 -22
- rapidata/rapidata_client/api/rapidata_api_client.py +253 -0
- rapidata/rapidata_client/audience/__init__.py +2 -0
- rapidata/rapidata_client/audience/audience_example_handler.py +168 -0
- rapidata/rapidata_client/audience/rapidata_audience.py +287 -0
- rapidata/rapidata_client/audience/rapidata_audience_manager.py +162 -0
- rapidata/rapidata_client/benchmark/__init__.py +0 -0
- rapidata/rapidata_client/benchmark/_detail_mapper.py +34 -0
- rapidata/rapidata_client/benchmark/leaderboard/__init__.py +0 -0
- rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py +257 -0
- rapidata/rapidata_client/benchmark/participant/__init__.py +0 -0
- rapidata/rapidata_client/benchmark/participant/_participant.py +146 -0
- rapidata/rapidata_client/benchmark/rapidata_benchmark.py +592 -0
- rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +216 -0
- rapidata/rapidata_client/config/__init__.py +4 -0
- rapidata/rapidata_client/config/logger.py +135 -0
- rapidata/rapidata_client/config/logging_config.py +55 -0
- rapidata/rapidata_client/config/managed_print.py +6 -0
- rapidata/rapidata_client/config/order_config.py +14 -0
- rapidata/rapidata_client/config/rapidata_config.py +36 -0
- rapidata/rapidata_client/config/tracer.py +184 -0
- rapidata/rapidata_client/config/upload_config.py +64 -0
- rapidata/rapidata_client/datapoints/__init__.py +8 -0
- rapidata/rapidata_client/datapoints/_asset_uploader.py +194 -0
- rapidata/rapidata_client/datapoints/_datapoint.py +92 -0
- rapidata/rapidata_client/datapoints/_datapoint_uploader.py +47 -0
- rapidata/rapidata_client/datapoints/_datapoints_validator.py +70 -0
- rapidata/rapidata_client/datapoints/_single_flight_cache.py +82 -0
- rapidata/rapidata_client/datapoints/assets/__init__.py +0 -0
- rapidata/rapidata_client/datapoints/assets/constants.py +7 -0
- rapidata/rapidata_client/{metadata → datapoints/metadata}/__init__.py +1 -1
- rapidata/rapidata_client/datapoints/metadata/_private_text_metadata.py +16 -0
- rapidata/rapidata_client/datapoints/metadata/_prompt_identifier_metadata.py +14 -0
- rapidata/rapidata_client/datapoints/metadata/_public_text_metadata.py +16 -0
- rapidata/rapidata_client/{metadata → datapoints/metadata}/_select_words_metadata.py +4 -5
- rapidata/rapidata_client/dataset/__init__.py +1 -0
- rapidata/rapidata_client/dataset/_rapidata_dataset.py +55 -0
- rapidata/rapidata_client/demographic/demographic_manager.py +44 -19
- rapidata/rapidata_client/exceptions/__init__.py +1 -0
- rapidata/rapidata_client/exceptions/failed_upload_exception.py +27 -0
- rapidata/rapidata_client/filter/__init__.py +3 -0
- rapidata/rapidata_client/filter/_backend_filter_mapper.py +134 -0
- rapidata/rapidata_client/filter/_base_filter.py +58 -2
- rapidata/rapidata_client/filter/age_filter.py +26 -10
- rapidata/rapidata_client/filter/and_filter.py +55 -0
- rapidata/rapidata_client/filter/campaign_filter.py +21 -10
- rapidata/rapidata_client/filter/country_filter.py +46 -12
- rapidata/rapidata_client/filter/custom_filter.py +25 -12
- rapidata/rapidata_client/filter/device_filter.py +38 -0
- rapidata/rapidata_client/filter/gender_filter.py +25 -10
- rapidata/rapidata_client/filter/language_filter.py +51 -21
- rapidata/rapidata_client/filter/models/age_group.py +14 -12
- rapidata/rapidata_client/filter/models/device_type.py +20 -0
- rapidata/rapidata_client/filter/models/gender.py +12 -8
- rapidata/rapidata_client/filter/new_user_filter.py +14 -4
- rapidata/rapidata_client/filter/not_filter.py +35 -11
- rapidata/rapidata_client/filter/or_filter.py +36 -11
- rapidata/rapidata_client/filter/rapidata_filters.py +30 -25
- rapidata/rapidata_client/filter/response_count_filter.py +51 -20
- rapidata/rapidata_client/filter/user_score_filter.py +62 -24
- rapidata/rapidata_client/job/__init__.py +3 -0
- rapidata/rapidata_client/job/job_definition.py +110 -0
- rapidata/rapidata_client/job/job_manager.py +758 -0
- rapidata/rapidata_client/job/rapidata_job.py +326 -0
- rapidata/rapidata_client/order/__init__.py +2 -0
- rapidata/rapidata_client/order/_rapidata_order_builder.py +286 -193
- rapidata/rapidata_client/order/rapidata_order.py +329 -153
- rapidata/rapidata_client/order/rapidata_order_manager.py +722 -420
- rapidata/rapidata_client/rapidata_client.py +130 -26
- rapidata/rapidata_client/referee/__init__.py +1 -1
- rapidata/rapidata_client/referee/_base_referee.py +14 -3
- rapidata/rapidata_client/referee/_early_stopping_referee.py +32 -17
- rapidata/rapidata_client/referee/_naive_referee.py +24 -3
- rapidata/rapidata_client/results/__init__.py +3 -0
- rapidata/rapidata_client/{order → results}/rapidata_results.py +98 -67
- rapidata/rapidata_client/selection/__init__.py +2 -1
- rapidata/rapidata_client/selection/_base_selection.py +9 -2
- rapidata/rapidata_client/selection/ab_test_selection.py +28 -20
- rapidata/rapidata_client/selection/capped_selection.py +23 -16
- rapidata/rapidata_client/selection/conditional_validation_selection.py +43 -24
- rapidata/rapidata_client/selection/demographic_selection.py +21 -6
- rapidata/rapidata_client/selection/effort_selection.py +49 -0
- rapidata/rapidata_client/selection/labeling_selection.py +36 -12
- rapidata/rapidata_client/selection/{retrieval_modes.py → rapidata_retrieval_modes.py} +10 -7
- rapidata/rapidata_client/selection/rapidata_selections.py +31 -21
- rapidata/rapidata_client/selection/shuffling_selection.py +21 -13
- rapidata/rapidata_client/selection/static_selection.py +20 -9
- rapidata/rapidata_client/selection/validation_selection.py +20 -4
- rapidata/rapidata_client/settings/__init__.py +4 -1
- rapidata/rapidata_client/settings/_rapidata_setting.py +22 -3
- rapidata/rapidata_client/settings/alert_on_fast_response.py +8 -5
- rapidata/rapidata_client/settings/allow_neither_both.py +17 -0
- rapidata/rapidata_client/settings/custom_setting.py +3 -2
- rapidata/rapidata_client/settings/free_text_minimum_characters.py +9 -4
- rapidata/rapidata_client/settings/models/translation_behaviour_options.py +3 -2
- rapidata/rapidata_client/settings/mute_video.py +15 -0
- rapidata/rapidata_client/settings/no_shuffle.py +4 -2
- rapidata/rapidata_client/settings/play_video_until_the_end.py +7 -4
- rapidata/rapidata_client/settings/rapidata_settings.py +28 -16
- rapidata/rapidata_client/settings/swap_context_instruction.py +20 -0
- rapidata/rapidata_client/settings/translation_behaviour.py +7 -5
- rapidata/rapidata_client/utils/__init__.py +3 -0
- rapidata/rapidata_client/utils/threaded_uploader.py +153 -0
- rapidata/rapidata_client/validation/__init__.py +2 -0
- rapidata/rapidata_client/validation/rapidata_validation_set.py +106 -12
- rapidata/rapidata_client/validation/rapids/__init__.py +2 -0
- rapidata/rapidata_client/validation/rapids/_validation_rapid_uploader.py +48 -0
- rapidata/rapidata_client/validation/rapids/box.py +37 -12
- rapidata/rapidata_client/validation/rapids/rapids.py +29 -104
- rapidata/rapidata_client/validation/rapids/rapids_manager.py +371 -214
- rapidata/rapidata_client/validation/validation_set_manager.py +529 -227
- rapidata/rapidata_client/workflow/__init__.py +2 -2
- rapidata/rapidata_client/workflow/_base_workflow.py +25 -7
- rapidata/rapidata_client/workflow/_classify_workflow.py +58 -15
- rapidata/rapidata_client/workflow/_compare_workflow.py +44 -9
- rapidata/rapidata_client/workflow/_draw_workflow.py +40 -10
- rapidata/rapidata_client/workflow/_evaluation_workflow.py +28 -7
- rapidata/rapidata_client/workflow/_free_text_workflow.py +46 -9
- rapidata/rapidata_client/workflow/_locate_workflow.py +40 -10
- rapidata/rapidata_client/workflow/_multi_ranking_workflow.py +90 -0
- rapidata/rapidata_client/workflow/_select_words_workflow.py +51 -11
- rapidata/rapidata_client/workflow/_timestamp_workflow.py +42 -11
- rapidata/service/__init__.py +0 -1
- rapidata/service/credential_manager.py +18 -18
- rapidata/service/openapi_service.py +128 -28
- rapidata/types/__init__.py +149 -0
- rapidata-3.0.1.dist-info/METADATA +32 -0
- rapidata-3.0.1.dist-info/RECORD +1089 -0
- {rapidata-2.23.2.dist-info → rapidata-3.0.1.dist-info}/WHEEL +1 -1
- rapidata/rapidata_client/api/rapidata_exception.py +0 -107
- rapidata/rapidata_client/assets/__init__.py +0 -10
- rapidata/rapidata_client/assets/_base_asset.py +0 -11
- rapidata/rapidata_client/assets/_media_asset.py +0 -306
- rapidata/rapidata_client/assets/_multi_asset.py +0 -66
- rapidata/rapidata_client/assets/_sessions.py +0 -35
- rapidata/rapidata_client/assets/_text_asset.py +0 -34
- rapidata/rapidata_client/assets/data_type_enum.py +0 -7
- rapidata/rapidata_client/country_codes/__init__.py +0 -1
- rapidata/rapidata_client/country_codes/country_codes.py +0 -19
- rapidata/rapidata_client/logging/__init__.py +0 -2
- rapidata/rapidata_client/logging/logger.py +0 -47
- rapidata/rapidata_client/logging/output_manager.py +0 -16
- rapidata/rapidata_client/metadata/_private_text_metadata.py +0 -17
- rapidata/rapidata_client/metadata/_prompt_metadata.py +0 -18
- rapidata/rapidata_client/metadata/_public_text_metadata.py +0 -17
- rapidata/rapidata_client/order/_rapidata_dataset.py +0 -443
- rapidata/rapidata_client/workflow/_ranking_workflow.py +0 -51
- rapidata/service/local_file_service.py +0 -25
- rapidata-2.23.2.dist-info/METADATA +0 -34
- rapidata-2.23.2.dist-info/RECORD +0 -523
- /rapidata/rapidata_client/{metadata → datapoints/metadata}/_base_metadata.py +0 -0
- {rapidata-2.23.2.dist-info → rapidata-3.0.1.dist-info/licenses}/LICENSE +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
from typing import Callable
|
|
3
|
+
from pydantic import BaseModel, Field, field_validator
|
|
4
|
+
from rapidata.rapidata_client.config import logger
|
|
5
|
+
|
|
6
|
+
# Type alias for config update handlers
|
|
7
|
+
UploadConfigUpdateHandler = Callable[["UploadConfig"], None]
|
|
8
|
+
|
|
9
|
+
# Global list to store registered handlers
|
|
10
|
+
_upload_config_handlers: list[UploadConfigUpdateHandler] = []
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def register_upload_config_handler(handler: UploadConfigUpdateHandler) -> None:
|
|
14
|
+
"""Register a handler to be called when the upload configuration updates."""
|
|
15
|
+
_upload_config_handlers.append(handler)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def unregister_upload_config_handler(handler: UploadConfigUpdateHandler) -> None:
|
|
19
|
+
"""Unregister a previously registered handler."""
|
|
20
|
+
if handler in _upload_config_handlers:
|
|
21
|
+
_upload_config_handlers.remove(handler)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class UploadConfig(BaseModel):
|
|
25
|
+
"""
|
|
26
|
+
Holds the configuration for the upload process.
|
|
27
|
+
|
|
28
|
+
Attributes:
|
|
29
|
+
maxWorkers (int): The maximum number of worker threads for processing media paths. Defaults to 25.
|
|
30
|
+
maxRetries (int): The maximum number of retries for failed uploads. Defaults to 3.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
maxWorkers: int = Field(default=25)
|
|
34
|
+
maxRetries: int = Field(default=3)
|
|
35
|
+
cacheUploads: bool = Field(default=True)
|
|
36
|
+
cacheTimeout: float = Field(default=0.1)
|
|
37
|
+
cacheLocation: Path = Field(default=Path.home() / ".rapidata" / "upload_cache")
|
|
38
|
+
cacheSizeLimit: int = Field(default=100_000_000) # 100MB
|
|
39
|
+
|
|
40
|
+
@field_validator("maxWorkers")
|
|
41
|
+
@classmethod
|
|
42
|
+
def validate_max_workers(cls, v: int) -> int:
|
|
43
|
+
if v > 200:
|
|
44
|
+
logger.warning(
|
|
45
|
+
f"maxWorkers is set to {v}, which is above the recommended limit of 200. "
|
|
46
|
+
"This may lead to suboptimal performance due to connection pool constraints."
|
|
47
|
+
)
|
|
48
|
+
return v
|
|
49
|
+
|
|
50
|
+
def __init__(self, **kwargs):
|
|
51
|
+
super().__init__(**kwargs)
|
|
52
|
+
self._notify_handlers()
|
|
53
|
+
|
|
54
|
+
def __setattr__(self, name: str, value) -> None:
|
|
55
|
+
super().__setattr__(name, value)
|
|
56
|
+
self._notify_handlers()
|
|
57
|
+
|
|
58
|
+
def _notify_handlers(self) -> None:
|
|
59
|
+
"""Notify all registered handlers that the configuration has updated."""
|
|
60
|
+
for handler in _upload_config_handlers:
|
|
61
|
+
try:
|
|
62
|
+
handler(self)
|
|
63
|
+
except Exception as e:
|
|
64
|
+
logger.warning(f"Warning: UploadConfig handler failed: {e}")
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import re
|
|
4
|
+
import os
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
6
|
+
|
|
7
|
+
from rapidata.rapidata_client.config.upload_config import (
|
|
8
|
+
register_upload_config_handler,
|
|
9
|
+
UploadConfig,
|
|
10
|
+
)
|
|
11
|
+
from rapidata.service.openapi_service import OpenAPIService
|
|
12
|
+
from rapidata.rapidata_client.config import logger, rapidata_config, tracer
|
|
13
|
+
from rapidata.rapidata_client.datapoints._single_flight_cache import SingleFlightCache
|
|
14
|
+
from diskcache import FanoutCache
|
|
15
|
+
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
from rapidata.api_client.models.i_asset_input import IAssetInput
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class AssetUploader:
|
|
21
|
+
_file_cache: SingleFlightCache = SingleFlightCache(
|
|
22
|
+
"File cache",
|
|
23
|
+
storage=FanoutCache(
|
|
24
|
+
rapidata_config.upload.cacheLocation,
|
|
25
|
+
shards=rapidata_config.upload.maxWorkers,
|
|
26
|
+
timeout=rapidata_config.upload.cacheTimeout,
|
|
27
|
+
size_limit=rapidata_config.upload.cacheSizeLimit,
|
|
28
|
+
),
|
|
29
|
+
)
|
|
30
|
+
_url_cache: SingleFlightCache = SingleFlightCache("URL cache")
|
|
31
|
+
|
|
32
|
+
def __init__(self, openapi_service: OpenAPIService):
|
|
33
|
+
self.openapi_service = openapi_service
|
|
34
|
+
register_upload_config_handler(self._handle_config_update)
|
|
35
|
+
|
|
36
|
+
@classmethod
|
|
37
|
+
def _handle_config_update(cls, config: UploadConfig):
|
|
38
|
+
"""Handle updates to the upload config by re-creating the file cache storage."""
|
|
39
|
+
logger.debug("Updating AssetUploader file cache with new config")
|
|
40
|
+
try:
|
|
41
|
+
cls._file_cache.set_storage(
|
|
42
|
+
FanoutCache(
|
|
43
|
+
config.cacheLocation,
|
|
44
|
+
shards=config.maxWorkers,
|
|
45
|
+
timeout=config.cacheTimeout,
|
|
46
|
+
size_limit=config.cacheSizeLimit,
|
|
47
|
+
)
|
|
48
|
+
)
|
|
49
|
+
logger.info(
|
|
50
|
+
"AssetUploader file cache updated: location=%s, shards=%s, timeout=%s, size_limit=%s",
|
|
51
|
+
config.cacheLocation,
|
|
52
|
+
config.maxWorkers,
|
|
53
|
+
config.cacheTimeout,
|
|
54
|
+
config.cacheSizeLimit,
|
|
55
|
+
)
|
|
56
|
+
except Exception as e:
|
|
57
|
+
logger.warning(f"Failed to update AssetUploader file cache: {e}")
|
|
58
|
+
|
|
59
|
+
def _get_file_cache_key(self, asset: str) -> str:
|
|
60
|
+
"""Generate cache key for a file, including environment."""
|
|
61
|
+
env = self.openapi_service.environment
|
|
62
|
+
if not os.path.exists(asset):
|
|
63
|
+
raise FileNotFoundError(f"File not found: {asset}")
|
|
64
|
+
|
|
65
|
+
stat = os.stat(asset)
|
|
66
|
+
return f"{env}@{asset}:{stat.st_size}:{stat.st_mtime_ns}"
|
|
67
|
+
|
|
68
|
+
def _get_url_cache_key(self, url: str) -> str:
|
|
69
|
+
"""Generate cache key for a URL, including environment."""
|
|
70
|
+
env = self.openapi_service.environment
|
|
71
|
+
return f"{env}@{url}"
|
|
72
|
+
|
|
73
|
+
def _upload_url_asset(self, url: str) -> str:
|
|
74
|
+
"""Upload a URL asset, with optional caching."""
|
|
75
|
+
|
|
76
|
+
def upload_url() -> str:
|
|
77
|
+
response = self.openapi_service.asset_api.asset_url_post(url=url)
|
|
78
|
+
logger.info(
|
|
79
|
+
"Asset uploaded from URL: %s, file name: %s", url, response.file_name
|
|
80
|
+
)
|
|
81
|
+
return response.file_name
|
|
82
|
+
|
|
83
|
+
if not rapidata_config.upload.cacheUploads:
|
|
84
|
+
return upload_url()
|
|
85
|
+
|
|
86
|
+
return self._url_cache.get_or_fetch(
|
|
87
|
+
self._get_url_cache_key(url),
|
|
88
|
+
upload_url,
|
|
89
|
+
should_cache=rapidata_config.upload.cacheUploads,
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
def _upload_file_asset(self, file_path: str) -> str:
|
|
93
|
+
"""Upload a local file asset, with optional caching."""
|
|
94
|
+
|
|
95
|
+
def upload_file() -> str:
|
|
96
|
+
response = self.openapi_service.asset_api.asset_file_post(file=file_path)
|
|
97
|
+
logger.info(
|
|
98
|
+
"Asset uploaded from file: %s, file name: %s",
|
|
99
|
+
file_path,
|
|
100
|
+
response.file_name,
|
|
101
|
+
)
|
|
102
|
+
return response.file_name
|
|
103
|
+
|
|
104
|
+
if not rapidata_config.upload.cacheUploads:
|
|
105
|
+
return upload_file()
|
|
106
|
+
|
|
107
|
+
return self._file_cache.get_or_fetch(
|
|
108
|
+
self._get_file_cache_key(file_path),
|
|
109
|
+
upload_file,
|
|
110
|
+
should_cache=rapidata_config.upload.cacheUploads,
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
def upload_asset(self, asset: str) -> str:
|
|
114
|
+
with tracer.start_as_current_span("AssetUploader.upload_asset"):
|
|
115
|
+
logger.debug("Uploading asset: %s", asset)
|
|
116
|
+
assert isinstance(asset, str), "Asset must be a string"
|
|
117
|
+
|
|
118
|
+
if re.match(r"^https?://", asset):
|
|
119
|
+
return self._upload_url_asset(asset)
|
|
120
|
+
|
|
121
|
+
return self._upload_file_asset(asset)
|
|
122
|
+
|
|
123
|
+
def get_uploaded_text_input(self, assets: list[str] | str) -> IAssetInput:
|
|
124
|
+
from rapidata.api_client.models.i_asset_input import IAssetInput
|
|
125
|
+
from rapidata.api_client.models.i_asset_input_text_asset_input import (
|
|
126
|
+
IAssetInputTextAssetInput,
|
|
127
|
+
)
|
|
128
|
+
from rapidata.api_client.models.i_asset_input_multi_asset_input import (
|
|
129
|
+
IAssetInputMultiAssetInput,
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
if isinstance(assets, list):
|
|
133
|
+
return IAssetInput(
|
|
134
|
+
actual_instance=IAssetInputMultiAssetInput(
|
|
135
|
+
_t="MultiAssetInput",
|
|
136
|
+
assets=[
|
|
137
|
+
IAssetInput(
|
|
138
|
+
actual_instance=IAssetInputTextAssetInput(
|
|
139
|
+
_t="TextAssetInput", text=asset
|
|
140
|
+
)
|
|
141
|
+
)
|
|
142
|
+
for asset in assets
|
|
143
|
+
],
|
|
144
|
+
)
|
|
145
|
+
)
|
|
146
|
+
else:
|
|
147
|
+
return IAssetInput(
|
|
148
|
+
actual_instance=IAssetInputTextAssetInput(
|
|
149
|
+
_t="TextAssetInput", text=assets
|
|
150
|
+
)
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
def get_uploaded_asset_input(self, assets: list[str] | str) -> IAssetInput:
|
|
154
|
+
from rapidata.api_client.models.i_asset_input import IAssetInput
|
|
155
|
+
from rapidata.api_client.models.i_asset_input_existing_asset_input import (
|
|
156
|
+
IAssetInputExistingAssetInput,
|
|
157
|
+
)
|
|
158
|
+
from rapidata.api_client.models.i_asset_input_multi_asset_input import (
|
|
159
|
+
IAssetInputMultiAssetInput,
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
if isinstance(assets, list):
|
|
163
|
+
return IAssetInput(
|
|
164
|
+
actual_instance=IAssetInputMultiAssetInput(
|
|
165
|
+
_t="MultiAssetInput",
|
|
166
|
+
assets=[
|
|
167
|
+
IAssetInput(
|
|
168
|
+
actual_instance=IAssetInputExistingAssetInput(
|
|
169
|
+
_t="ExistingAssetInput",
|
|
170
|
+
name=self.upload_asset(asset),
|
|
171
|
+
)
|
|
172
|
+
)
|
|
173
|
+
for asset in assets
|
|
174
|
+
],
|
|
175
|
+
)
|
|
176
|
+
)
|
|
177
|
+
else:
|
|
178
|
+
return IAssetInput(
|
|
179
|
+
actual_instance=IAssetInputExistingAssetInput(
|
|
180
|
+
_t="ExistingAssetInput",
|
|
181
|
+
name=self.upload_asset(assets),
|
|
182
|
+
)
|
|
183
|
+
)
|
|
184
|
+
|
|
185
|
+
def clear_cache(self):
|
|
186
|
+
self._file_cache.clear()
|
|
187
|
+
self._url_cache.clear()
|
|
188
|
+
logger.info("Upload cache cleared")
|
|
189
|
+
|
|
190
|
+
def __str__(self) -> str:
|
|
191
|
+
return f"AssetUploader(openapi_service={self.openapi_service})"
|
|
192
|
+
|
|
193
|
+
def __repr__(self) -> str:
|
|
194
|
+
return f"AssetUploader(openapi_service={self.openapi_service})"
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Literal, TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from pydantic import BaseModel, model_validator, field_validator
|
|
6
|
+
from typing_extensions import Self
|
|
7
|
+
from rapidata.rapidata_client.datapoints.assets.constants import (
|
|
8
|
+
ALLOWED_VIDEO_EXTENSIONS,
|
|
9
|
+
ALLOWED_IMAGE_EXTENSIONS,
|
|
10
|
+
ALLOWED_AUDIO_EXTENSIONS,
|
|
11
|
+
)
|
|
12
|
+
from rapidata.rapidata_client.config import logger
|
|
13
|
+
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from rapidata.api_client.models.asset_type import AssetType
|
|
16
|
+
from rapidata.api_client.models.prompt_type import PromptType
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class Datapoint(BaseModel):
|
|
20
|
+
asset: str | list[str]
|
|
21
|
+
data_type: Literal["text", "media"]
|
|
22
|
+
context: str | None = None
|
|
23
|
+
media_context: str | None = None
|
|
24
|
+
sentence: str | None = None
|
|
25
|
+
private_note: str | None = None
|
|
26
|
+
group: str | None = None
|
|
27
|
+
|
|
28
|
+
@field_validator("context")
|
|
29
|
+
@classmethod
|
|
30
|
+
def context_not_empty(cls, v: str | None) -> str | None:
|
|
31
|
+
if v is not None and v == "":
|
|
32
|
+
raise ValueError(
|
|
33
|
+
"context cannot be an empty string. If not needed, set to None."
|
|
34
|
+
)
|
|
35
|
+
return v
|
|
36
|
+
|
|
37
|
+
@field_validator("media_context")
|
|
38
|
+
@classmethod
|
|
39
|
+
def media_context_not_empty(cls, v: str | None) -> str | None:
|
|
40
|
+
if v is not None and v == "":
|
|
41
|
+
raise ValueError(
|
|
42
|
+
"media_context cannot be an empty string. If not needed, set to None."
|
|
43
|
+
)
|
|
44
|
+
return v
|
|
45
|
+
|
|
46
|
+
@field_validator("sentence")
|
|
47
|
+
@classmethod
|
|
48
|
+
def sentence_has_space(cls, v: str | None) -> str | None:
|
|
49
|
+
if v is not None and len(v.split()) <= 1:
|
|
50
|
+
raise ValueError("sentence must contain at least two words.")
|
|
51
|
+
return v
|
|
52
|
+
|
|
53
|
+
@model_validator(mode="after")
|
|
54
|
+
def check_sentence_and_context(self) -> Self:
|
|
55
|
+
if isinstance(self.sentence, str) and isinstance(self.context, str):
|
|
56
|
+
raise ValueError(
|
|
57
|
+
"Both 'sentence' and 'context' cannot be strings at the same time."
|
|
58
|
+
)
|
|
59
|
+
return self
|
|
60
|
+
|
|
61
|
+
def get_asset_type(self) -> AssetType:
|
|
62
|
+
from rapidata.api_client.models.asset_type import AssetType
|
|
63
|
+
|
|
64
|
+
if self.data_type == "text":
|
|
65
|
+
return AssetType.TEXT
|
|
66
|
+
|
|
67
|
+
evaluation_asset = self.asset[0] if isinstance(self.asset, list) else self.asset
|
|
68
|
+
if any(evaluation_asset.endswith(ext) for ext in ALLOWED_IMAGE_EXTENSIONS):
|
|
69
|
+
return AssetType.IMAGE
|
|
70
|
+
elif any(evaluation_asset.endswith(ext) for ext in ALLOWED_VIDEO_EXTENSIONS):
|
|
71
|
+
return AssetType.VIDEO
|
|
72
|
+
elif any(evaluation_asset.endswith(ext) for ext in ALLOWED_AUDIO_EXTENSIONS):
|
|
73
|
+
return AssetType.AUDIO
|
|
74
|
+
else:
|
|
75
|
+
logger.debug(
|
|
76
|
+
f"Cannot get asset type for asset type: {type(evaluation_asset)}"
|
|
77
|
+
)
|
|
78
|
+
return AssetType.NONE
|
|
79
|
+
|
|
80
|
+
def get_prompt_type(self) -> list[PromptType]:
|
|
81
|
+
from rapidata.api_client.models.prompt_type import PromptType
|
|
82
|
+
|
|
83
|
+
prompt_types = []
|
|
84
|
+
if self.context:
|
|
85
|
+
prompt_types.append(PromptType.TEXT)
|
|
86
|
+
if self.media_context:
|
|
87
|
+
prompt_types.append(PromptType.ASSET)
|
|
88
|
+
|
|
89
|
+
if len(prompt_types) == 0:
|
|
90
|
+
return [PromptType.NONE]
|
|
91
|
+
|
|
92
|
+
return prompt_types
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
from rapidata.rapidata_client.datapoints._datapoint import Datapoint
|
|
6
|
+
from rapidata.service.openapi_service import OpenAPIService
|
|
7
|
+
from rapidata.rapidata_client.datapoints._asset_uploader import AssetUploader
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from rapidata.api_client.models.create_datapoint_result import CreateDatapointResult
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class DatapointUploader:
|
|
14
|
+
def __init__(self, openapi_service: OpenAPIService):
|
|
15
|
+
self.openapi_service = openapi_service
|
|
16
|
+
self.asset_uploader = AssetUploader(openapi_service)
|
|
17
|
+
|
|
18
|
+
def upload_datapoint(
|
|
19
|
+
self, datapoint: Datapoint, dataset_id: str, index: int
|
|
20
|
+
) -> CreateDatapointResult:
|
|
21
|
+
from rapidata.api_client.models.create_datapoint_model import (
|
|
22
|
+
CreateDatapointModel,
|
|
23
|
+
)
|
|
24
|
+
from rapidata.api_client.models.i_asset_input import IAssetInput
|
|
25
|
+
|
|
26
|
+
uploaded_asset: IAssetInput = (
|
|
27
|
+
self.asset_uploader.get_uploaded_asset_input(datapoint.asset)
|
|
28
|
+
if datapoint.data_type == "media"
|
|
29
|
+
else self.asset_uploader.get_uploaded_text_input(datapoint.asset)
|
|
30
|
+
)
|
|
31
|
+
return self.openapi_service.dataset_api.dataset_dataset_id_datapoint_post(
|
|
32
|
+
dataset_id=dataset_id,
|
|
33
|
+
create_datapoint_model=CreateDatapointModel(
|
|
34
|
+
asset=uploaded_asset,
|
|
35
|
+
context=datapoint.context,
|
|
36
|
+
contextAsset=(
|
|
37
|
+
self.asset_uploader.get_uploaded_asset_input(
|
|
38
|
+
datapoint.media_context
|
|
39
|
+
)
|
|
40
|
+
if datapoint.media_context
|
|
41
|
+
else None
|
|
42
|
+
),
|
|
43
|
+
transcription=datapoint.sentence,
|
|
44
|
+
sortIndex=index,
|
|
45
|
+
group=datapoint.group,
|
|
46
|
+
),
|
|
47
|
+
)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
from itertools import zip_longest
|
|
2
|
+
from typing import Literal, cast, Iterable
|
|
3
|
+
from rapidata.rapidata_client.datapoints._datapoint import Datapoint
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class DatapointsValidator:
|
|
7
|
+
@staticmethod
|
|
8
|
+
def validate_datapoints(
|
|
9
|
+
datapoints: list[str] | list[list[str]],
|
|
10
|
+
contexts: list[str] | None = None,
|
|
11
|
+
media_contexts: list[str] | None = None,
|
|
12
|
+
sentences: list[str] | None = None,
|
|
13
|
+
private_notes: list[str] | None = None,
|
|
14
|
+
groups: list[str] | None = None,
|
|
15
|
+
) -> None:
|
|
16
|
+
if contexts and len(contexts) != len(datapoints):
|
|
17
|
+
raise ValueError("Number of contexts must match number of datapoints")
|
|
18
|
+
if media_contexts and len(media_contexts) != len(datapoints):
|
|
19
|
+
raise ValueError("Number of media contexts must match number of datapoints")
|
|
20
|
+
if sentences and len(sentences) != len(datapoints):
|
|
21
|
+
raise ValueError("Number of sentences must match number of datapoints")
|
|
22
|
+
if private_notes and len(private_notes) != len(datapoints):
|
|
23
|
+
raise ValueError("Number of private notes must match number of datapoints")
|
|
24
|
+
if groups and (
|
|
25
|
+
len(groups) != len(datapoints) or len(groups) != len(set(groups))
|
|
26
|
+
):
|
|
27
|
+
raise ValueError(
|
|
28
|
+
"Number of groups must match number of datapoints and must be unique."
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
@staticmethod
|
|
32
|
+
def map_datapoints(
|
|
33
|
+
datapoints: list[str] | list[list[str]],
|
|
34
|
+
contexts: list[str] | None = None,
|
|
35
|
+
media_contexts: list[str] | None = None,
|
|
36
|
+
sentences: list[str] | None = None,
|
|
37
|
+
private_notes: list[str] | None = None,
|
|
38
|
+
groups: list[str] | None = None,
|
|
39
|
+
data_type: Literal["text", "media"] = "media",
|
|
40
|
+
) -> list[Datapoint]:
|
|
41
|
+
DatapointsValidator.validate_datapoints(
|
|
42
|
+
datapoints=datapoints,
|
|
43
|
+
contexts=contexts,
|
|
44
|
+
media_contexts=media_contexts,
|
|
45
|
+
sentences=sentences,
|
|
46
|
+
private_notes=private_notes,
|
|
47
|
+
groups=groups,
|
|
48
|
+
)
|
|
49
|
+
return [
|
|
50
|
+
Datapoint(
|
|
51
|
+
asset=asset,
|
|
52
|
+
data_type=data_type,
|
|
53
|
+
context=context,
|
|
54
|
+
media_context=media_context,
|
|
55
|
+
sentence=sentence,
|
|
56
|
+
private_note=private_note,
|
|
57
|
+
group=group,
|
|
58
|
+
)
|
|
59
|
+
for asset, context, media_context, sentence, private_note, group in cast(
|
|
60
|
+
"Iterable[tuple[str | list[str], str | None, str | None, str | None, str | None, str | None]]", # because iterator only supports 5 arguments with specific type casting
|
|
61
|
+
zip_longest(
|
|
62
|
+
datapoints,
|
|
63
|
+
contexts or [],
|
|
64
|
+
media_contexts or [],
|
|
65
|
+
sentences or [],
|
|
66
|
+
private_notes or [],
|
|
67
|
+
groups or [],
|
|
68
|
+
),
|
|
69
|
+
)
|
|
70
|
+
]
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import threading
|
|
2
|
+
from typing import Callable, cast
|
|
3
|
+
|
|
4
|
+
from diskcache import FanoutCache
|
|
5
|
+
from rapidata.rapidata_client.config import logger
|
|
6
|
+
|
|
7
|
+
from concurrent.futures import Future
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SingleFlightCache:
|
|
11
|
+
"""Cache with single-flight pattern to prevent duplicate concurrent fetches."""
|
|
12
|
+
|
|
13
|
+
def __init__(self, name: str, storage: dict[str, str] | FanoutCache | None = None):
|
|
14
|
+
self._name = name
|
|
15
|
+
self._storage: dict[str, str] | FanoutCache = (
|
|
16
|
+
storage if storage is not None else {}
|
|
17
|
+
)
|
|
18
|
+
self._in_flight: dict[str, Future[str]] = {}
|
|
19
|
+
self._lock = threading.Lock()
|
|
20
|
+
|
|
21
|
+
def set_storage(self, storage: dict[str, str] | FanoutCache) -> None:
|
|
22
|
+
"""Replace the cache storage."""
|
|
23
|
+
with self._lock:
|
|
24
|
+
old_storage = self._storage
|
|
25
|
+
self._storage = storage
|
|
26
|
+
if isinstance(old_storage, FanoutCache):
|
|
27
|
+
try:
|
|
28
|
+
old_storage.close()
|
|
29
|
+
except Exception:
|
|
30
|
+
pass
|
|
31
|
+
|
|
32
|
+
def get_or_fetch(
|
|
33
|
+
self,
|
|
34
|
+
key: str,
|
|
35
|
+
fetch_fn: Callable[[], str],
|
|
36
|
+
should_cache: bool = True,
|
|
37
|
+
) -> str:
|
|
38
|
+
"""Get value from cache or fetch it, preventing duplicate concurrent fetches."""
|
|
39
|
+
# Fast path - check cache without lock
|
|
40
|
+
cached = self._storage.get(key)
|
|
41
|
+
if cached is not None:
|
|
42
|
+
logger.debug("%s: cache hit", self._name)
|
|
43
|
+
return cast(str, cached)
|
|
44
|
+
|
|
45
|
+
with self._lock:
|
|
46
|
+
# Double-check cache under lock
|
|
47
|
+
cached = self._storage.get(key)
|
|
48
|
+
if cached is not None:
|
|
49
|
+
logger.debug("%s: cache hit", self._name)
|
|
50
|
+
return cast(str, cached)
|
|
51
|
+
|
|
52
|
+
# Check if there's an in-flight request
|
|
53
|
+
in_flight = self._in_flight.get(key)
|
|
54
|
+
if in_flight is None:
|
|
55
|
+
in_flight = Future()
|
|
56
|
+
self._in_flight[key] = in_flight
|
|
57
|
+
should_fetch = True
|
|
58
|
+
else:
|
|
59
|
+
should_fetch = False
|
|
60
|
+
|
|
61
|
+
if not should_fetch:
|
|
62
|
+
logger.debug("%s: waiting for in-flight request", self._name)
|
|
63
|
+
return in_flight.result()
|
|
64
|
+
|
|
65
|
+
# We need to fetch
|
|
66
|
+
try:
|
|
67
|
+
result = fetch_fn()
|
|
68
|
+
if should_cache:
|
|
69
|
+
self._storage[key] = result
|
|
70
|
+
logger.debug("%s: cached result", self._name)
|
|
71
|
+
in_flight.set_result(result)
|
|
72
|
+
return result
|
|
73
|
+
except Exception as e:
|
|
74
|
+
in_flight.set_exception(e)
|
|
75
|
+
raise
|
|
76
|
+
finally:
|
|
77
|
+
with self._lock:
|
|
78
|
+
self._in_flight.pop(key, None)
|
|
79
|
+
|
|
80
|
+
def clear(self) -> None:
|
|
81
|
+
"""Clear the cache."""
|
|
82
|
+
self._storage.clear()
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from ._base_metadata import Metadata
|
|
2
2
|
from ._private_text_metadata import PrivateTextMetadata
|
|
3
3
|
from ._public_text_metadata import PublicTextMetadata
|
|
4
|
-
from ._prompt_metadata import PromptMetadata
|
|
5
4
|
from ._select_words_metadata import SelectWordsMetadata
|
|
5
|
+
from ._prompt_identifier_metadata import PromptIdentifierMetadata
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from rapidata.api_client.models.private_text_metadata_input import (
|
|
2
|
+
PrivateTextMetadataInput,
|
|
3
|
+
)
|
|
4
|
+
from rapidata.rapidata_client.datapoints.metadata._base_metadata import Metadata
|
|
5
|
+
from pydantic import BaseModel
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class PrivateTextMetadata(Metadata, BaseModel):
|
|
9
|
+
|
|
10
|
+
text: str
|
|
11
|
+
identifier: str = "private_text"
|
|
12
|
+
|
|
13
|
+
def to_model(self):
|
|
14
|
+
return PrivateTextMetadataInput(
|
|
15
|
+
_t="PrivateTextMetadataInput", identifier=self.identifier, text=self.text
|
|
16
|
+
)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from rapidata.rapidata_client.datapoints.metadata._base_metadata import Metadata
|
|
2
|
+
from rapidata.api_client.models.private_text_metadata_input import (
|
|
3
|
+
PrivateTextMetadataInput,
|
|
4
|
+
)
|
|
5
|
+
from pydantic import BaseModel
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class PromptIdentifierMetadata(Metadata, BaseModel):
|
|
9
|
+
identifier: str
|
|
10
|
+
|
|
11
|
+
def to_model(self):
|
|
12
|
+
return PrivateTextMetadataInput(
|
|
13
|
+
_t="PrivateTextMetadataInput", identifier="prompt-id", text=self.identifier
|
|
14
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from rapidata.api_client.models.public_text_metadata_input import (
|
|
2
|
+
PublicTextMetadataInput,
|
|
3
|
+
)
|
|
4
|
+
from rapidata.rapidata_client.datapoints.metadata._base_metadata import Metadata
|
|
5
|
+
from pydantic import BaseModel
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class PublicTextMetadata(Metadata, BaseModel):
|
|
9
|
+
|
|
10
|
+
text: str
|
|
11
|
+
identifier: str = "public_text"
|
|
12
|
+
|
|
13
|
+
def to_model(self):
|
|
14
|
+
return PublicTextMetadataInput(
|
|
15
|
+
_t="PublicTextMetadataInput", identifier=self.identifier, text=self.text
|
|
16
|
+
)
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
from rapidata.api_client.models.transcription_metadata_input import (
|
|
2
2
|
TranscriptionMetadataInput,
|
|
3
3
|
)
|
|
4
|
-
from rapidata.rapidata_client.metadata._base_metadata import Metadata
|
|
4
|
+
from rapidata.rapidata_client.datapoints.metadata._base_metadata import Metadata
|
|
5
|
+
from pydantic import BaseModel
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
class SelectWordsMetadata(Metadata):
|
|
8
|
+
class SelectWordsMetadata(Metadata, BaseModel):
|
|
8
9
|
"""SelectWordsMetadata Class is used to define the Sentence that will be display to the user."""
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
super().__init__()
|
|
12
|
-
self.select_words = select_words
|
|
11
|
+
select_words: str
|
|
13
12
|
|
|
14
13
|
def to_model(self):
|
|
15
14
|
return TranscriptionMetadataInput(
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from ._rapidata_dataset import RapidataDataset
|