rapidata 2.27.2__py3-none-any.whl → 2.44.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rapidata/__init__.py +12 -9
- rapidata/api_client/__init__.py +83 -329
- rapidata/api_client/api/__init__.py +9 -2
- rapidata/api_client/api/asset_api.py +853 -0
- rapidata/api_client/api/audience_api.py +1133 -0
- rapidata/api_client/api/benchmark_api.py +3966 -0
- rapidata/api_client/api/campaign_api.py +232 -207
- rapidata/api_client/api/client_api.py +349 -71
- 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 +644 -72
- rapidata/api_client/api/datapoint_api.py +8 -797
- rapidata/api_client/api/dataset_api.py +229 -3452
- 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/leaderboard_api.py +2550 -0
- rapidata/api_client/api/newsletter_api.py +20 -19
- 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 +35 -31
- rapidata/api_client/api/validation_set_api.py +513 -3233
- 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 -307
- rapidata/api_client/models/ab_test_selection_a_inner.py +27 -13
- rapidata/api_client/models/add_campaign_model.py +3 -3
- rapidata/api_client/models/add_user_response_result.py +10 -5
- rapidata/api_client/models/add_validation_rapid_model.py +55 -24
- 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 +7 -1
- 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 +1 -3
- 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 +11 -9
- 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_status.py +38 -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 +89 -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_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 +57 -15
- 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 +99 -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.py +3 -3
- rapidata/api_client/models/create_datapoint_from_text_sources_model.py +3 -3
- rapidata/api_client/models/create_datapoint_from_urls_model.py +3 -3
- rapidata/api_client/models/create_datapoint_model.py +134 -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_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_leaderboard_model.py +140 -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_model.py +30 -101
- 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_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/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 +120 -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 +3 -5
- 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 +43 -71
- 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 +111 -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 +96 -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_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 +32 -41
- 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_campaign_filter.py +282 -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_country_filter.py +98 -0
- rapidata/api_client/models/i_campaign_filter_demographic_filter.py +100 -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_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 +103 -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 +103 -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 +282 -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_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 +104 -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/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 +6 -6
- 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/naive_referee_model.py +2 -2
- rapidata/api_client/models/named_classification.py +4 -13
- 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 +3 -5
- rapidata/api_client/models/online_pair_maker_config_model.py +3 -3
- 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_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 +87 -0
- rapidata/api_client/models/problem_details.py +2 -20
- rapidata/api_client/models/prompt_asset_metadata_input.py +6 -8
- 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 +111 -0
- rapidata/api_client/models/query_datapoints_by_dataset_id_result.py +95 -0
- rapidata/api_client/models/query_model.py +10 -5
- 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 +33 -49
- 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 +2 -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 +87 -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 +3 -5
- 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_audience_request.py +102 -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_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 -10
- rapidata/api_client/models/update_validation_rapid_model_context_asset.py +160 -0
- 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/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_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/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 +16 -9
- rapidata/api_client_README.md +389 -315
- rapidata/rapidata_client/__init__.py +10 -17
- rapidata/rapidata_client/api/rapidata_api_client.py +253 -0
- rapidata/rapidata_client/benchmark/__init__.py +0 -0
- rapidata/rapidata_client/benchmark/_detail_mapper.py +32 -0
- rapidata/rapidata_client/benchmark/leaderboard/__init__.py +0 -0
- rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py +221 -0
- rapidata/rapidata_client/benchmark/participant/__init__.py +0 -0
- rapidata/rapidata_client/benchmark/participant/_participant.py +147 -0
- rapidata/rapidata_client/benchmark/rapidata_benchmark.py +546 -0
- rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +219 -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 +10 -0
- rapidata/rapidata_client/datapoints/_asset_uploader.py +169 -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/assets/__init__.py +0 -0
- rapidata/rapidata_client/datapoints/assets/constants.py +7 -0
- rapidata/rapidata_client/{metadata → datapoints/metadata}/__init__.py +1 -0
- rapidata/rapidata_client/datapoints/metadata/_media_asset_metadata.py +26 -0
- 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/_prompt_metadata.py +12 -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/demographic/demographic_manager.py +44 -19
- rapidata/rapidata_client/exceptions/__init__.py +1 -0
- rapidata/rapidata_client/exceptions/failed_upload_exception.py +20 -0
- rapidata/rapidata_client/filter/__init__.py +1 -0
- rapidata/rapidata_client/filter/_base_filter.py +27 -6
- rapidata/rapidata_client/filter/age_filter.py +21 -10
- rapidata/rapidata_client/filter/and_filter.py +42 -0
- rapidata/rapidata_client/filter/campaign_filter.py +18 -10
- rapidata/rapidata_client/filter/country_filter.py +34 -12
- rapidata/rapidata_client/filter/custom_filter.py +22 -12
- rapidata/rapidata_client/filter/gender_filter.py +22 -10
- rapidata/rapidata_client/filter/language_filter.py +39 -21
- rapidata/rapidata_client/filter/models/age_group.py +14 -12
- rapidata/rapidata_client/filter/models/gender.py +12 -8
- rapidata/rapidata_client/filter/new_user_filter.py +11 -4
- rapidata/rapidata_client/filter/not_filter.py +23 -11
- rapidata/rapidata_client/filter/or_filter.py +23 -11
- rapidata/rapidata_client/filter/rapidata_filters.py +19 -13
- rapidata/rapidata_client/filter/response_count_filter.py +36 -20
- rapidata/rapidata_client/filter/user_score_filter.py +47 -24
- rapidata/rapidata_client/order/_rapidata_order_builder.py +286 -193
- rapidata/rapidata_client/order/dataset/_rapidata_dataset.py +153 -0
- rapidata/rapidata_client/order/rapidata_order.py +317 -160
- rapidata/rapidata_client/order/rapidata_order_manager.py +689 -431
- rapidata/rapidata_client/order/rapidata_results.py +98 -67
- rapidata/rapidata_client/rapidata_client.py +99 -33
- rapidata/rapidata_client/referee/__init__.py +1 -1
- rapidata/rapidata_client/referee/_base_referee.py +7 -3
- rapidata/rapidata_client/referee/_early_stopping_referee.py +20 -11
- rapidata/rapidata_client/referee/_naive_referee.py +18 -3
- 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 +34 -11
- rapidata/rapidata_client/selection/{retrieval_modes.py → rapidata_retrieval_modes.py} +7 -4
- rapidata/rapidata_client/selection/rapidata_selections.py +17 -8
- rapidata/rapidata_client/selection/shuffling_selection.py +21 -13
- rapidata/rapidata_client/selection/static_selection.py +19 -8
- rapidata/rapidata_client/selection/validation_selection.py +20 -4
- rapidata/rapidata_client/settings/__init__.py +4 -1
- rapidata/rapidata_client/settings/_rapidata_setting.py +15 -2
- 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 +18 -3
- rapidata/rapidata_client/settings/swap_context_instruction.py +20 -0
- rapidata/rapidata_client/settings/translation_behaviour.py +7 -5
- rapidata/rapidata_client/validation/rapidata_validation_set.py +106 -12
- rapidata/rapidata_client/validation/rapids/_validation_rapid_uploader.py +62 -0
- rapidata/rapidata_client/validation/rapids/box.py +37 -12
- rapidata/rapidata_client/validation/rapids/rapids.py +28 -103
- rapidata/rapidata_client/validation/rapids/rapids_manager.py +315 -208
- rapidata/rapidata_client/validation/validation_set_manager.py +511 -260
- rapidata/rapidata_client/workflow/__init__.py +2 -1
- 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 +87 -0
- rapidata/rapidata_client/workflow/_ranking_workflow.py +109 -25
- 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 +14 -14
- rapidata/service/openapi_service.py +82 -22
- rapidata/types/__init__.py +166 -0
- rapidata-2.44.3.dist-info/METADATA +32 -0
- rapidata-2.44.3.dist-info/RECORD +1014 -0
- {rapidata-2.27.2.dist-info → rapidata-2.44.3.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 -61
- 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 -122
- rapidata/rapidata_client/logging/output_manager.py +0 -20
- rapidata/rapidata_client/metadata/_media_asset_metadata.py +0 -15
- 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 -411
- rapidata/service/local_file_service.py +0 -25
- rapidata-2.27.2.dist-info/METADATA +0 -35
- rapidata-2.27.2.dist-info/RECORD +0 -540
- /rapidata/rapidata_client/{metadata → datapoints/metadata}/_base_metadata.py +0 -0
- {rapidata-2.27.2.dist-info → rapidata-2.44.3.dist-info/licenses}/LICENSE +0 -0
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Provides centralized logging configuration for the Rapidata Python SDK.
|
|
3
|
-
It sets up a logger instance that is used throughout the SDK to provide
|
|
4
|
-
consistent logging behavior and formatting.
|
|
5
|
-
|
|
6
|
-
The logger is configured with sensible defaults but can be customized using the
|
|
7
|
-
`configure_logger` function to adjust log levels, output destinations, and formatting.
|
|
8
|
-
|
|
9
|
-
Example:
|
|
10
|
-
Basic usage with default configuration:
|
|
11
|
-
```python
|
|
12
|
-
from rapidata import logger
|
|
13
|
-
|
|
14
|
-
logger.info("This is an info message")
|
|
15
|
-
logger.error("This is an error message")
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Custom configuration:
|
|
19
|
-
```python
|
|
20
|
-
from rapidata import configure_logger
|
|
21
|
-
|
|
22
|
-
# Configure with DEBUG level and file output
|
|
23
|
-
configure_logger(
|
|
24
|
-
level="DEBUG",
|
|
25
|
-
log_file="/path/to/logs/rapidata.log"
|
|
26
|
-
)
|
|
27
|
-
```
|
|
28
|
-
"""
|
|
29
|
-
import logging
|
|
30
|
-
import os
|
|
31
|
-
from typing import Optional
|
|
32
|
-
|
|
33
|
-
# Create module-level logger
|
|
34
|
-
logger = logging.getLogger("rapidata")
|
|
35
|
-
|
|
36
|
-
def configure_logger(
|
|
37
|
-
level: str = "WARNING",
|
|
38
|
-
log_file: Optional[str] = None,
|
|
39
|
-
format_string: str = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
|
40
|
-
) -> None:
|
|
41
|
-
"""
|
|
42
|
-
Configure the logger with custom settings.
|
|
43
|
-
|
|
44
|
-
This function allows you to customize the logging behavior for the entire SDK.
|
|
45
|
-
You can set the log level, specify a file for log output, and customize the log message format.
|
|
46
|
-
|
|
47
|
-
Note:
|
|
48
|
-
This function removes any existing handlers before adding new ones,
|
|
49
|
-
so it's safe to call multiple times to reconfigure logging.
|
|
50
|
-
|
|
51
|
-
Args:
|
|
52
|
-
level: The logging level to set. Must be one of:\n
|
|
53
|
-
- "DEBUG": Detailed information for diagnosing problems
|
|
54
|
-
- "INFO": General information about program execution
|
|
55
|
-
- "WARNING": Something unexpected happened (default)
|
|
56
|
-
- "ERROR": A serious problem occurred
|
|
57
|
-
- "CRITICAL": A very serious error occurred
|
|
58
|
-
|
|
59
|
-
log_file: Optional path to a file where logs should be written.
|
|
60
|
-
If provided, logs will be written to both console and file.
|
|
61
|
-
The directory will be created if it doesn't exist.
|
|
62
|
-
|
|
63
|
-
format_string: Custom format string for log messages.
|
|
64
|
-
Uses Python logging format specifications.
|
|
65
|
-
Default includes timestamp, logger name, level, and message.
|
|
66
|
-
|
|
67
|
-
Example:
|
|
68
|
-
Configure for development with debug logging:
|
|
69
|
-
```python
|
|
70
|
-
configure_logger(level="DEBUG")
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
Configure for production with file logging:
|
|
74
|
-
```python
|
|
75
|
-
configure_logger(
|
|
76
|
-
level="INFO",
|
|
77
|
-
log_file="/var/log/rapidata/app.log"
|
|
78
|
-
)
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
Configure with custom format:
|
|
82
|
-
```python
|
|
83
|
-
configure_logger(
|
|
84
|
-
level="INFO",
|
|
85
|
-
format_string="[%(levelname)s] %(message)s"
|
|
86
|
-
)
|
|
87
|
-
```
|
|
88
|
-
"""
|
|
89
|
-
# Map string levels to logging constants for validation and conversion
|
|
90
|
-
level_map = {
|
|
91
|
-
"DEBUG": logging.DEBUG,
|
|
92
|
-
"INFO": logging.INFO,
|
|
93
|
-
"WARNING": logging.WARNING,
|
|
94
|
-
"ERROR": logging.ERROR,
|
|
95
|
-
"CRITICAL": logging.CRITICAL
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
numeric_level = level_map.get(level.upper(), logging.INFO)
|
|
99
|
-
logger.setLevel(numeric_level)
|
|
100
|
-
|
|
101
|
-
# Remove existing handlers if any
|
|
102
|
-
for handler in logger.handlers[:]:
|
|
103
|
-
logger.removeHandler(handler)
|
|
104
|
-
|
|
105
|
-
# Create formatter
|
|
106
|
-
formatter = logging.Formatter(format_string)
|
|
107
|
-
|
|
108
|
-
# Console handler
|
|
109
|
-
console_handler = logging.StreamHandler()
|
|
110
|
-
console_handler.setFormatter(formatter)
|
|
111
|
-
logger.addHandler(console_handler)
|
|
112
|
-
|
|
113
|
-
# File handler (optional)
|
|
114
|
-
if log_file:
|
|
115
|
-
log_dir = os.path.dirname(log_file)
|
|
116
|
-
if log_dir:
|
|
117
|
-
os.makedirs(log_dir, exist_ok=True)
|
|
118
|
-
file_handler = logging.FileHandler(log_file)
|
|
119
|
-
file_handler.setFormatter(formatter)
|
|
120
|
-
logger.addHandler(file_handler)
|
|
121
|
-
|
|
122
|
-
configure_logger()
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
class RapidataOutputManager:
|
|
2
|
-
"""Manages print outputs and progress bars for the Rapidata module."""
|
|
3
|
-
|
|
4
|
-
silent_mode: bool = False
|
|
5
|
-
|
|
6
|
-
@classmethod
|
|
7
|
-
def enable_silent_mode(cls) -> None:
|
|
8
|
-
"""Enable silent mode, suppressing all print outputs and progress bars, not logging."""
|
|
9
|
-
cls.silent_mode = True
|
|
10
|
-
|
|
11
|
-
@classmethod
|
|
12
|
-
def disable_silent_mode(cls) -> None:
|
|
13
|
-
"""Disable silent mode, allowing outputs to be printed.
|
|
14
|
-
This is the default behavior.
|
|
15
|
-
"""
|
|
16
|
-
cls.silent_mode = False
|
|
17
|
-
|
|
18
|
-
def managed_print(*args, **kwargs) -> None:
|
|
19
|
-
if not RapidataOutputManager.silent_mode:
|
|
20
|
-
print(*args, **kwargs)
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
from rapidata.api_client.models.prompt_asset_metadata_input import PromptAssetMetadataInput
|
|
2
|
-
from rapidata.api_client.models.url_asset_input import UrlAssetInput
|
|
3
|
-
from rapidata.rapidata_client.metadata._base_metadata import Metadata
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class MediaAssetMetadata(Metadata):
|
|
7
|
-
|
|
8
|
-
def __init__(self, url: str):
|
|
9
|
-
super().__init__()
|
|
10
|
-
self._url = url
|
|
11
|
-
|
|
12
|
-
def to_model(self):
|
|
13
|
-
return PromptAssetMetadataInput(
|
|
14
|
-
_t="PromptAssetMetadataInput", asset=UrlAssetInput(_t="UrlAssetInput", url=self._url)
|
|
15
|
-
)
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
from rapidata.api_client.models.private_text_metadata_input import (
|
|
2
|
-
PrivateTextMetadataInput,
|
|
3
|
-
)
|
|
4
|
-
from rapidata.rapidata_client.metadata._base_metadata import Metadata
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class PrivateTextMetadata(Metadata):
|
|
8
|
-
|
|
9
|
-
def __init__(self, text: str, identifier: str = "private_text"):
|
|
10
|
-
super().__init__()
|
|
11
|
-
self._identifier = identifier
|
|
12
|
-
self._text = text
|
|
13
|
-
|
|
14
|
-
def to_model(self):
|
|
15
|
-
return PrivateTextMetadataInput(
|
|
16
|
-
_t="PrivateTextMetadataInput", identifier=self._identifier, text=self._text
|
|
17
|
-
)
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
from rapidata.rapidata_client.metadata._base_metadata import Metadata
|
|
2
|
-
from rapidata.api_client.models.prompt_metadata_input import PromptMetadataInput
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class PromptMetadata(Metadata):
|
|
6
|
-
"""The PromptMetadata class is used to display a prompt to the user."""
|
|
7
|
-
|
|
8
|
-
def __init__(self, prompt: str):
|
|
9
|
-
super().__init__()
|
|
10
|
-
|
|
11
|
-
if not isinstance(prompt, str):
|
|
12
|
-
raise ValueError("Prompt must be a string")
|
|
13
|
-
|
|
14
|
-
self._prompt = prompt
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def to_model(self):
|
|
18
|
-
return PromptMetadataInput(_t="PromptMetadataInput", prompt=self._prompt)
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
from rapidata.api_client.models.public_text_metadata_input import (
|
|
2
|
-
PublicTextMetadataInput,
|
|
3
|
-
)
|
|
4
|
-
from rapidata.rapidata_client.metadata._base_metadata import Metadata
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class PublicTextMetadata(Metadata):
|
|
8
|
-
|
|
9
|
-
def __init__(self, text: str, identifier: str = "public_text"):
|
|
10
|
-
super().__init__()
|
|
11
|
-
self._identifier = identifier
|
|
12
|
-
self._text = text
|
|
13
|
-
|
|
14
|
-
def to_model(self):
|
|
15
|
-
return PublicTextMetadataInput(
|
|
16
|
-
_t="PublicTextMetadataInput", identifier=self._identifier, text=self._text
|
|
17
|
-
)
|
|
@@ -1,411 +0,0 @@
|
|
|
1
|
-
from itertools import zip_longest
|
|
2
|
-
|
|
3
|
-
from rapidata.api_client.models.create_datapoint_from_text_sources_model import CreateDatapointFromTextSourcesModel
|
|
4
|
-
from rapidata.api_client.models.dataset_dataset_id_datapoints_post_request_metadata_inner import DatasetDatasetIdDatapointsPostRequestMetadataInner
|
|
5
|
-
from rapidata.rapidata_client.metadata._base_metadata import Metadata
|
|
6
|
-
from rapidata.rapidata_client.assets import TextAsset, MediaAsset, MultiAsset
|
|
7
|
-
from rapidata.service import LocalFileService
|
|
8
|
-
from rapidata.service.openapi_service import OpenAPIService
|
|
9
|
-
from concurrent.futures import ThreadPoolExecutor, as_completed
|
|
10
|
-
from tqdm import tqdm
|
|
11
|
-
|
|
12
|
-
from typing import cast, Sequence, Generator
|
|
13
|
-
from rapidata.rapidata_client.logging import logger, RapidataOutputManager
|
|
14
|
-
import time
|
|
15
|
-
import threading
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def chunk_list(lst: list, chunk_size: int) -> Generator:
|
|
19
|
-
"""Split list into chunks to prevent resource exhaustion"""
|
|
20
|
-
for i in range(0, len(lst), chunk_size):
|
|
21
|
-
yield lst[i:i + chunk_size]
|
|
22
|
-
|
|
23
|
-
class RapidataDataset:
|
|
24
|
-
|
|
25
|
-
def __init__(self, dataset_id: str, openapi_service: OpenAPIService):
|
|
26
|
-
self.dataset_id = dataset_id
|
|
27
|
-
self.openapi_service = openapi_service
|
|
28
|
-
self.local_file_service = LocalFileService()
|
|
29
|
-
|
|
30
|
-
def _add_texts(
|
|
31
|
-
self,
|
|
32
|
-
text_assets: list[TextAsset] | list[MultiAsset],
|
|
33
|
-
metadata_list: Sequence[Sequence[Metadata]] | None = None,
|
|
34
|
-
max_workers: int = 10,
|
|
35
|
-
):
|
|
36
|
-
for text_asset in text_assets:
|
|
37
|
-
if isinstance(text_asset, MultiAsset):
|
|
38
|
-
assert all(
|
|
39
|
-
isinstance(asset, TextAsset) for asset in text_asset.assets
|
|
40
|
-
), "All assets in a MultiAsset must be of type TextAsset."
|
|
41
|
-
|
|
42
|
-
def upload_text_datapoint(text_asset: TextAsset | MultiAsset, metadata_per_datapoint: Sequence[Metadata] | None, index: int) -> None:
|
|
43
|
-
if isinstance(text_asset, TextAsset):
|
|
44
|
-
texts = [text_asset.text]
|
|
45
|
-
elif isinstance(text_asset, MultiAsset):
|
|
46
|
-
texts = [asset.text for asset in text_asset.assets if isinstance(asset, TextAsset)]
|
|
47
|
-
else:
|
|
48
|
-
raise ValueError(f"Unsupported asset type: {type(text_asset)}")
|
|
49
|
-
|
|
50
|
-
metadata = []
|
|
51
|
-
if metadata_per_datapoint:
|
|
52
|
-
for meta in metadata_per_datapoint:
|
|
53
|
-
meta_model = meta.to_model() if meta else None
|
|
54
|
-
if meta_model:
|
|
55
|
-
metadata.append(DatasetDatasetIdDatapointsPostRequestMetadataInner(meta_model))
|
|
56
|
-
|
|
57
|
-
model = CreateDatapointFromTextSourcesModel(
|
|
58
|
-
textSources=texts,
|
|
59
|
-
sortIndex=index,
|
|
60
|
-
metadata=metadata,
|
|
61
|
-
)
|
|
62
|
-
|
|
63
|
-
upload_response = self.openapi_service.dataset_api.dataset_dataset_id_datapoints_texts_post(dataset_id=self.dataset_id, create_datapoint_from_text_sources_model=model)
|
|
64
|
-
|
|
65
|
-
total_uploads = len(text_assets)
|
|
66
|
-
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
|
67
|
-
futures = [
|
|
68
|
-
executor.submit(upload_text_datapoint, text_asset, metadata, index=i)
|
|
69
|
-
for i, (text_asset, metadata) in enumerate(zip_longest(text_assets, metadata_list or []))
|
|
70
|
-
]
|
|
71
|
-
|
|
72
|
-
with tqdm(total=total_uploads, desc="Uploading text datapoints", disable=RapidataOutputManager.silent_mode) as pbar:
|
|
73
|
-
for future in as_completed(futures):
|
|
74
|
-
future.result() # This will raise any exceptions that occurred during execution
|
|
75
|
-
pbar.update(1)
|
|
76
|
-
|
|
77
|
-
def _process_single_upload(
|
|
78
|
-
self,
|
|
79
|
-
media_asset: MediaAsset | MultiAsset,
|
|
80
|
-
meta_list: Sequence[Metadata] | None,
|
|
81
|
-
index: int,
|
|
82
|
-
) -> tuple[list[str], list[str]]:
|
|
83
|
-
"""
|
|
84
|
-
Process single upload with error tracking.
|
|
85
|
-
|
|
86
|
-
Args:
|
|
87
|
-
media_asset: MediaAsset or MultiAsset to upload
|
|
88
|
-
meta_list: Optional sequence of metadata for the asset
|
|
89
|
-
index: Sort index for the upload
|
|
90
|
-
|
|
91
|
-
Returns:
|
|
92
|
-
tuple[list[str], list[str]]: Lists of successful and failed identifiers
|
|
93
|
-
"""
|
|
94
|
-
local_successful: list[str] = []
|
|
95
|
-
local_failed: list[str] = []
|
|
96
|
-
identifiers_to_track: list[str] = []
|
|
97
|
-
|
|
98
|
-
try:
|
|
99
|
-
# Get identifier for this upload (URL or file path)
|
|
100
|
-
if isinstance(media_asset, MediaAsset):
|
|
101
|
-
assets = [media_asset]
|
|
102
|
-
identifier = media_asset._url if media_asset._url else media_asset.path
|
|
103
|
-
identifiers_to_track = [identifier] if identifier else []
|
|
104
|
-
elif isinstance(media_asset, MultiAsset):
|
|
105
|
-
assets = cast(list[MediaAsset], media_asset.assets)
|
|
106
|
-
identifiers_to_track = [
|
|
107
|
-
(asset._url if asset._url else cast(str, asset.path))
|
|
108
|
-
for asset in assets
|
|
109
|
-
]
|
|
110
|
-
else:
|
|
111
|
-
raise ValueError(f"Unsupported asset type: {type(media_asset)}")
|
|
112
|
-
|
|
113
|
-
metadata: list[DatasetDatasetIdDatapointsPostRequestMetadataInner] = []
|
|
114
|
-
if meta_list:
|
|
115
|
-
for meta in meta_list:
|
|
116
|
-
meta_model = meta.to_model() if meta else None
|
|
117
|
-
if meta_model:
|
|
118
|
-
metadata.append(DatasetDatasetIdDatapointsPostRequestMetadataInner(meta_model))
|
|
119
|
-
|
|
120
|
-
local_paths = [asset.to_file() for asset in assets if asset.is_local()]
|
|
121
|
-
urls = [asset.path for asset in assets if not asset.is_local()]
|
|
122
|
-
|
|
123
|
-
self.openapi_service.dataset_api.dataset_dataset_id_datapoints_post(
|
|
124
|
-
dataset_id=self.dataset_id,
|
|
125
|
-
file=local_paths,
|
|
126
|
-
url=urls,
|
|
127
|
-
metadata=metadata,
|
|
128
|
-
sort_index=index,
|
|
129
|
-
)
|
|
130
|
-
|
|
131
|
-
local_successful.extend(identifiers_to_track)
|
|
132
|
-
|
|
133
|
-
except Exception as e:
|
|
134
|
-
logger.error(f"\nUpload failed for {identifiers_to_track}: {str(e)}") # \n to avoid same line as tqdm
|
|
135
|
-
local_failed.extend(identifiers_to_track)
|
|
136
|
-
|
|
137
|
-
return local_successful, local_failed
|
|
138
|
-
|
|
139
|
-
def _get_progress_tracker(
|
|
140
|
-
self,
|
|
141
|
-
total_uploads: int,
|
|
142
|
-
stop_event: threading.Event,
|
|
143
|
-
progress_error_event: threading.Event,
|
|
144
|
-
progress_poll_interval: float,
|
|
145
|
-
) -> threading.Thread:
|
|
146
|
-
"""
|
|
147
|
-
Create and return a progress tracking thread that shows actual API progress.
|
|
148
|
-
|
|
149
|
-
Args:
|
|
150
|
-
total_uploads: Total number of uploads to track
|
|
151
|
-
initial_ready: Initial number of ready items
|
|
152
|
-
initial_progress: Initial progress state
|
|
153
|
-
stop_event: Event to signal thread to stop
|
|
154
|
-
progress_error_event: Event to signal an error in progress tracking
|
|
155
|
-
progress_poll_interval: Time between progress checks
|
|
156
|
-
|
|
157
|
-
Returns:
|
|
158
|
-
threading.Thread: The progress tracking thread
|
|
159
|
-
"""
|
|
160
|
-
def progress_tracking_thread():
|
|
161
|
-
try:
|
|
162
|
-
# Initialize progress bar with 0 completions
|
|
163
|
-
with tqdm(total=total_uploads, desc="Uploading datapoints", disable=RapidataOutputManager.silent_mode) as pbar:
|
|
164
|
-
prev_ready = 0
|
|
165
|
-
prev_failed = 0
|
|
166
|
-
stall_count = 0
|
|
167
|
-
last_progress_time = time.time()
|
|
168
|
-
|
|
169
|
-
# We'll wait for all uploads to finish + some extra time
|
|
170
|
-
# for the backend to fully process everything
|
|
171
|
-
all_uploads_complete = threading.Event()
|
|
172
|
-
|
|
173
|
-
while not stop_event.is_set() or not all_uploads_complete.is_set():
|
|
174
|
-
try:
|
|
175
|
-
current_progress = self.openapi_service.dataset_api.dataset_dataset_id_progress_get(self.dataset_id)
|
|
176
|
-
|
|
177
|
-
# Calculate items completed since our initialization
|
|
178
|
-
completed_ready = current_progress.ready
|
|
179
|
-
completed_failed = current_progress.failed
|
|
180
|
-
total_completed = completed_ready + completed_failed
|
|
181
|
-
|
|
182
|
-
# Calculate newly completed items since our last check
|
|
183
|
-
new_ready = current_progress.ready - prev_ready
|
|
184
|
-
new_failed = current_progress.failed - prev_failed
|
|
185
|
-
|
|
186
|
-
# Update progress bar position to show actual completed items
|
|
187
|
-
# First reset to match the actual completed count
|
|
188
|
-
pbar.n = total_completed
|
|
189
|
-
pbar.refresh()
|
|
190
|
-
|
|
191
|
-
if new_ready > 0 or new_failed > 0:
|
|
192
|
-
# We saw progress
|
|
193
|
-
stall_count = 0
|
|
194
|
-
last_progress_time = time.time()
|
|
195
|
-
else:
|
|
196
|
-
stall_count += 1
|
|
197
|
-
|
|
198
|
-
# Update our tracking variables
|
|
199
|
-
prev_ready = current_progress.ready
|
|
200
|
-
prev_failed = current_progress.failed or 0
|
|
201
|
-
|
|
202
|
-
# Check if stop_event was set (all uploads submitted)
|
|
203
|
-
if stop_event.is_set():
|
|
204
|
-
elapsed_since_last_progress = time.time() - last_progress_time
|
|
205
|
-
|
|
206
|
-
# If we haven't seen progress for a while after all uploads were submitted
|
|
207
|
-
if elapsed_since_last_progress > 5.0:
|
|
208
|
-
# If we're at 100%, we're done
|
|
209
|
-
if total_completed >= total_uploads:
|
|
210
|
-
all_uploads_complete.set()
|
|
211
|
-
break
|
|
212
|
-
|
|
213
|
-
# If we're not at 100% but it's been a while with no progress
|
|
214
|
-
if stall_count > 5:
|
|
215
|
-
# We've polled several times with no progress, assume we're done
|
|
216
|
-
logger.warning(f"\nProgress seems stalled at {total_completed}/{total_uploads}. Please try again.")
|
|
217
|
-
break
|
|
218
|
-
|
|
219
|
-
except Exception as e:
|
|
220
|
-
logger.error(f"\nError checking progress: {str(e)}")
|
|
221
|
-
stall_count += 1
|
|
222
|
-
|
|
223
|
-
if stall_count > 10: # Too many consecutive errors
|
|
224
|
-
progress_error_event.set()
|
|
225
|
-
break
|
|
226
|
-
|
|
227
|
-
# Sleep before next poll
|
|
228
|
-
time.sleep(progress_poll_interval)
|
|
229
|
-
|
|
230
|
-
except Exception as e:
|
|
231
|
-
logger.error(f"Progress tracking thread error: {str(e)}")
|
|
232
|
-
progress_error_event.set()
|
|
233
|
-
|
|
234
|
-
# Create and return the thread
|
|
235
|
-
progress_thread = threading.Thread(target=progress_tracking_thread)
|
|
236
|
-
progress_thread.daemon = True
|
|
237
|
-
return progress_thread
|
|
238
|
-
|
|
239
|
-
def _process_uploads_in_chunks(
|
|
240
|
-
self,
|
|
241
|
-
media_paths: list[MediaAsset] | list[MultiAsset],
|
|
242
|
-
multi_metadata: Sequence[Sequence[Metadata]] | None,
|
|
243
|
-
max_workers: int,
|
|
244
|
-
chunk_size: int,
|
|
245
|
-
stop_progress_tracking: threading.Event,
|
|
246
|
-
progress_tracking_error: threading.Event
|
|
247
|
-
) -> tuple[list[str], list[str]]:
|
|
248
|
-
"""
|
|
249
|
-
Process uploads in chunks with a ThreadPoolExecutor.
|
|
250
|
-
|
|
251
|
-
Args:
|
|
252
|
-
media_paths: List of assets to upload
|
|
253
|
-
multi_metadata: Optional sequence of sequences of metadata
|
|
254
|
-
max_workers: Maximum number of concurrent workers
|
|
255
|
-
chunk_size: Number of items to process in each batch
|
|
256
|
-
stop_progress_tracking: Event to signal progress tracking to stop
|
|
257
|
-
progress_tracking_error: Event to detect progress tracking errors
|
|
258
|
-
|
|
259
|
-
Returns:
|
|
260
|
-
tuple[list[str], list[str]]: Lists of successful and failed uploads
|
|
261
|
-
"""
|
|
262
|
-
successful_uploads: list[str] = []
|
|
263
|
-
failed_uploads: list[str] = []
|
|
264
|
-
|
|
265
|
-
try:
|
|
266
|
-
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
|
267
|
-
# Process uploads in chunks to avoid overwhelming the system
|
|
268
|
-
for chunk_idx, chunk in enumerate(chunk_list(media_paths, chunk_size)):
|
|
269
|
-
chunk_multi_metadata = multi_metadata[chunk_idx * chunk_size:(chunk_idx + 1) * chunk_size] if multi_metadata else None
|
|
270
|
-
|
|
271
|
-
futures = [
|
|
272
|
-
executor.submit(
|
|
273
|
-
self._process_single_upload,
|
|
274
|
-
media_asset,
|
|
275
|
-
meta_list,
|
|
276
|
-
index=(chunk_idx * chunk_size + i)
|
|
277
|
-
)
|
|
278
|
-
for i, (media_asset, meta_list) in enumerate(zip_longest(chunk, chunk_multi_metadata or []))
|
|
279
|
-
]
|
|
280
|
-
|
|
281
|
-
# Wait for this chunk to complete before starting the next one
|
|
282
|
-
for future in as_completed(futures):
|
|
283
|
-
if progress_tracking_error.is_set():
|
|
284
|
-
raise RuntimeError("Progress tracking failed, aborting uploads")
|
|
285
|
-
|
|
286
|
-
try:
|
|
287
|
-
chunk_successful, chunk_failed = future.result()
|
|
288
|
-
successful_uploads.extend(chunk_successful)
|
|
289
|
-
failed_uploads.extend(chunk_failed)
|
|
290
|
-
except Exception as e:
|
|
291
|
-
logger.error(f"Future execution failed: {str(e)}")
|
|
292
|
-
finally:
|
|
293
|
-
# Signal to the progress tracking thread that all uploads have been submitted
|
|
294
|
-
stop_progress_tracking.set()
|
|
295
|
-
|
|
296
|
-
return successful_uploads, failed_uploads
|
|
297
|
-
|
|
298
|
-
def _log_final_progress(
|
|
299
|
-
self,
|
|
300
|
-
total_uploads: int,
|
|
301
|
-
progress_poll_interval: float,
|
|
302
|
-
successful_uploads: list[str],
|
|
303
|
-
failed_uploads: list[str]
|
|
304
|
-
) -> None:
|
|
305
|
-
"""
|
|
306
|
-
Log the final progress of the upload operation.
|
|
307
|
-
|
|
308
|
-
Args:
|
|
309
|
-
total_uploads: Total number of uploads
|
|
310
|
-
initial_ready: Initial number of ready items
|
|
311
|
-
initial_progress: Initial progress state
|
|
312
|
-
progress_poll_interval: Time between progress checks
|
|
313
|
-
successful_uploads: List of successful uploads for fallback reporting
|
|
314
|
-
failed_uploads: List of failed uploads for fallback reporting
|
|
315
|
-
"""
|
|
316
|
-
try:
|
|
317
|
-
# Get final progress
|
|
318
|
-
final_progress = self.openapi_service.dataset_api.dataset_dataset_id_progress_get(self.dataset_id)
|
|
319
|
-
total_ready = final_progress.ready
|
|
320
|
-
total_failed = final_progress.failed
|
|
321
|
-
|
|
322
|
-
# Make sure we account for all uploads
|
|
323
|
-
if total_ready + total_failed < total_uploads:
|
|
324
|
-
# Try one more time after a longer wait
|
|
325
|
-
time.sleep(5 * progress_poll_interval)
|
|
326
|
-
final_progress = self.openapi_service.dataset_api.dataset_dataset_id_progress_get(self.dataset_id)
|
|
327
|
-
total_ready = final_progress.ready
|
|
328
|
-
total_failed = final_progress.failed
|
|
329
|
-
|
|
330
|
-
success_rate = (total_ready / total_uploads * 100) if total_uploads > 0 else 0
|
|
331
|
-
|
|
332
|
-
logger.info(f"Upload complete: {total_ready} ready, {total_uploads-total_ready} failed ({success_rate:.1f}% success rate)")
|
|
333
|
-
except Exception as e:
|
|
334
|
-
logger.error(f"Error getting final progress: {str(e)}")
|
|
335
|
-
logger.info(f"Upload summary from local tracking: {len(successful_uploads)} succeeded, {len(failed_uploads)} failed")
|
|
336
|
-
|
|
337
|
-
if failed_uploads:
|
|
338
|
-
logger.error(f"Failed uploads: {failed_uploads}")
|
|
339
|
-
|
|
340
|
-
def _add_media_from_paths(
|
|
341
|
-
self,
|
|
342
|
-
media_paths: list[MediaAsset] | list[MultiAsset],
|
|
343
|
-
multi_metadata: Sequence[Sequence[Metadata]] | None = None,
|
|
344
|
-
max_workers: int = 5,
|
|
345
|
-
chunk_size: int = 50,
|
|
346
|
-
progress_poll_interval: float = 0.5,
|
|
347
|
-
) -> tuple[list[str], list[str]]:
|
|
348
|
-
"""
|
|
349
|
-
Upload media paths in chunks with managed resources.
|
|
350
|
-
|
|
351
|
-
Args:
|
|
352
|
-
media_paths: List of MediaAsset or MultiAsset objects to upload
|
|
353
|
-
multi_metadata: Optional sequence of sequences of metadata matching media_paths length
|
|
354
|
-
max_workers: Maximum number of concurrent upload workers
|
|
355
|
-
chunk_size: Number of items to process in each batch
|
|
356
|
-
progress_poll_interval: Time in seconds between progress checks
|
|
357
|
-
|
|
358
|
-
Returns:
|
|
359
|
-
tuple[list[str], list[str]]: Lists of successful and failed URLs
|
|
360
|
-
|
|
361
|
-
Raises:
|
|
362
|
-
ValueError: If multi_metadata lengths don't match media_paths length
|
|
363
|
-
"""
|
|
364
|
-
|
|
365
|
-
if multi_metadata and not len(multi_metadata) == len(media_paths):
|
|
366
|
-
raise ValueError("The number of assets must match the number of metadatas.")
|
|
367
|
-
|
|
368
|
-
if multi_metadata and not all(len(data) == len(multi_metadata[0]) for data in multi_metadata):
|
|
369
|
-
raise ValueError("All metadatas must have the same length.")
|
|
370
|
-
|
|
371
|
-
# Setup tracking variables
|
|
372
|
-
total_uploads = len(media_paths)
|
|
373
|
-
|
|
374
|
-
# Create thread control events
|
|
375
|
-
stop_progress_tracking = threading.Event()
|
|
376
|
-
progress_tracking_error = threading.Event()
|
|
377
|
-
|
|
378
|
-
# Create and start progress tracking thread
|
|
379
|
-
progress_thread = self._get_progress_tracker(
|
|
380
|
-
total_uploads,
|
|
381
|
-
stop_progress_tracking,
|
|
382
|
-
progress_tracking_error,
|
|
383
|
-
progress_poll_interval
|
|
384
|
-
)
|
|
385
|
-
progress_thread.start()
|
|
386
|
-
|
|
387
|
-
# Process uploads in chunks
|
|
388
|
-
try:
|
|
389
|
-
successful_uploads, failed_uploads = self._process_uploads_in_chunks(
|
|
390
|
-
media_paths,
|
|
391
|
-
multi_metadata,
|
|
392
|
-
max_workers,
|
|
393
|
-
chunk_size,
|
|
394
|
-
stop_progress_tracking,
|
|
395
|
-
progress_tracking_error
|
|
396
|
-
)
|
|
397
|
-
finally:
|
|
398
|
-
progress_thread.join(10) # Add margin to the timeout for tqdm
|
|
399
|
-
|
|
400
|
-
# Log final progress
|
|
401
|
-
self._log_final_progress(
|
|
402
|
-
total_uploads,
|
|
403
|
-
progress_poll_interval,
|
|
404
|
-
successful_uploads,
|
|
405
|
-
failed_uploads
|
|
406
|
-
)
|
|
407
|
-
|
|
408
|
-
if failed_uploads:
|
|
409
|
-
raise RuntimeError(f"Upload failed for {failed_uploads}")
|
|
410
|
-
|
|
411
|
-
return successful_uploads, failed_uploads
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
from PIL import Image
|
|
3
|
-
|
|
4
|
-
class LocalFileService:
|
|
5
|
-
|
|
6
|
-
def load_image(self, image_path: str) -> Image.Image:
|
|
7
|
-
self.check_file_exists(image_path)
|
|
8
|
-
return Image.open(image_path)
|
|
9
|
-
|
|
10
|
-
def load_images(self, image_paths: list[str]) -> list[Image.Image]:
|
|
11
|
-
return [self.load_image(image_path) for image_path in image_paths]
|
|
12
|
-
|
|
13
|
-
def load_video(self, video_path: str):
|
|
14
|
-
self.check_file_exists(video_path)
|
|
15
|
-
return open(video_path, 'rb')
|
|
16
|
-
|
|
17
|
-
def load_videos(self, video_paths: list[str]):
|
|
18
|
-
return [self.load_video(video_path) for video_path in video_paths]
|
|
19
|
-
|
|
20
|
-
def _file_exists(self, file_path: str) -> bool:
|
|
21
|
-
return os.path.exists(file_path)
|
|
22
|
-
|
|
23
|
-
def check_file_exists(self, file_path: str):
|
|
24
|
-
if not self._file_exists(file_path):
|
|
25
|
-
raise FileNotFoundError(f"File {file_path} not found.")
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.3
|
|
2
|
-
Name: rapidata
|
|
3
|
-
Version: 2.27.2
|
|
4
|
-
Summary: Rapidata package containing the Rapidata Python Client to interact with the Rapidata Web API in an easy way.
|
|
5
|
-
License: Apache-2.0
|
|
6
|
-
Author: Rapidata AG
|
|
7
|
-
Author-email: info@rapidata.ai
|
|
8
|
-
Requires-Python: >=3.10,<4.0
|
|
9
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
10
|
-
Classifier: Programming Language :: Python :: 3
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
-
Requires-Dist: authlib (>=1.5.1,<2.0.0)
|
|
16
|
-
Requires-Dist: colorama (==0.4.6)
|
|
17
|
-
Requires-Dist: deprecated (>=1.2.14,<2.0.0)
|
|
18
|
-
Requires-Dist: httpx (>=0.28.1,<0.29.0)
|
|
19
|
-
Requires-Dist: packaging (>=25.0,<26.0)
|
|
20
|
-
Requires-Dist: pandas (>=2.2.3,<3.0.0)
|
|
21
|
-
Requires-Dist: pillow (>=10.4.0,<11.0.0)
|
|
22
|
-
Requires-Dist: pydantic (>=2.8.2,<3.0.0)
|
|
23
|
-
Requires-Dist: pyjwt (>=2.9.0,<3.0.0)
|
|
24
|
-
Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
|
|
25
|
-
Requires-Dist: requests (>=2.32.3,<3.0.0)
|
|
26
|
-
Requires-Dist: tinytag (>=2.0.0,<3.0.0)
|
|
27
|
-
Requires-Dist: tqdm (>=4.66.5,<5.0.0)
|
|
28
|
-
Description-Content-Type: text/markdown
|
|
29
|
-
|
|
30
|
-
# Rapidata Python Client
|
|
31
|
-
|
|
32
|
-
Python client to interface with the Rapidata API.
|
|
33
|
-
|
|
34
|
-
Docs: https://docs.rapidata.ai/
|
|
35
|
-
|