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,34 +1,40 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
|
|
1
4
|
# Standard library imports
|
|
2
5
|
import json
|
|
3
6
|
import urllib.parse
|
|
4
7
|
import webbrowser
|
|
5
8
|
from time import sleep
|
|
6
|
-
from typing import cast
|
|
9
|
+
from typing import cast, Callable, TypeVar, TYPE_CHECKING
|
|
7
10
|
from colorama import Fore
|
|
8
11
|
from datetime import datetime
|
|
9
12
|
from tqdm import tqdm
|
|
10
13
|
|
|
11
14
|
# Local/application imports
|
|
12
|
-
from rapidata.api_client.exceptions import ApiException
|
|
13
|
-
from rapidata.api_client.models.campaign_artifact_model import CampaignArtifactModel
|
|
14
|
-
from rapidata.api_client.models.order_state import OrderState
|
|
15
|
-
from rapidata.api_client.models.preview_order_model import PreviewOrderModel
|
|
16
|
-
from rapidata.api_client.models.submit_order_model import SubmitOrderModel
|
|
17
|
-
from rapidata.api_client.models.preliminary_download_model import (
|
|
18
|
-
PreliminaryDownloadModel,
|
|
19
|
-
)
|
|
20
|
-
from rapidata.api_client.models.workflow_artifact_model import WorkflowArtifactModel
|
|
21
|
-
from rapidata.rapidata_client.order.rapidata_results import RapidataResults
|
|
22
15
|
from rapidata.service.openapi_service import OpenAPIService
|
|
23
|
-
from rapidata.rapidata_client.
|
|
16
|
+
from rapidata.rapidata_client.config import (
|
|
24
17
|
logger,
|
|
25
18
|
managed_print,
|
|
26
|
-
|
|
19
|
+
rapidata_config,
|
|
20
|
+
tracer,
|
|
27
21
|
)
|
|
28
|
-
from rapidata.rapidata_client.api.
|
|
22
|
+
from rapidata.rapidata_client.api.rapidata_api_client import (
|
|
29
23
|
suppress_rapidata_error_logging,
|
|
30
24
|
)
|
|
31
25
|
|
|
26
|
+
if TYPE_CHECKING:
|
|
27
|
+
from rapidata.api_client.models.campaign_artifact_model import CampaignArtifactModel
|
|
28
|
+
from rapidata.api_client.models.file_stream_result import FileStreamResult
|
|
29
|
+
from rapidata.api_client.models.order_state import OrderState
|
|
30
|
+
from rapidata.api_client.models.workflow_artifact_model import WorkflowArtifactModel
|
|
31
|
+
from rapidata.api_client.models.get_workflow_progress_result import (
|
|
32
|
+
GetWorkflowProgressResult,
|
|
33
|
+
)
|
|
34
|
+
from rapidata.rapidata_client.results.rapidata_results import RapidataResults
|
|
35
|
+
|
|
36
|
+
T = TypeVar("T")
|
|
37
|
+
|
|
32
38
|
|
|
33
39
|
class RapidataOrder:
|
|
34
40
|
"""
|
|
@@ -52,58 +58,203 @@ class RapidataOrder:
|
|
|
52
58
|
self.id = order_id
|
|
53
59
|
self.name = name
|
|
54
60
|
self.__created_at: datetime | None = None
|
|
55
|
-
self.
|
|
61
|
+
self._openapi_service = openapi_service
|
|
56
62
|
self.__workflow_id: str = ""
|
|
57
63
|
self.__campaign_id: str = ""
|
|
58
64
|
self.__pipeline_id: str = ""
|
|
59
|
-
self._max_retries = 10
|
|
60
|
-
self._retry_delay = 2
|
|
61
65
|
self.order_details_page = (
|
|
62
|
-
f"https://app.{self.
|
|
66
|
+
f"https://app.{self._openapi_service.environment}/order/detail/{self.id}"
|
|
63
67
|
)
|
|
64
68
|
logger.debug("RapidataOrder initialized")
|
|
65
69
|
|
|
70
|
+
def _get_order_failure_message(self) -> str | None:
|
|
71
|
+
"""Retrieves the failure message from the order if available."""
|
|
72
|
+
try:
|
|
73
|
+
order = self._openapi_service.order_api.order_order_id_get(self.id)
|
|
74
|
+
return order.failure_message
|
|
75
|
+
except Exception:
|
|
76
|
+
logger.debug("Failed to get order failure message", self, exc_info=True)
|
|
77
|
+
return None
|
|
78
|
+
|
|
79
|
+
def _retry_operation(
|
|
80
|
+
self,
|
|
81
|
+
operation: Callable[[], T],
|
|
82
|
+
max_retries: int = 10,
|
|
83
|
+
retry_delay: float = 2,
|
|
84
|
+
) -> T:
|
|
85
|
+
"""
|
|
86
|
+
Unified retry logic for all operations with failure message handling.
|
|
87
|
+
|
|
88
|
+
Args:
|
|
89
|
+
operation: The operation to retry
|
|
90
|
+
max_retries: Maximum number of retry attempts
|
|
91
|
+
retry_delay: Delay between retries in seconds
|
|
92
|
+
|
|
93
|
+
Returns:
|
|
94
|
+
The result of the operation
|
|
95
|
+
|
|
96
|
+
Raises:
|
|
97
|
+
Exception: If the operation fails after all retries, includes order failure message if available
|
|
98
|
+
"""
|
|
99
|
+
last_exception = None
|
|
100
|
+
|
|
101
|
+
for attempt in range(max_retries):
|
|
102
|
+
try:
|
|
103
|
+
return operation()
|
|
104
|
+
except Exception as e:
|
|
105
|
+
last_exception = e
|
|
106
|
+
if attempt < max_retries - 1:
|
|
107
|
+
sleep(retry_delay)
|
|
108
|
+
|
|
109
|
+
failure_message = self._get_order_failure_message()
|
|
110
|
+
if failure_message:
|
|
111
|
+
raise Exception(failure_message) from last_exception
|
|
112
|
+
|
|
113
|
+
raise Exception(
|
|
114
|
+
f"Operation failed after {max_retries} retries: {str(last_exception)}"
|
|
115
|
+
) from last_exception
|
|
116
|
+
|
|
117
|
+
def _wait_for_state(
|
|
118
|
+
self,
|
|
119
|
+
target_states: list[OrderState],
|
|
120
|
+
check_interval: float = 5,
|
|
121
|
+
status_message: str | None = None,
|
|
122
|
+
) -> str:
|
|
123
|
+
"""
|
|
124
|
+
Wait until the order reaches one of the target states.
|
|
125
|
+
|
|
126
|
+
Args:
|
|
127
|
+
target_states: List of states to wait for
|
|
128
|
+
check_interval: How often to check the state in seconds
|
|
129
|
+
status_message: Optional message to display while waiting
|
|
130
|
+
|
|
131
|
+
Returns:
|
|
132
|
+
The final state reached
|
|
133
|
+
"""
|
|
134
|
+
while (current_state := self.get_status()) not in target_states:
|
|
135
|
+
if status_message:
|
|
136
|
+
logger.debug(status_message, self, current_state)
|
|
137
|
+
sleep(check_interval)
|
|
138
|
+
|
|
139
|
+
return current_state
|
|
140
|
+
|
|
66
141
|
@property
|
|
67
142
|
def created_at(self) -> datetime:
|
|
68
143
|
"""Returns the creation date of the order."""
|
|
69
144
|
if not self.__created_at:
|
|
70
|
-
self.__created_at = self.
|
|
145
|
+
self.__created_at = self._openapi_service.order_api.order_order_id_get(
|
|
71
146
|
self.id
|
|
72
147
|
).order_date
|
|
73
148
|
return self.__created_at
|
|
74
149
|
|
|
75
|
-
def
|
|
76
|
-
"""
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
150
|
+
def __get_pipeline_id(self) -> str:
|
|
151
|
+
"""Gets the pipeline ID for this order (cached, internal use only)."""
|
|
152
|
+
if not self.__pipeline_id:
|
|
153
|
+
self.__pipeline_id = self._retry_operation(
|
|
154
|
+
lambda: self._openapi_service.order_api.order_order_id_get(
|
|
155
|
+
self.id
|
|
156
|
+
).pipeline_id,
|
|
157
|
+
)
|
|
158
|
+
return self.__pipeline_id
|
|
159
|
+
|
|
160
|
+
def __get_workflow_id(self) -> str:
|
|
161
|
+
"""Gets the workflow ID for this order (cached, internal use only)."""
|
|
162
|
+
if not self.__workflow_id:
|
|
163
|
+
self.__load_workflow_and_campaign_ids()
|
|
164
|
+
return self.__workflow_id
|
|
165
|
+
|
|
166
|
+
def __get_campaign_id(self) -> str:
|
|
167
|
+
"""Gets the campaign ID for this order (cached, internal use only)."""
|
|
168
|
+
if not self.__campaign_id:
|
|
169
|
+
self.__load_workflow_and_campaign_ids()
|
|
170
|
+
return self.__campaign_id
|
|
171
|
+
|
|
172
|
+
def __load_workflow_and_campaign_ids(self) -> None:
|
|
173
|
+
"""Loads workflow and campaign IDs from the pipeline (with retry logic)."""
|
|
174
|
+
if self.__workflow_id and self.__campaign_id:
|
|
175
|
+
return
|
|
176
|
+
|
|
177
|
+
def fetch_ids():
|
|
178
|
+
from rapidata.api_client.models.workflow_artifact_model import (
|
|
179
|
+
WorkflowArtifactModel,
|
|
180
|
+
)
|
|
181
|
+
from rapidata.api_client.models.campaign_artifact_model import (
|
|
182
|
+
CampaignArtifactModel,
|
|
183
|
+
)
|
|
184
|
+
|
|
185
|
+
pipeline_id = self.__get_pipeline_id()
|
|
186
|
+
pipeline = self._openapi_service.pipeline_api.pipeline_pipeline_id_get(
|
|
187
|
+
pipeline_id
|
|
188
|
+
)
|
|
189
|
+
self.__workflow_id = cast(
|
|
190
|
+
WorkflowArtifactModel,
|
|
191
|
+
pipeline.artifacts["workflow-artifact"].actual_instance,
|
|
192
|
+
).workflow_id
|
|
193
|
+
self.__campaign_id = cast(
|
|
194
|
+
CampaignArtifactModel,
|
|
195
|
+
pipeline.artifacts["campaign-artifact"].actual_instance,
|
|
196
|
+
).campaign_id
|
|
197
|
+
|
|
198
|
+
self._retry_operation(fetch_ids)
|
|
199
|
+
|
|
200
|
+
def __get_workflow_progress(self) -> GetWorkflowProgressResult:
|
|
201
|
+
"""Gets the workflow progress (internal use only)."""
|
|
202
|
+
|
|
203
|
+
def get_progress():
|
|
204
|
+
from rapidata.api_client.models.get_workflow_progress_result import (
|
|
205
|
+
GetWorkflowProgressResult,
|
|
206
|
+
)
|
|
207
|
+
|
|
208
|
+
with suppress_rapidata_error_logging():
|
|
209
|
+
workflow_id = self.__get_workflow_id()
|
|
210
|
+
return self._openapi_service.workflow_api.workflow_workflow_id_progress_get(
|
|
211
|
+
workflow_id
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
return self._retry_operation(
|
|
215
|
+
get_progress,
|
|
216
|
+
max_retries=5,
|
|
217
|
+
retry_delay=4,
|
|
84
218
|
)
|
|
85
|
-
|
|
219
|
+
|
|
220
|
+
def run(self) -> RapidataOrder:
|
|
221
|
+
"""Runs the order to start collecting responses."""
|
|
222
|
+
with tracer.start_as_current_span("RapidataOrder.run"):
|
|
223
|
+
from rapidata.api_client.models.submit_order_model import SubmitOrderModel
|
|
224
|
+
|
|
225
|
+
logger.info("Starting order '%s'", self)
|
|
226
|
+
self._openapi_service.order_api.order_order_id_submit_post(
|
|
227
|
+
self.id, SubmitOrderModel(ignoreFailedDatapoints=True)
|
|
228
|
+
)
|
|
229
|
+
logger.debug("Order '%s' has been started.", self)
|
|
230
|
+
managed_print(
|
|
231
|
+
f"Order '{self.name}' is now viewable under: {self.order_details_page}"
|
|
232
|
+
)
|
|
233
|
+
return self
|
|
86
234
|
|
|
87
235
|
def pause(self) -> None:
|
|
88
236
|
"""Pauses the order."""
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
237
|
+
with tracer.start_as_current_span("RapidataOrder.pause"):
|
|
238
|
+
logger.info("Pausing order '%s'", self)
|
|
239
|
+
self._openapi_service.order_api.order_order_id_pause_post(self.id)
|
|
240
|
+
logger.debug("Order '%s' has been paused.", self)
|
|
241
|
+
managed_print(f"Order '{self}' has been paused.")
|
|
93
242
|
|
|
94
243
|
def unpause(self) -> None:
|
|
95
244
|
"""Unpauses/resumes the order."""
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
245
|
+
with tracer.start_as_current_span("RapidataOrder.unpause"):
|
|
246
|
+
logger.info("Unpausing order '%s'", self)
|
|
247
|
+
self._openapi_service.order_api.order_order_id_resume_post(self.id)
|
|
248
|
+
logger.debug("Order '%s' has been unpaused.", self)
|
|
249
|
+
managed_print(f"Order '{self}' has been unpaused.")
|
|
100
250
|
|
|
101
251
|
def delete(self) -> None:
|
|
102
252
|
"""Deletes the order."""
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
253
|
+
with tracer.start_as_current_span("RapidataOrder.delete"):
|
|
254
|
+
logger.info("Deleting order '%s'", self)
|
|
255
|
+
self._openapi_service.order_api.order_order_id_delete(self.id)
|
|
256
|
+
logger.debug("Order '%s' has been deleted.", self)
|
|
257
|
+
managed_print(f"Order '{self}' has been deleted.")
|
|
107
258
|
|
|
108
259
|
def get_status(self) -> str:
|
|
109
260
|
"""
|
|
@@ -119,7 +270,8 @@ class RapidataOrder:
|
|
|
119
270
|
Completed: The order has been completed.\n
|
|
120
271
|
Failed: The order has failed.
|
|
121
272
|
"""
|
|
122
|
-
|
|
273
|
+
with tracer.start_as_current_span("RapidataOrder.get_status"):
|
|
274
|
+
return self._openapi_service.order_api.order_order_id_get(self.id).state
|
|
123
275
|
|
|
124
276
|
def display_progress_bar(self, refresh_rate: int = 5) -> None:
|
|
125
277
|
"""
|
|
@@ -128,12 +280,15 @@ class RapidataOrder:
|
|
|
128
280
|
Args:
|
|
129
281
|
refresh_rate: How often to refresh the progress bar, in seconds.
|
|
130
282
|
"""
|
|
283
|
+
from rapidata.api_client.models.order_state import OrderState
|
|
284
|
+
|
|
131
285
|
if refresh_rate < 1:
|
|
132
286
|
raise ValueError("refresh_rate must be at least 1")
|
|
133
287
|
|
|
134
288
|
if self.get_status() == OrderState.CREATED:
|
|
135
289
|
raise Exception("Order has not been started yet. Please start it first.")
|
|
136
290
|
|
|
291
|
+
# Wait for submission review
|
|
137
292
|
while self.get_status() == OrderState.SUBMITTED:
|
|
138
293
|
managed_print(
|
|
139
294
|
f"Order '{self}' is submitted and being reviewed. Standby...", end="\r"
|
|
@@ -142,7 +297,9 @@ class RapidataOrder:
|
|
|
142
297
|
|
|
143
298
|
if self.get_status() == OrderState.MANUALREVIEW:
|
|
144
299
|
raise Exception(
|
|
145
|
-
f"Order '{self}' is in manual review. It might take some time to start.
|
|
300
|
+
f"Order '{self}' is in manual review. It might take some time to start. "
|
|
301
|
+
f"To speed up the process, contact support (info@rapidata.ai).\n"
|
|
302
|
+
f"Once started, run this method again to display the progress bar."
|
|
146
303
|
)
|
|
147
304
|
|
|
148
305
|
with tqdm(
|
|
@@ -150,11 +307,14 @@ class RapidataOrder:
|
|
|
150
307
|
desc="Processing order",
|
|
151
308
|
unit="%",
|
|
152
309
|
bar_format="{desc}: {percentage:3.0f}%|{bar}| completed [{elapsed}<{remaining}, {rate_fmt}]",
|
|
153
|
-
disable=
|
|
310
|
+
disable=rapidata_config.logging.silent_mode,
|
|
154
311
|
) as pbar:
|
|
155
312
|
last_percentage = 0
|
|
156
313
|
while True:
|
|
157
|
-
current_percentage =
|
|
314
|
+
current_percentage = (
|
|
315
|
+
self.__get_workflow_progress().completion_percentage
|
|
316
|
+
)
|
|
317
|
+
|
|
158
318
|
if current_percentage > last_percentage:
|
|
159
319
|
pbar.update(current_percentage - last_percentage)
|
|
160
320
|
last_percentage = current_percentage
|
|
@@ -164,26 +324,6 @@ class RapidataOrder:
|
|
|
164
324
|
|
|
165
325
|
sleep(refresh_rate)
|
|
166
326
|
|
|
167
|
-
@property
|
|
168
|
-
def _workflow_progress(self):
|
|
169
|
-
"""
|
|
170
|
-
Gets the workflow progress.
|
|
171
|
-
"""
|
|
172
|
-
progress = None
|
|
173
|
-
for _ in range(self._max_retries // 2):
|
|
174
|
-
try:
|
|
175
|
-
with suppress_rapidata_error_logging():
|
|
176
|
-
workflow_id = self.__get_workflow_id()
|
|
177
|
-
progress = self.__openapi_service.workflow_api.workflow_workflow_id_progress_get(
|
|
178
|
-
workflow_id
|
|
179
|
-
)
|
|
180
|
-
break
|
|
181
|
-
except Exception:
|
|
182
|
-
sleep(self._retry_delay * 2)
|
|
183
|
-
if not progress:
|
|
184
|
-
raise Exception("Failed to get progress. Please try again later.")
|
|
185
|
-
return progress
|
|
186
|
-
|
|
187
327
|
def get_results(self, preliminary_results: bool = False) -> RapidataResults:
|
|
188
328
|
"""
|
|
189
329
|
Gets the results of the order.
|
|
@@ -191,44 +331,74 @@ class RapidataOrder:
|
|
|
191
331
|
|
|
192
332
|
Args:
|
|
193
333
|
preliminary_results: If True, returns the preliminary results of the order. Defaults to False.
|
|
194
|
-
Note that preliminary results are not final and may not contain all the datapoints & responses. Only the
|
|
334
|
+
Note that preliminary results are not final and may not contain all the datapoints & responses. Only the ones that are already available.
|
|
195
335
|
"""
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
OrderState.
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
336
|
+
with tracer.start_as_current_span("RapidataOrder.get_results"):
|
|
337
|
+
from rapidata.api_client.models.order_state import OrderState
|
|
338
|
+
from rapidata.api_client.exceptions import ApiException
|
|
339
|
+
from rapidata.rapidata_client.results.rapidata_results import RapidataResults
|
|
340
|
+
|
|
341
|
+
logger.info("Getting results for order '%s'...", self)
|
|
342
|
+
|
|
343
|
+
if preliminary_results and self.get_status() not in [OrderState.COMPLETED]:
|
|
344
|
+
return self._get_preliminary_results()
|
|
345
|
+
|
|
346
|
+
if preliminary_results and self.get_status() == OrderState.COMPLETED:
|
|
347
|
+
managed_print("Order is already completed. Returning final results.")
|
|
348
|
+
|
|
349
|
+
self._wait_for_state(
|
|
350
|
+
target_states=[
|
|
351
|
+
OrderState.COMPLETED,
|
|
352
|
+
OrderState.PAUSED,
|
|
353
|
+
OrderState.MANUALREVIEW,
|
|
354
|
+
OrderState.FAILED,
|
|
355
|
+
],
|
|
356
|
+
status_message="Order '%s' is in state %s, waiting for completion...",
|
|
357
|
+
)
|
|
210
358
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
self.__openapi_service.order_api.order_order_id_download_results_get(
|
|
359
|
+
try:
|
|
360
|
+
results = (
|
|
361
|
+
self._openapi_service.order_api.order_order_id_download_results_get(
|
|
215
362
|
order_id=self.id
|
|
216
363
|
)
|
|
217
364
|
)
|
|
365
|
+
return RapidataResults(json.loads(results))
|
|
366
|
+
except (ApiException, json.JSONDecodeError) as e:
|
|
367
|
+
raise Exception(f"Failed to get order results: {str(e)}") from e
|
|
368
|
+
|
|
369
|
+
def _get_preliminary_results(self) -> RapidataResults:
|
|
370
|
+
"""Fetches preliminary results for an in-progress order."""
|
|
371
|
+
from rapidata.api_client.models.preliminary_download_model import (
|
|
372
|
+
PreliminaryDownloadModel,
|
|
373
|
+
)
|
|
374
|
+
from rapidata.api_client.exceptions import ApiException
|
|
375
|
+
from rapidata.rapidata_client.results.rapidata_results import RapidataResults
|
|
376
|
+
|
|
377
|
+
try:
|
|
378
|
+
pipeline_id = self.__get_pipeline_id()
|
|
379
|
+
download_id = self._openapi_service.pipeline_api.pipeline_pipeline_id_preliminary_download_post(
|
|
380
|
+
pipeline_id, PreliminaryDownloadModel(sendEmail=False)
|
|
381
|
+
).download_id
|
|
382
|
+
|
|
383
|
+
def check_results():
|
|
384
|
+
results = self._openapi_service.pipeline_api.pipeline_preliminary_download_preliminary_download_id_get(
|
|
385
|
+
preliminary_download_id=download_id
|
|
386
|
+
)
|
|
387
|
+
return RapidataResults(json.loads(results))
|
|
388
|
+
|
|
389
|
+
return self._retry_operation(
|
|
390
|
+
check_results,
|
|
391
|
+
max_retries=60,
|
|
392
|
+
retry_delay=1,
|
|
218
393
|
)
|
|
394
|
+
|
|
219
395
|
except (ApiException, json.JSONDecodeError) as e:
|
|
220
|
-
raise Exception(f"Failed to get
|
|
396
|
+
raise Exception(f"Failed to get preliminary results: {str(e)}") from e
|
|
221
397
|
|
|
222
398
|
def view(self) -> None:
|
|
223
|
-
"""
|
|
224
|
-
Opens the order details page in the browser.
|
|
225
|
-
|
|
226
|
-
Raises:
|
|
227
|
-
Exception: If the order is not in processing state.
|
|
228
|
-
"""
|
|
399
|
+
"""Opens the order details page in the browser."""
|
|
229
400
|
logger.info("Opening order details page in browser...")
|
|
230
|
-
|
|
231
|
-
if not could_open_browser:
|
|
401
|
+
if not webbrowser.open(self.order_details_page):
|
|
232
402
|
encoded_url = urllib.parse.quote(
|
|
233
403
|
self.order_details_page, safe="%/:=&?~#+!$,;'@()*[]"
|
|
234
404
|
)
|
|
@@ -239,24 +409,23 @@ class RapidataOrder:
|
|
|
239
409
|
)
|
|
240
410
|
|
|
241
411
|
def preview(self) -> None:
|
|
242
|
-
"""
|
|
243
|
-
|
|
412
|
+
"""Opens a preview of the order in the browser."""
|
|
413
|
+
from rapidata.api_client.models.order_state import OrderState
|
|
414
|
+
from rapidata.api_client.models.preview_order_model import PreviewOrderModel
|
|
244
415
|
|
|
245
|
-
Raises:
|
|
246
|
-
Exception: If the order is not in processing state.
|
|
247
|
-
"""
|
|
248
416
|
logger.info("Opening order preview in browser...")
|
|
417
|
+
|
|
249
418
|
if self.get_status() == OrderState.CREATED:
|
|
250
419
|
logger.info("Order is still in state created. Setting it to preview.")
|
|
251
|
-
self.
|
|
420
|
+
self._openapi_service.order_api.order_order_id_preview_post(
|
|
252
421
|
self.id, PreviewOrderModel(ignoreFailedDatapoints=True)
|
|
253
422
|
)
|
|
254
423
|
logger.info("Order is now in preview state.")
|
|
255
424
|
|
|
256
425
|
campaign_id = self.__get_campaign_id()
|
|
257
|
-
auth_url = f"https://app.{self.
|
|
258
|
-
|
|
259
|
-
if not
|
|
426
|
+
auth_url = f"https://app.{self._openapi_service.environment}/order/detail/{self.id}/preview?campaignId={campaign_id}"
|
|
427
|
+
|
|
428
|
+
if not webbrowser.open(auth_url):
|
|
260
429
|
encoded_url = urllib.parse.quote(auth_url, safe="%/:=&?~#+!$,;'@()*[]")
|
|
261
430
|
managed_print(
|
|
262
431
|
Fore.RED
|
|
@@ -264,80 +433,6 @@ class RapidataOrder:
|
|
|
264
433
|
+ Fore.RESET
|
|
265
434
|
)
|
|
266
435
|
|
|
267
|
-
def __get_pipeline_id(self) -> str:
|
|
268
|
-
"""Internal method to fetch and cache the pipeline ID."""
|
|
269
|
-
if not self.__pipeline_id:
|
|
270
|
-
for _ in range(self._max_retries):
|
|
271
|
-
try:
|
|
272
|
-
self.__pipeline_id = (
|
|
273
|
-
self.__openapi_service.order_api.order_order_id_get(
|
|
274
|
-
self.id
|
|
275
|
-
).pipeline_id
|
|
276
|
-
)
|
|
277
|
-
break
|
|
278
|
-
except Exception:
|
|
279
|
-
sleep(self._retry_delay)
|
|
280
|
-
else:
|
|
281
|
-
raise Exception("Failed to fetch pipeline ID after retries.")
|
|
282
|
-
return self.__pipeline_id
|
|
283
|
-
|
|
284
|
-
def __get_workflow_id(self) -> str:
|
|
285
|
-
"""Internal method to fetch and cache the workflow ID."""
|
|
286
|
-
if not self.__workflow_id:
|
|
287
|
-
self.__fetch_workflow_and_campaign_ids()
|
|
288
|
-
return self.__workflow_id
|
|
289
|
-
|
|
290
|
-
def __get_campaign_id(self) -> str:
|
|
291
|
-
"""Internal method to fetch and cache the campaign ID."""
|
|
292
|
-
if not self.__campaign_id:
|
|
293
|
-
self.__fetch_workflow_and_campaign_ids()
|
|
294
|
-
return self.__campaign_id
|
|
295
|
-
|
|
296
|
-
def __fetch_workflow_and_campaign_ids(self) -> None:
|
|
297
|
-
"""Fetches workflow and campaign IDs from the pipeline."""
|
|
298
|
-
if self.__workflow_id and self.__campaign_id:
|
|
299
|
-
return
|
|
300
|
-
pipeline_id = self.__get_pipeline_id()
|
|
301
|
-
for _ in range(self._max_retries):
|
|
302
|
-
try:
|
|
303
|
-
pipeline = self.__openapi_service.pipeline_api.pipeline_pipeline_id_get(
|
|
304
|
-
pipeline_id
|
|
305
|
-
)
|
|
306
|
-
self.__workflow_id = cast(
|
|
307
|
-
WorkflowArtifactModel,
|
|
308
|
-
pipeline.artifacts["workflow-artifact"].actual_instance,
|
|
309
|
-
).workflow_id
|
|
310
|
-
self.__campaign_id = cast(
|
|
311
|
-
CampaignArtifactModel,
|
|
312
|
-
pipeline.artifacts["campaign-artifact"].actual_instance,
|
|
313
|
-
).campaign_id
|
|
314
|
-
return
|
|
315
|
-
except Exception:
|
|
316
|
-
sleep(self._retry_delay)
|
|
317
|
-
raise Exception("Failed to fetch workflow and campaign IDs after retries.")
|
|
318
|
-
|
|
319
|
-
def __get_preliminary_results(self) -> RapidataResults:
|
|
320
|
-
"""Internal method to fetch preliminary results."""
|
|
321
|
-
try:
|
|
322
|
-
pipeline_id = self.__get_pipeline_id()
|
|
323
|
-
download_id = self.__openapi_service.pipeline_api.pipeline_pipeline_id_preliminary_download_post(
|
|
324
|
-
pipeline_id, PreliminaryDownloadModel(sendEmail=False)
|
|
325
|
-
).download_id
|
|
326
|
-
|
|
327
|
-
elapsed = 0
|
|
328
|
-
timeout = 60
|
|
329
|
-
while elapsed < timeout:
|
|
330
|
-
preliminary_results = self.__openapi_service.pipeline_api.pipeline_preliminary_download_preliminary_download_id_get(
|
|
331
|
-
preliminary_download_id=download_id
|
|
332
|
-
)
|
|
333
|
-
if preliminary_results:
|
|
334
|
-
return RapidataResults(json.loads(preliminary_results.decode()))
|
|
335
|
-
sleep(1)
|
|
336
|
-
elapsed += 1
|
|
337
|
-
raise Exception("Timeout waiting for preliminary results.")
|
|
338
|
-
except (ApiException, json.JSONDecodeError) as e:
|
|
339
|
-
raise Exception(f"Failed to get preliminary results: {str(e)}") from e
|
|
340
|
-
|
|
341
436
|
def __str__(self) -> str:
|
|
342
437
|
return f"RapidataOrder(name='{self.name}', order_id='{self.id}')"
|
|
343
438
|
|