rapidata 2.37.0__py3-none-any.whl → 3.0.0a8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rapidata might be problematic. Click here for more details.
- rapidata/__init__.py +23 -15
- rapidata/api_client/__init__.py +84 -427
- rapidata/api_client/api/__init__.py +5 -2
- rapidata/api_client/api/asset_api.py +853 -0
- rapidata/api_client/api/audience_api.py +2505 -0
- rapidata/api_client/api/benchmark_api.py +618 -253
- rapidata/api_client/api/campaign_api.py +322 -32
- rapidata/api_client/api/client_api.py +38 -33
- rapidata/api_client/api/compare_workflow_api.py +11 -10
- rapidata/api_client/api/customer_rapid_api.py +119 -125
- rapidata/api_client/api/datapoint_api.py +8 -6
- rapidata/api_client/api/dataset_api.py +240 -1516
- rapidata/api_client/api/evaluation_workflow_api.py +29 -82
- rapidata/api_client/api/feedback_api.py +11 -11
- rapidata/api_client/api/grouped_ranking_workflow_api.py +319 -0
- rapidata/api_client/api/identity_api.py +26 -300
- rapidata/api_client/api/job_api.py +3902 -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 +139 -2355
- rapidata/api_client/api/newsletter_api.py +20 -19
- rapidata/api_client/api/order_api.py +375 -91
- rapidata/api_client/api/participant_api.py +80 -118
- rapidata/api_client/api/pipeline_api.py +24 -607
- rapidata/api_client/api/prompt_api.py +11 -11
- rapidata/api_client/api/rapidata_identity_api_api.py +5 -4
- rapidata/api_client/api/sample_api.py +5 -4
- 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 +337 -2043
- rapidata/api_client/api/workflow_api.py +32 -26
- 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 -400
- rapidata/api_client/models/ab_test_selection_a_inner.py +1 -1
- 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 +34 -36
- 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_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/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_filters_inner.py +24 -10
- rapidata/api_client/models/are_rapids_active_result.py +2 -2
- rapidata/api_client/models/asset_metadata.py +2 -8
- 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 +5 -3
- rapidata/api_client/models/boost_leaderboard_model.py +5 -5
- rapidata/api_client/models/boost_query_result.py +4 -4
- 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/boosting_profile.py +91 -0
- rapidata/api_client/models/box_shape.py +4 -33
- rapidata/api_client/models/campaign_query_result.py +13 -5
- rapidata/api_client/models/campaign_status.py +2 -2
- rapidata/api_client/models/change_boost_model.py +5 -5
- 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 +25 -35
- rapidata/api_client/models/clients_query_result.py +5 -5
- rapidata/api_client/models/clone_order_model.py +4 -4
- rapidata/api_client/models/clone_order_result.py +9 -4
- rapidata/api_client/models/compare_workflow_config.py +19 -18
- rapidata/api_client/models/compare_workflow_config_context_asset.py +174 -0
- rapidata/api_client/models/compare_workflow_config_model.py +3 -3
- rapidata/api_client/models/compare_workflow_model.py +25 -7
- 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 +6 -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/create_audience_request.py +122 -0
- rapidata/api_client/models/create_audience_result.py +87 -0
- rapidata/api_client/models/create_benchmark_model.py +5 -5
- rapidata/api_client/models/create_benchmark_participant_model.py +5 -5
- rapidata/api_client/models/create_benchmark_participant_result.py +4 -4
- rapidata/api_client/models/create_benchmark_prompt_result.py +87 -0
- rapidata/api_client/models/create_benchmark_result.py +2 -2
- 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 +2 -2
- rapidata/api_client/models/create_customer_client_result.py +2 -2
- 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 +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 +2 -2
- 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 +33 -10
- 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 +23 -26
- rapidata/api_client/models/create_leaderboard_result.py +2 -2
- 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 +33 -62
- 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 +2 -2
- rapidata/api_client/models/create_rapid_result.py +2 -2
- rapidata/api_client/models/create_sample_model.py +13 -7
- 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_state.py +2 -2
- rapidata/api_client/models/definition_type.py +49 -0
- rapidata/api_client/models/dynamic_client_registration_request.py +21 -36
- rapidata/api_client/models/early_stopping_referee_model.py +3 -3
- 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_model.py +4 -4
- 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 +2 -2
- 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_file.py +8 -22
- rapidata/api_client/models/file_asset_metadata_value.py +252 -0
- rapidata/api_client/models/file_asset_model_metadata_value.py +18 -88
- rapidata/api_client/models/file_stream_result.py +122 -0
- rapidata/api_client/models/file_type.py +2 -2
- rapidata/api_client/models/filter.py +2 -2
- rapidata/api_client/models/filter_operator.py +2 -2
- rapidata/api_client/models/fork_benchmark_result.py +87 -0
- rapidata/api_client/models/form_file_wrapper.py +17 -2
- 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_available_validation_sets_result.py +2 -2
- rapidata/api_client/models/get_benchmark_by_id_result.py +8 -4
- 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 +3 -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 +7 -12
- 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 +5 -5
- rapidata/api_client/models/get_order_by_id_result.py +12 -5
- rapidata/api_client/models/get_participant_by_id_result.py +4 -6
- 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 +5 -5
- rapidata/api_client/models/get_public_responses_result_response.py +112 -0
- rapidata/api_client/models/get_rapid_responses_result.py +3 -3
- rapidata/api_client/models/get_recommended_validation_set_result.py +2 -2
- 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 +7 -8
- rapidata/api_client/models/get_simple_workflow_results_model.py +20 -15
- rapidata/api_client/models/get_standing_by_id_result.py +3 -5
- rapidata/api_client/models/get_validation_rapids_result.py +29 -32
- 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 +2 -2
- rapidata/api_client/models/get_workflow_results_result.py +31 -14
- 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/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 +2 -36
- rapidata/api_client/models/json_web_key_set.py +2 -22
- rapidata/api_client/models/labeling_selection.py +9 -2
- 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/locate_coordinate.py +4 -13
- 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 +21 -1
- rapidata/api_client/models/multi_asset_input1_assets_inner.py +40 -12
- rapidata/api_client/models/multi_asset_input3_assets_inner.py +40 -12
- rapidata/api_client/models/multi_asset_input_assets_inner.py +16 -30
- 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/newsletter_model.py +6 -6
- rapidata/api_client/models/not_available_yet_result.py +4 -13
- 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/option_of_aggregator_type.py +49 -0
- rapidata/api_client/models/order_model.py +12 -5
- rapidata/api_client/models/order_state.py +2 -2
- 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 +3 -5
- rapidata/api_client/models/participant_status.py +2 -2
- 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/preliminary_download_model.py +5 -5
- rapidata/api_client/models/preview_order_model.py +5 -5
- rapidata/api_client/models/problem_details.py +2 -20
- rapidata/api_client/models/prompt_asset_metadata_input.py +4 -6
- rapidata/api_client/models/prompt_asset_metadata_input_asset.py +25 -41
- rapidata/api_client/models/prompt_by_benchmark_result.py +5 -5
- rapidata/api_client/models/prompt_metadata_input.py +5 -7
- rapidata/api_client/models/proxy_file_wrapper.py +17 -2
- rapidata/api_client/models/public_order_model.py +2 -2
- 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_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_model.py +30 -40
- 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 +7 -7
- rapidata/api_client/models/retrieval_mode.py +2 -2
- rapidata/api_client/models/root_filter.py +2 -2
- rapidata/api_client/models/run_status.py +2 -2
- rapidata/api_client/models/runs_by_leaderboard_result.py +3 -3
- rapidata/api_client/models/sample_by_identifier.py +7 -8
- rapidata/api_client/models/sample_by_participant.py +7 -8
- 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 +3 -3
- rapidata/api_client/models/simple_workflow_model.py +2 -2
- 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 +2 -2
- rapidata/api_client/models/sort_direction.py +2 -2
- rapidata/api_client/models/standing_by_benchmark.py +113 -0
- rapidata/api_client/models/standing_by_leaderboard.py +16 -12
- rapidata/api_client/models/standing_status.py +2 -2
- rapidata/api_client/models/standings_by_benchmark_result.py +95 -0
- rapidata/api_client/models/standings_by_leaderboard_result.py +2 -2
- 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 +25 -3
- rapidata/api_client/models/string_segment.py +105 -0
- rapidata/api_client/models/submit_order_model.py +5 -5
- rapidata/api_client/models/submit_participant_result.py +2 -2
- rapidata/api_client/models/submit_prompt_model.py +9 -14
- rapidata/api_client/models/submit_prompt_model_prompt_asset.py +40 -12
- rapidata/api_client/models/tags_by_benchmark_result.py +2 -2
- rapidata/api_client/models/text_asset.py +3 -5
- rapidata/api_client/models/text_asset_input.py +21 -1
- rapidata/api_client/models/text_metadata.py +6 -1
- 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_input.py +5 -7
- 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 +113 -0
- rapidata/api_client/models/update_benchmark_model.py +99 -0
- rapidata/api_client/models/update_benchmark_name_model.py +5 -5
- 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_leaderboard_model.py +18 -3
- rapidata/api_client/models/update_leaderboard_name_model.py +5 -5
- rapidata/api_client/models/update_leaderboard_response_config_model.py +5 -5
- 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 +5 -5
- rapidata/api_client/models/update_priority_model.py +87 -0
- rapidata/api_client/models/update_prompt_tags_model.py +5 -5
- rapidata/api_client/models/update_should_alert_model.py +4 -4
- rapidata/api_client/models/update_validation_rapid_model.py +35 -14
- 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/validation_chance.py +20 -3
- rapidata/api_client/models/validation_problem_details.py +117 -0
- rapidata/api_client/models/validation_set_model.py +11 -16
- rapidata/api_client/models/validation_set_overview_model.py +2 -2
- 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 +33 -2
- rapidata/api_client/rest.py +2 -2
- rapidata/api_client_README.md +371 -326
- rapidata/rapidata_client/__init__.py +14 -11
- rapidata/rapidata_client/api/{rapidata_exception.py → rapidata_api_client.py} +119 -2
- 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/_detail_mapper.py +11 -9
- rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py +98 -54
- rapidata/rapidata_client/benchmark/participant/_participant.py +57 -32
- rapidata/rapidata_client/benchmark/rapidata_benchmark.py +384 -246
- rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +137 -81
- rapidata/rapidata_client/config/__init__.py +3 -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 +15 -10
- rapidata/rapidata_client/config/tracer.py +184 -0
- rapidata/rapidata_client/config/upload_config.py +64 -0
- rapidata/rapidata_client/datapoints/__init__.py +0 -3
- rapidata/rapidata_client/datapoints/_asset_uploader.py +184 -0
- rapidata/rapidata_client/datapoints/_datapoint.py +72 -176
- 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 -10
- rapidata/rapidata_client/datapoints/metadata/__init__.py +0 -2
- rapidata/rapidata_client/datapoints/metadata/_private_text_metadata.py +5 -6
- rapidata/rapidata_client/datapoints/metadata/_prompt_identifier_metadata.py +4 -5
- rapidata/rapidata_client/datapoints/metadata/_public_text_metadata.py +5 -6
- rapidata/rapidata_client/datapoints/metadata/_select_words_metadata.py +3 -4
- 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/failed_upload_exception.py +10 -65
- rapidata/rapidata_client/filter/_backend_filter_mapper.py +134 -0
- rapidata/rapidata_client/filter/_base_filter.py +13 -8
- rapidata/rapidata_client/filter/age_filter.py +26 -10
- rapidata/rapidata_client/filter/and_filter.py +36 -11
- 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/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/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 +17 -23
- rapidata/rapidata_client/filter/response_count_filter.py +40 -14
- 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 +236 -196
- rapidata/rapidata_client/order/rapidata_order.py +271 -176
- rapidata/rapidata_client/order/rapidata_order_manager.py +520 -364
- rapidata/rapidata_client/rapidata_client.py +96 -29
- 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 +86 -63
- 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 +20 -8
- rapidata/rapidata_client/selection/labeling_selection.py +21 -10
- rapidata/rapidata_client/selection/rapidata_selections.py +23 -14
- 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 +2 -0
- 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 +3 -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 +22 -9
- 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 +68 -21
- 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 +28 -109
- rapidata/rapidata_client/validation/rapids/rapids_manager.py +369 -211
- rapidata/rapidata_client/validation/validation_set_manager.py +417 -294
- rapidata/rapidata_client/workflow/__init__.py +2 -2
- rapidata/rapidata_client/workflow/_base_workflow.py +17 -26
- rapidata/rapidata_client/workflow/_classify_workflow.py +44 -17
- rapidata/rapidata_client/workflow/_compare_workflow.py +33 -14
- rapidata/rapidata_client/workflow/_draw_workflow.py +35 -13
- rapidata/rapidata_client/workflow/_evaluation_workflow.py +20 -6
- rapidata/rapidata_client/workflow/_free_text_workflow.py +34 -15
- rapidata/rapidata_client/workflow/_locate_workflow.py +35 -13
- rapidata/rapidata_client/workflow/_multi_ranking_workflow.py +90 -0
- rapidata/rapidata_client/workflow/_select_words_workflow.py +38 -32
- rapidata/rapidata_client/workflow/_timestamp_workflow.py +35 -13
- rapidata/service/__init__.py +0 -1
- rapidata/service/credential_manager.py +1 -1
- rapidata/service/openapi_service.py +99 -23
- rapidata/types/__init__.py +149 -0
- rapidata-3.0.0a8.dist-info/METADATA +32 -0
- rapidata-3.0.0a8.dist-info/RECORD +1083 -0
- {rapidata-2.37.0.dist-info → rapidata-3.0.0a8.dist-info}/WHEEL +1 -1
- rapidata/rapidata_client/country_codes/__init__.py +0 -1
- rapidata/rapidata_client/country_codes/country_codes.py +0 -19
- rapidata/rapidata_client/datapoints/assets/_base_asset.py +0 -11
- rapidata/rapidata_client/datapoints/assets/_media_asset.py +0 -318
- rapidata/rapidata_client/datapoints/assets/_multi_asset.py +0 -61
- rapidata/rapidata_client/datapoints/assets/_sessions.py +0 -40
- rapidata/rapidata_client/datapoints/assets/_text_asset.py +0 -34
- rapidata/rapidata_client/datapoints/assets/data_type_enum.py +0 -8
- rapidata/rapidata_client/datapoints/metadata/_media_asset_metadata.py +0 -22
- rapidata/rapidata_client/datapoints/metadata/_prompt_metadata.py +0 -18
- 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/order/_rapidata_dataset.py +0 -447
- rapidata/rapidata_client/workflow/_ranking_workflow.py +0 -71
- rapidata/service/local_file_service.py +0 -25
- rapidata-2.37.0.dist-info/METADATA +0 -35
- rapidata-2.37.0.dist-info/RECORD +0 -687
- {rapidata-2.37.0.dist-info → rapidata-3.0.0a8.dist-info/licenses}/LICENSE +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from .country_codes import CountryCodes
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"""Base Asset Module
|
|
2
|
-
|
|
3
|
-
Defines the BaseAsset class, which serves as the abstract base class for all asset types.
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
class BaseAsset:
|
|
7
|
-
"""BaseAsset Class
|
|
8
|
-
|
|
9
|
-
An abstract base class for different types of assets. This class is intended to be subclassed by specific asset types.
|
|
10
|
-
"""
|
|
11
|
-
pass
|
|
@@ -1,318 +0,0 @@
|
|
|
1
|
-
"""Media Asset Module with Lazy Loading
|
|
2
|
-
|
|
3
|
-
Defines the MediaAsset class for handling media file paths within assets.
|
|
4
|
-
Implements lazy loading for URL-based media to prevent unnecessary downloads.
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
from typing import Optional, cast
|
|
8
|
-
import os
|
|
9
|
-
from io import BytesIO
|
|
10
|
-
from rapidata.rapidata_client.datapoints.assets._base_asset import BaseAsset
|
|
11
|
-
import requests
|
|
12
|
-
import re
|
|
13
|
-
from PIL import Image
|
|
14
|
-
from tinytag import TinyTag
|
|
15
|
-
import tempfile
|
|
16
|
-
from pydantic import StrictStr, StrictBytes
|
|
17
|
-
import logging
|
|
18
|
-
from functools import cached_property
|
|
19
|
-
from rapidata.rapidata_client.datapoints.assets._sessions import SessionManager
|
|
20
|
-
from rapidata.rapidata_client.logging import logger
|
|
21
|
-
from rapidata.rapidata_client.datapoints.assets.constants import (
|
|
22
|
-
ALLOWED_IMAGE_EXTENSIONS,
|
|
23
|
-
ALLOWED_MEDIA_EXTENSIONS,
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
class MediaAsset(BaseAsset):
|
|
28
|
-
"""MediaAsset Class with Lazy Loading
|
|
29
|
-
|
|
30
|
-
Represents a media asset by storing the file path or URL.
|
|
31
|
-
Only downloads URL content when needed.
|
|
32
|
-
Supports local files and URLs for images, MP3, and MP4.
|
|
33
|
-
|
|
34
|
-
Args:
|
|
35
|
-
path (str): The file system path to the media asset or URL.
|
|
36
|
-
|
|
37
|
-
Raises:
|
|
38
|
-
FileNotFoundError: If the provided file path does not exist.
|
|
39
|
-
"""
|
|
40
|
-
|
|
41
|
-
_logger = logging.getLogger(__name__ + ".MediaAsset")
|
|
42
|
-
|
|
43
|
-
ALLOWED_TYPES = [
|
|
44
|
-
"image/",
|
|
45
|
-
"audio/mp3", # MP3
|
|
46
|
-
"video/mp4", # MP4
|
|
47
|
-
]
|
|
48
|
-
|
|
49
|
-
MIME_TYPES = {
|
|
50
|
-
"jpg": "image/jpeg",
|
|
51
|
-
"jpeg": "image/jpeg",
|
|
52
|
-
"png": "image/png",
|
|
53
|
-
"gif": "image/gif",
|
|
54
|
-
"webp": "image/webp",
|
|
55
|
-
"mp3": "audio/mp3",
|
|
56
|
-
"mp4": "video/mp4",
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
FILE_SIGNATURES = {
|
|
60
|
-
b"\xFF\xD8\xFF": "image/jpeg",
|
|
61
|
-
b"\x89PNG\r\n\x1a\n": "image/png",
|
|
62
|
-
b"GIF87a": "image/gif",
|
|
63
|
-
b"GIF89a": "image/gif",
|
|
64
|
-
b"RIFF": "image/webp",
|
|
65
|
-
b"ID3": "audio/mp3",
|
|
66
|
-
b"\xFF\xFB": "audio/mp3",
|
|
67
|
-
b"\xFF\xF3": "audio/mp3",
|
|
68
|
-
b"ftyp": "video/mp4",
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
def __init__(self, path: str):
|
|
72
|
-
"""
|
|
73
|
-
Initialize a MediaAsset instance.
|
|
74
|
-
|
|
75
|
-
Args:
|
|
76
|
-
path (str): The file system path to the media asset or a URL.
|
|
77
|
-
|
|
78
|
-
Raises:
|
|
79
|
-
FileNotFoundError: If the provided file path does not exist.
|
|
80
|
-
ValueError: If path is not a string.
|
|
81
|
-
"""
|
|
82
|
-
if not isinstance(path, str):
|
|
83
|
-
raise ValueError(
|
|
84
|
-
f"Media must be a string, either a local file path or a URL, got {type(path)}"
|
|
85
|
-
)
|
|
86
|
-
|
|
87
|
-
self._url = None
|
|
88
|
-
self._content = None
|
|
89
|
-
self.session: requests.Session = SessionManager.get_session()
|
|
90
|
-
|
|
91
|
-
if re.match(r"^https?://", path):
|
|
92
|
-
self._url = path
|
|
93
|
-
self.name = path.split("/")[-1]
|
|
94
|
-
self.name = self.__check_name_ending(self.name)
|
|
95
|
-
self.path = path
|
|
96
|
-
return
|
|
97
|
-
|
|
98
|
-
if not os.path.exists(path):
|
|
99
|
-
raise FileNotFoundError(f"File not found: {path}")
|
|
100
|
-
|
|
101
|
-
self.path = path
|
|
102
|
-
self.name = path
|
|
103
|
-
|
|
104
|
-
@cached_property
|
|
105
|
-
def content(self) -> bytes:
|
|
106
|
-
"""
|
|
107
|
-
Lazy loader for URL content. Only downloads when first accessed.
|
|
108
|
-
Uses cached_property to store the result after first download.
|
|
109
|
-
"""
|
|
110
|
-
if self._url is None:
|
|
111
|
-
self.path = cast(str, self.path)
|
|
112
|
-
with open(self.path, "rb") as f:
|
|
113
|
-
return f.read()
|
|
114
|
-
|
|
115
|
-
return self.__get_media_bytes(self._url)
|
|
116
|
-
|
|
117
|
-
def get_duration(self) -> int:
|
|
118
|
-
"""
|
|
119
|
-
Get the duration of audio/video files in milliseconds.
|
|
120
|
-
Returns 0 for static images.
|
|
121
|
-
|
|
122
|
-
Returns:
|
|
123
|
-
int: Duration in milliseconds for audio/video, 0 for static images
|
|
124
|
-
|
|
125
|
-
Raises:
|
|
126
|
-
ValueError: If the duration cannot be determined
|
|
127
|
-
"""
|
|
128
|
-
path_to_check = self.name.lower()
|
|
129
|
-
|
|
130
|
-
# Return 0 for static images
|
|
131
|
-
if any(path_to_check.endswith(ext) for ext in ALLOWED_IMAGE_EXTENSIONS):
|
|
132
|
-
return 0
|
|
133
|
-
|
|
134
|
-
try:
|
|
135
|
-
# Create temporary file from content
|
|
136
|
-
with tempfile.NamedTemporaryFile(
|
|
137
|
-
suffix=os.path.splitext(self.name)[1], delete=False
|
|
138
|
-
) as tmp:
|
|
139
|
-
tmp.write(self.content)
|
|
140
|
-
tmp.flush()
|
|
141
|
-
tmp_path = tmp.name
|
|
142
|
-
|
|
143
|
-
try:
|
|
144
|
-
tag = TinyTag.get(tmp_path)
|
|
145
|
-
finally:
|
|
146
|
-
# Clean up the temporary file
|
|
147
|
-
os.unlink(tmp_path)
|
|
148
|
-
|
|
149
|
-
if tag.duration is None:
|
|
150
|
-
raise ValueError("Could not read duration from file")
|
|
151
|
-
|
|
152
|
-
return int(tag.duration * 1000) # Convert to milliseconds
|
|
153
|
-
|
|
154
|
-
except Exception as e:
|
|
155
|
-
raise ValueError(f"Could not determine media duration: {str(e)}")
|
|
156
|
-
|
|
157
|
-
def get_image_dimension(self) -> tuple[int, int] | None:
|
|
158
|
-
"""
|
|
159
|
-
Get the dimensions (width, height) of an image file.
|
|
160
|
-
Returns None for non-image files or if dimensions can't be determined.
|
|
161
|
-
"""
|
|
162
|
-
if not any(self.name.lower().endswith(ext) for ext in ALLOWED_IMAGE_EXTENSIONS):
|
|
163
|
-
return None
|
|
164
|
-
|
|
165
|
-
try:
|
|
166
|
-
img = Image.open(BytesIO(self.content))
|
|
167
|
-
return img.size
|
|
168
|
-
except Exception:
|
|
169
|
-
return None
|
|
170
|
-
|
|
171
|
-
def set_custom_name(self, name: str) -> "MediaAsset":
|
|
172
|
-
"""Set a custom name for the media asset (only works with URLs)."""
|
|
173
|
-
if self._url is not None:
|
|
174
|
-
self.name = self.__check_name_ending(name)
|
|
175
|
-
else:
|
|
176
|
-
raise ValueError("Custom name can only be set for URLs.")
|
|
177
|
-
return self
|
|
178
|
-
|
|
179
|
-
def __check_name_ending(self, name: str) -> str:
|
|
180
|
-
"""Check if the media path is valid."""
|
|
181
|
-
if not any(name.endswith(ext) for ext in ALLOWED_MEDIA_EXTENSIONS):
|
|
182
|
-
logger.warning(
|
|
183
|
-
f"Warning: Supported file types: {ALLOWED_MEDIA_EXTENSIONS}. Image might not be displayed correctly."
|
|
184
|
-
)
|
|
185
|
-
name = name + ".jpg"
|
|
186
|
-
return name
|
|
187
|
-
|
|
188
|
-
def __get_media_type_from_extension(self, url: str) -> Optional[str]:
|
|
189
|
-
"""
|
|
190
|
-
Determine media type from URL file extension.
|
|
191
|
-
|
|
192
|
-
Args:
|
|
193
|
-
url: The URL to check
|
|
194
|
-
|
|
195
|
-
Returns:
|
|
196
|
-
Optional[str]: MIME type if valid extension found, None otherwise
|
|
197
|
-
"""
|
|
198
|
-
try:
|
|
199
|
-
ext = url.lower().split("?")[0].split(".")[-1]
|
|
200
|
-
return self.MIME_TYPES.get(ext)
|
|
201
|
-
except IndexError:
|
|
202
|
-
return None
|
|
203
|
-
|
|
204
|
-
def __validate_image_content(self, content: bytes) -> bool:
|
|
205
|
-
"""
|
|
206
|
-
Validate image content using PIL.
|
|
207
|
-
|
|
208
|
-
Args:
|
|
209
|
-
content: Image bytes to validate
|
|
210
|
-
|
|
211
|
-
Returns:
|
|
212
|
-
bool: True if valid image, False otherwise
|
|
213
|
-
"""
|
|
214
|
-
try:
|
|
215
|
-
img = Image.open(BytesIO(content))
|
|
216
|
-
img.verify()
|
|
217
|
-
return True
|
|
218
|
-
except Exception as e:
|
|
219
|
-
self._logger.debug(f"Image validation failed: {str(e)}")
|
|
220
|
-
return False
|
|
221
|
-
|
|
222
|
-
def __get_media_type_from_signature(self, content: bytes) -> Optional[str]:
|
|
223
|
-
"""
|
|
224
|
-
Determine media type from file signature.
|
|
225
|
-
|
|
226
|
-
Args:
|
|
227
|
-
content: File content bytes
|
|
228
|
-
|
|
229
|
-
Returns:
|
|
230
|
-
Optional[str]: MIME type if valid signature found, None otherwise
|
|
231
|
-
"""
|
|
232
|
-
file_start = content[:32]
|
|
233
|
-
for signature, mime_type in self.FILE_SIGNATURES.items():
|
|
234
|
-
if file_start.startswith(signature) or (signature in file_start[:10]):
|
|
235
|
-
return mime_type
|
|
236
|
-
return None
|
|
237
|
-
|
|
238
|
-
def __get_media_bytes(self, url: str) -> bytes:
|
|
239
|
-
"""
|
|
240
|
-
Downloads and validates media files from URL with retry logic and session reuse.
|
|
241
|
-
|
|
242
|
-
Args:
|
|
243
|
-
url: URL of the media file
|
|
244
|
-
|
|
245
|
-
Returns:
|
|
246
|
-
bytes: Validated media content
|
|
247
|
-
|
|
248
|
-
Raises:
|
|
249
|
-
ValueError: If media type is unsupported or content validation fails
|
|
250
|
-
requests.exceptions.RequestException: If download fails after all retries
|
|
251
|
-
"""
|
|
252
|
-
# Use existing session or throw error if not set
|
|
253
|
-
if self.session is None:
|
|
254
|
-
raise RuntimeError("HTTP session not configured")
|
|
255
|
-
|
|
256
|
-
try:
|
|
257
|
-
response = self.session.get(
|
|
258
|
-
url, stream=False, timeout=(5, 30) # (connect timeout, read timeout)
|
|
259
|
-
)
|
|
260
|
-
response.raise_for_status()
|
|
261
|
-
except requests.exceptions.RequestException as e:
|
|
262
|
-
self._logger.error(
|
|
263
|
-
f"Failed to download media from {url} after retries: {str(e)}"
|
|
264
|
-
)
|
|
265
|
-
raise
|
|
266
|
-
|
|
267
|
-
content = response.content
|
|
268
|
-
content_type = response.headers.get("content-type", "").lower()
|
|
269
|
-
|
|
270
|
-
# Case 1: Content-type is already allowed
|
|
271
|
-
if any(content_type.startswith(t) for t in self.ALLOWED_TYPES):
|
|
272
|
-
self._logger.debug(f"Content-type {content_type} is allowed")
|
|
273
|
-
return content
|
|
274
|
-
|
|
275
|
-
# Case 2: Try to validate based on extension
|
|
276
|
-
mime_type = self.__get_media_type_from_extension(url)
|
|
277
|
-
if mime_type and mime_type.startswith(tuple(self.ALLOWED_TYPES)):
|
|
278
|
-
self._logger.debug(f"Found valid mime type from extension: {mime_type}")
|
|
279
|
-
return content
|
|
280
|
-
|
|
281
|
-
# Case 3: Try to validate based on file signature
|
|
282
|
-
mime_type = self.__get_media_type_from_signature(content)
|
|
283
|
-
if mime_type and mime_type.startswith(tuple(self.ALLOWED_TYPES)):
|
|
284
|
-
self._logger.debug(f"Found valid mime type from signature: {mime_type}")
|
|
285
|
-
return content
|
|
286
|
-
|
|
287
|
-
# Case 4: Last resort - try direct image validation
|
|
288
|
-
if self.__validate_image_content(content):
|
|
289
|
-
self._logger.debug("Content validated as image through direct validation")
|
|
290
|
-
return content
|
|
291
|
-
|
|
292
|
-
# If we get here, validation failed
|
|
293
|
-
error_msg = (
|
|
294
|
-
f"Could not validate media type from content.\n"
|
|
295
|
-
f"Content-Type: {content_type}\n"
|
|
296
|
-
f'URL extension: {url.split("?")[0].split(".")[-1]}\n'
|
|
297
|
-
f"Allowed types: {self.ALLOWED_TYPES}"
|
|
298
|
-
)
|
|
299
|
-
self._logger.error(error_msg)
|
|
300
|
-
raise ValueError(error_msg)
|
|
301
|
-
|
|
302
|
-
def is_local(self) -> bool:
|
|
303
|
-
"""Check if the media asset is a local file."""
|
|
304
|
-
return self._url is None
|
|
305
|
-
|
|
306
|
-
def to_file(self) -> StrictStr | tuple[StrictStr, StrictBytes] | StrictBytes:
|
|
307
|
-
"""Convert the media asset to a file representation."""
|
|
308
|
-
if self._url is None:
|
|
309
|
-
self.path = cast(str, self.path)
|
|
310
|
-
return self.path
|
|
311
|
-
else:
|
|
312
|
-
return (self.name, self.content)
|
|
313
|
-
|
|
314
|
-
def __str__(self) -> str:
|
|
315
|
-
return f"MediaAsset(path={self.path})"
|
|
316
|
-
|
|
317
|
-
def __repr__(self) -> str:
|
|
318
|
-
return f"MediaAsset(path={self.path})"
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"""Multi Asset Module
|
|
2
|
-
|
|
3
|
-
Defines the MultiAsset class for handling multiple BaseAsset instances.
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
from rapidata.rapidata_client.datapoints.assets._base_asset import BaseAsset
|
|
7
|
-
from rapidata.rapidata_client.datapoints.assets import MediaAsset, TextAsset
|
|
8
|
-
from typing import Iterator, Sequence
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class MultiAsset(BaseAsset):
|
|
12
|
-
"""MultiAsset Class
|
|
13
|
-
|
|
14
|
-
Represents a collection of multiple BaseAsset instances.
|
|
15
|
-
|
|
16
|
-
Args:
|
|
17
|
-
assets (List[BaseAsset]): A list of BaseAsset instances to be managed together.
|
|
18
|
-
"""
|
|
19
|
-
|
|
20
|
-
def __init__(self, assets: Sequence[BaseAsset]) -> None:
|
|
21
|
-
"""
|
|
22
|
-
Initialize a MultiAsset instance.
|
|
23
|
-
|
|
24
|
-
Args:
|
|
25
|
-
assets (List[BaseAsset]): A list of BaseAsset instances to be managed together.
|
|
26
|
-
"""
|
|
27
|
-
if len(assets) != 2:
|
|
28
|
-
raise ValueError("Assets must come in pairs for comparison tasks.")
|
|
29
|
-
|
|
30
|
-
for asset in assets:
|
|
31
|
-
if not isinstance(asset, (TextAsset, MediaAsset)):
|
|
32
|
-
raise TypeError("All assets must be a TextAsset or MediaAsset.")
|
|
33
|
-
|
|
34
|
-
if not all(isinstance(asset, type(assets[0])) for asset in assets):
|
|
35
|
-
raise ValueError("All assets must be of the same type.")
|
|
36
|
-
|
|
37
|
-
self.assets = assets
|
|
38
|
-
|
|
39
|
-
def __len__(self) -> int:
|
|
40
|
-
"""
|
|
41
|
-
Get the number of assets in the MultiAsset.
|
|
42
|
-
|
|
43
|
-
Returns:
|
|
44
|
-
int: The number of assets.
|
|
45
|
-
"""
|
|
46
|
-
return len(self.assets)
|
|
47
|
-
|
|
48
|
-
def __iter__(self) -> Iterator[BaseAsset]:
|
|
49
|
-
"""
|
|
50
|
-
Return an iterator over the assets in the MultiAsset.
|
|
51
|
-
|
|
52
|
-
Returns:
|
|
53
|
-
Iterator[BaseAsset]: An iterator over the assets.
|
|
54
|
-
"""
|
|
55
|
-
return iter(self.assets)
|
|
56
|
-
|
|
57
|
-
def __str__(self) -> str:
|
|
58
|
-
return f"MultiAsset(assets={self.assets})"
|
|
59
|
-
|
|
60
|
-
def __repr__(self) -> str:
|
|
61
|
-
return f"MultiAsset(assets={self.assets})"
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import requests
|
|
2
|
-
from requests.adapters import HTTPAdapter
|
|
3
|
-
from urllib3.util.retry import Retry
|
|
4
|
-
|
|
5
|
-
from rapidata.rapidata_client.config.rapidata_config import rapidata_config
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class SessionManager:
|
|
9
|
-
_session = None
|
|
10
|
-
|
|
11
|
-
@classmethod
|
|
12
|
-
def get_session(
|
|
13
|
-
cls,
|
|
14
|
-
) -> requests.Session:
|
|
15
|
-
"""Get a singleton requests session with retry logic.
|
|
16
|
-
|
|
17
|
-
Returns:
|
|
18
|
-
requests.Session: A singleton requests session with retry logic.
|
|
19
|
-
"""
|
|
20
|
-
if cls._session is None:
|
|
21
|
-
max_retries: int = rapidata_config.uploadMaxRetries
|
|
22
|
-
max_workers: int = rapidata_config.maxUploadWorkers
|
|
23
|
-
cls._session = requests.Session()
|
|
24
|
-
retries = Retry(
|
|
25
|
-
total=max_retries,
|
|
26
|
-
backoff_factor=1,
|
|
27
|
-
status_forcelist=[500, 502, 503, 504],
|
|
28
|
-
allowed_methods=["GET"],
|
|
29
|
-
respect_retry_after_header=True,
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
adapter = HTTPAdapter(
|
|
33
|
-
pool_connections=max_workers * 2,
|
|
34
|
-
pool_maxsize=max_workers * 4,
|
|
35
|
-
max_retries=retries,
|
|
36
|
-
)
|
|
37
|
-
cls._session.mount("http://", adapter)
|
|
38
|
-
cls._session.mount("https://", adapter)
|
|
39
|
-
|
|
40
|
-
return cls._session
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"""Text Asset Module
|
|
2
|
-
|
|
3
|
-
Defines the TextAsset class for handling textual data within assets.
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
from rapidata.rapidata_client.datapoints.assets._base_asset import BaseAsset
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class TextAsset(BaseAsset):
|
|
10
|
-
"""TextAsset Class
|
|
11
|
-
|
|
12
|
-
Represents a textual asset.
|
|
13
|
-
|
|
14
|
-
Args:
|
|
15
|
-
text (str): The text content of the asset.
|
|
16
|
-
"""
|
|
17
|
-
|
|
18
|
-
def __init__(self, text: str):
|
|
19
|
-
"""
|
|
20
|
-
Initialize a TextAsset instance.
|
|
21
|
-
|
|
22
|
-
Args:
|
|
23
|
-
text (str): The textual content of the asset.
|
|
24
|
-
"""
|
|
25
|
-
if not isinstance(text, str):
|
|
26
|
-
raise ValueError(f"Text must be a string, got {type(text)}")
|
|
27
|
-
|
|
28
|
-
self.text = text
|
|
29
|
-
|
|
30
|
-
def __str__(self) -> str:
|
|
31
|
-
return f"TextAsset(text={self.text})"
|
|
32
|
-
|
|
33
|
-
def __repr__(self) -> str:
|
|
34
|
-
return f"TextAsset(text={self.text})"
|
|
@@ -1,22 +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.datapoints.metadata._base_metadata import Metadata
|
|
4
|
-
from rapidata.api_client.models.prompt_asset_metadata_input_asset import PromptAssetMetadataInputAsset
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class MediaAssetMetadata(Metadata):
|
|
8
|
-
|
|
9
|
-
def __init__(self, url: str):
|
|
10
|
-
super().__init__()
|
|
11
|
-
self._url = url
|
|
12
|
-
|
|
13
|
-
def to_model(self):
|
|
14
|
-
return PromptAssetMetadataInput(
|
|
15
|
-
_t="PromptAssetMetadataInput",
|
|
16
|
-
asset=PromptAssetMetadataInputAsset(
|
|
17
|
-
actual_instance=UrlAssetInput(
|
|
18
|
-
_t="UrlAssetInput",
|
|
19
|
-
url=self._url
|
|
20
|
-
)
|
|
21
|
-
)
|
|
22
|
-
)
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
from rapidata.rapidata_client.datapoints.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,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()
|