rapidata 2.10.1__tar.gz → 2.11.1__tar.gz
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-2.10.1 → rapidata-2.11.1}/PKG-INFO +1 -1
- {rapidata-2.10.1 → rapidata-2.11.1}/pyproject.toml +1 -1
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/assets/_media_asset.py +16 -6
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/language_filter.py +8 -3
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/user_score_filter.py +6 -2
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/metadata/_base_metadata.py +1 -1
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/metadata/_private_text_metadata.py +1 -1
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/metadata/_prompt_metadata.py +1 -1
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/metadata/_public_text_metadata.py +1 -1
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/metadata/_select_words_metadata.py +1 -1
- rapidata-2.11.1/src/rapidata/rapidata_client/order/_rapidata_dataset.py +225 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/order/rapidata_results.py +4 -1
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/selection/conditional_validation_selection.py +13 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/selection/demographic_selection.py +10 -1
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/validation/rapidata_validation_set.py +34 -1
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/validation/rapids/rapids.py +10 -5
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/validation/rapids/rapids_manager.py +4 -4
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/validation/validation_set_manager.py +47 -2
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/service/token_manager.py +3 -2
- rapidata-2.10.1/src/rapidata/rapidata_client/order/_rapidata_dataset.py +0 -128
- {rapidata-2.10.1 → rapidata-2.11.1}/LICENSE +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/README.md +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/campaign_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/client_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/coco_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/compare_workflow_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/datapoint_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/dataset_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/identity_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/newsletter_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/order_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/pipeline_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/rapid_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/rapidata_identity_api_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/simple_workflow_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/user_info_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/validation_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api/workflow_api.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api_client.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/api_response.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/configuration.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/exceptions.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/ab_test_selection.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/ab_test_selection_a_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/add_campaign_artifact_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/add_campaign_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/add_validation_rapid_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/add_validation_rapid_model_payload.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/add_validation_rapid_model_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/add_validation_rapid_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/add_validation_text_rapid_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/admin_order_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/admin_order_model_paged_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/age_group.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/age_user_filter_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/aggregator_type.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/attach_category_rapid_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/attach_category_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/attach_category_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/base_error.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/bounding_box_payload.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/bounding_box_rapid_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/bounding_box_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/bounding_box_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/box_shape.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/campaign_artifact_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/campaign_query_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/campaign_query_model_paged_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/campaign_status.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/campaign_user_filter_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/capped_selection.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/capped_selection_selections_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/classification_metadata.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/classification_metadata_filter_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/classification_metadata_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/classify_payload.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/clients_query_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/clients_query_result_paged_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/clone_dataset_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/clone_order_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/clone_order_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_match_status.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_payload.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_rapid_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_workflow_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_workflow_config_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_workflow_config_model_pair_maker_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_workflow_config_pair_maker_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_workflow_config_rapid_selection_configs_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_workflow_config_referee.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_workflow_get_result_overview_get200_response.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_workflow_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_workflow_model1.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_workflow_model1_pair_maker_information.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_workflow_model1_referee.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/compare_workflow_model_pair_maker_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/completed_rapid_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/completed_rapid_model_asset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/conditional_validation_rapid_selection_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/conditional_validation_selection.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/coordinate.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/correlated_rapid_selection_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/count_classification_metadata_filter_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/count_metadata.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/count_metadata_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/country_user_filter_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_bridge_token_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_client_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_client_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_complex_order_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_complex_order_model_pipeline.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_complex_order_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_dataset_artifact_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_dataset_artifact_model_dataset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_default_order_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_default_order_model_workflow_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_demographic_rapid_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_empty_validation_set_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_independent_workflow_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_independent_workflow_model_workflow_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_independent_workflow_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_legacy_client_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_legacy_order_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_order_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_order_model_referee.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_order_model_selections_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_order_model_user_filters_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_order_model_workflow.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_order_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_simple_pipeline_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_simple_pipeline_model_artifacts_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_simple_pipeline_model_pipeline_steps_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/create_unsupported_order_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/custom_user_filter_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/customer_order_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/customer_order_model_paged_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/datapoint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/datapoint_asset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/datapoint_get_by_id_get200_response.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/datapoint_metadata_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/datapoint_metadata_model_metadata_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/datapoint_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/datapoint_model_asset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/dataset_artifact_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/dataset_evaluation_step_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/demographic_metadata_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/demographic_rapid_selection_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/demographic_selection.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/early_stopping_referee_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/empty_validation_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/error_type.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/evaluation_workflow_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/evaluation_workflow_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/feature_flag.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/feature_flag_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/feedback_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/file_artifact_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/file_asset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/file_asset_metadata_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/file_asset_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/file_asset_model1.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/file_asset_model1_metadata_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/file_asset_model2.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/file_asset_model_metadata_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/filter.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/filter_operator.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/free_text_payload.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/free_text_rapid_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/free_text_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/gender.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/gender_user_filter_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_attach_category_workflow_result_overview_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_available_validation_sets_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_classify_workflow_result_overview_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_compare_ab_summary_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_compare_workflow_result_overview_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_compare_workflow_result_overview_small_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_compare_workflow_results_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_compare_workflow_results_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_compare_workflow_results_result_asset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_compare_workflow_results_result_paged_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_datapoints_by_dataset_id_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_dataset_by_id_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_order_by_id_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_order_results_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_pipeline_by_id_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_pipeline_by_id_result_artifacts_value.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_public_orders_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_simple_workflow_result_overview_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_simple_workflow_results_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_simple_workflow_results_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_simple_workflow_results_result_paged_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_validation_set_by_id_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_workflow_by_id_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_workflow_by_id_result_workflow.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_workflow_config_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_workflow_config_result_workflow_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_workflow_progress_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/get_workflow_result_overview_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/i_workflow_model_paged_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/identity_read_bridge_token_get202_response.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/image_dimension_metadata.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/image_dimension_metadata_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/import_from_file_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/import_validation_set_from_file_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/in_progress_rapid_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/issue_auth_token_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/issue_client_auth_token_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/labeling_selection.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/language_user_filter_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/legacy_issue_client_auth_token_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/legacy_request_password_reset_command.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/legacy_submit_password_reset_command.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/line.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/line_payload.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/line_point.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/line_rapid_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/line_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/line_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/locate_box_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/locate_coordinate.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/locate_payload.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/locate_rapid_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/locate_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/location_metadata.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/location_metadata_exists_filter_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/location_metadata_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/logic_operator.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/login_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/metadata_visibilities.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/multi_asset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/multi_asset_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/multi_asset_model1.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/multi_asset_model1_assets_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/multi_asset_model2.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/naive_referee_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/naive_referee_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/named_classification.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/named_entity_payload.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/named_entity_rapid_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/named_entity_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/named_entity_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/never_ending_referee_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/newsletter_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/no_validation_workflow_rapid_selection_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/not_available_yet_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/not_started_rapid_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/null_asset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/null_asset_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/null_asset_model1.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/null_asset_model2.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/online_pair_maker_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/online_pair_maker_config_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/online_pair_maker_information.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/only_validation_workflow_rapid_selection_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/order_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/order_model_paged_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/order_query_get200_response.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/order_state.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/original_filename_metadata.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/original_filename_metadata_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/page_info.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/pipeline_id_workflow_put_request.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/polygon_payload.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/polygon_rapid_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/polygon_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/polygon_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/pre_arranged_pair_maker_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/pre_arranged_pair_maker_config_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/pre_arranged_pair_maker_information.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/preliminary_download_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/preliminary_download_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/private_text_metadata_input.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/probabilistic_attach_category_referee_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/problem_details.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/prompt_metadata.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/prompt_metadata_input.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/prompt_metadata_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/public_order_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/public_text_metadata_input.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/query_campaigns_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/query_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/query_orders_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/query_validation_rapids_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/query_validation_rapids_result_asset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/query_validation_rapids_result_paged_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/query_validation_rapids_result_payload.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/query_validation_rapids_result_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/query_validation_set_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/query_workflows_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/ranked_datapoint_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/rapid_answer.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/rapid_answer_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/rapid_issue.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/rapid_response.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/rapid_response_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/rapid_result_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/rapid_result_model_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/rapid_skipped_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/rapid_state.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/read_bridge_token_keys_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/register_temporary_customer_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/register_temporary_customer_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/report_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/request_password_reset_command.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/root_filter.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/scrub_payload.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/scrub_range.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/scrub_rapid_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/scrub_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/scrub_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/send_completion_mail_step_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/shape.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/signup_customer_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/signup_shadow_customer_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/simple_workflow_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/simple_workflow_config_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/simple_workflow_config_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/simple_workflow_config_model_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/simple_workflow_get_result_overview_get200_response.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/simple_workflow_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/simple_workflow_model1.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/simple_workflow_model1_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/simple_workflow_model_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/skip_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/sort_criterion.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/sort_direction.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/static_rapid_selection_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/static_selection.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/submit_coco_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/submit_coco_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/submit_password_reset_command.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/text_asset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/text_asset_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/text_asset_model1.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/text_asset_model2.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/text_metadata.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/text_metadata_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/transcription_metadata.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/transcription_metadata_input.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/transcription_metadata_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/transcription_payload.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/transcription_rapid_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/transcription_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/transcription_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/transcription_word.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/translated_prompt_metadata_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/translated_string.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/unlock_order_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/update_access_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/update_campaign_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/update_order_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/update_validation_rapid_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/update_validation_rapid_model_truth.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/update_workflow_config_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/update_workflow_config_model_workflow_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/update_workflow_config_request.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/update_workflow_config_request_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/upload_coco_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/upload_datapoints_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/upload_files_from_s3_bucket_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/upload_text_sources_to_dataset_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/user_score_user_filter_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/validation_chance.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/validation_import_post_request_blueprint.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/validation_rapid_selection_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/validation_selection.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/validation_set.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/validation_set_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/validation_set_model_paged_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/validation_set_overview_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/validation_set_paged_result.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/workflow_aggregation_step_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/workflow_artifact_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/workflow_config_artifact_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/workflow_config_artifact_model_workflow_config.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/workflow_labeling_step_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/workflow_split_model.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/workflow_split_model_filter_configs_inner.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/models/workflow_state.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client/rest.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/api_client_README.md +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/assets/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/assets/_base_asset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/assets/_multi_asset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/assets/_text_asset.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/assets/data_type_enum.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/country_codes/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/country_codes/country_codes.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/demographic/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/demographic/demographic_manager.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/_base_filter.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/age_filter.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/campaign_filter.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/country_filter.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/custom_filter.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/gender_filter.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/models/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/models/age_group.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/models/gender.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/rapidata_filters.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/metadata/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/order/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/order/_rapidata_order_builder.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/order/rapidata_order.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/order/rapidata_order_manager.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/rapidata_client.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/referee/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/referee/_base_referee.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/referee/_early_stopping_referee.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/referee/_naive_referee.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/selection/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/selection/_base_selection.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/selection/ab_test_selection.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/selection/capped_selection.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/selection/labeling_selection.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/selection/rapidata_selections.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/selection/validation_selection.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/settings/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/settings/_rapidata_setting.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/settings/alert_on_fast_response.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/settings/custom_setting.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/settings/free_text_minimum_characters.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/settings/models/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/settings/models/translation_behaviour_options.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/settings/no_shuffle.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/settings/play_video_until_the_end.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/settings/rapidata_settings.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/settings/translation_behaviour.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/validation/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/validation/rapids/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/validation/rapids/box.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/workflow/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/workflow/_base_workflow.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/workflow/_classify_workflow.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/workflow/_compare_workflow.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/workflow/_draw_workflow.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/workflow/_evaluation_workflow.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/workflow/_free_text_workflow.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/workflow/_locate_workflow.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/workflow/_select_words_workflow.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/workflow/_timestamp_workflow.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/service/__init__.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/service/credential_manager.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/service/local_file_service.py +0 -0
- {rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/service/openapi_service.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "rapidata"
|
|
3
|
-
version = "2.
|
|
3
|
+
version = "2.11.1"
|
|
4
4
|
description = "Rapidata package containing the Rapidata Python Client to interact with the Rapidata Web API in an easy way."
|
|
5
5
|
authors = ["Rapidata AG <info@rapidata.ai>"]
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -4,6 +4,7 @@ Defines the MediaAsset class for handling media file paths within assets.
|
|
|
4
4
|
Implements lazy loading for URL-based media to prevent unnecessary downloads.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
+
from typing import Optional, cast, Sequence
|
|
7
8
|
import os
|
|
8
9
|
from io import BytesIO
|
|
9
10
|
from rapidata.rapidata_client.assets._base_asset import BaseAsset
|
|
@@ -13,10 +14,10 @@ from PIL import Image
|
|
|
13
14
|
from tinytag import TinyTag
|
|
14
15
|
import tempfile
|
|
15
16
|
from pydantic import StrictStr, StrictBytes
|
|
16
|
-
from typing import Optional, cast
|
|
17
17
|
import logging
|
|
18
18
|
from functools import cached_property
|
|
19
|
-
|
|
19
|
+
from requests.adapters import HTTPAdapter
|
|
20
|
+
from urllib3.util.retry import Retry
|
|
20
21
|
|
|
21
22
|
class MediaAsset(BaseAsset):
|
|
22
23
|
"""MediaAsset Class with Lazy Loading
|
|
@@ -77,6 +78,7 @@ class MediaAsset(BaseAsset):
|
|
|
77
78
|
|
|
78
79
|
self._url = None
|
|
79
80
|
self._content = None
|
|
81
|
+
self.session: None | requests.Session = None
|
|
80
82
|
|
|
81
83
|
if re.match(r'^https?://', path):
|
|
82
84
|
self._url = path
|
|
@@ -223,7 +225,7 @@ class MediaAsset(BaseAsset):
|
|
|
223
225
|
|
|
224
226
|
def __get_media_bytes(self, url: str) -> bytes:
|
|
225
227
|
"""
|
|
226
|
-
Downloads and validates media files from URL.
|
|
228
|
+
Downloads and validates media files from URL with retry logic and session reuse.
|
|
227
229
|
|
|
228
230
|
Args:
|
|
229
231
|
url: URL of the media file
|
|
@@ -233,13 +235,21 @@ class MediaAsset(BaseAsset):
|
|
|
233
235
|
|
|
234
236
|
Raises:
|
|
235
237
|
ValueError: If media type is unsupported or content validation fails
|
|
236
|
-
requests.exceptions.RequestException: If download fails
|
|
238
|
+
requests.exceptions.RequestException: If download fails after all retries
|
|
237
239
|
"""
|
|
240
|
+
# Use existing session or throw error if not set
|
|
241
|
+
if self.session is None:
|
|
242
|
+
raise RuntimeError("HTTP session not configured")
|
|
243
|
+
|
|
238
244
|
try:
|
|
239
|
-
response =
|
|
245
|
+
response = self.session.get(
|
|
246
|
+
url,
|
|
247
|
+
stream=False,
|
|
248
|
+
timeout=(5, 30) # (connect timeout, read timeout)
|
|
249
|
+
)
|
|
240
250
|
response.raise_for_status()
|
|
241
251
|
except requests.exceptions.RequestException as e:
|
|
242
|
-
self._logger.error(f"Failed to download media from {url}: {str(e)}")
|
|
252
|
+
self._logger.error(f"Failed to download media from {url} after retries: {str(e)}")
|
|
243
253
|
raise
|
|
244
254
|
|
|
245
255
|
content = response.content
|
|
@@ -9,11 +9,16 @@ class LanguageFilter(RapidataFilter):
|
|
|
9
9
|
"""LanguageFilter Class
|
|
10
10
|
|
|
11
11
|
Can be used to filter who to target based on language codes.
|
|
12
|
-
|
|
13
|
-
example: LanguageFilter(["en", "de"]) -> will limit the order to be shown to only people who have their phone set to english or german
|
|
14
12
|
|
|
15
13
|
Args:
|
|
16
|
-
language_codes (list[str]): List of language codes to filter by.
|
|
14
|
+
language_codes (list[str]): List of language codes to filter by.
|
|
15
|
+
|
|
16
|
+
Example:
|
|
17
|
+
```python
|
|
18
|
+
LanguageFilter(["en", "de"])
|
|
19
|
+
```
|
|
20
|
+
This will limit the order to be shown to only people who have their phone set to english or german
|
|
21
|
+
"""
|
|
17
22
|
def __init__(self, language_codes: list[str]):
|
|
18
23
|
if not isinstance(language_codes, list):
|
|
19
24
|
raise ValueError("Language codes must be a list")
|
{rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/filter/user_score_filter.py
RENAMED
|
@@ -10,11 +10,15 @@ class UserScoreFilter(RapidataFilter):
|
|
|
10
10
|
|
|
11
11
|
Can be used to filter who to target based on their user score.
|
|
12
12
|
|
|
13
|
-
example: UserScoreFilter(0.5, 0.9) -> will only show the order to users that have a UserScore of >=0.5 and <=0.9
|
|
14
|
-
|
|
15
13
|
Args:
|
|
16
14
|
lower_bound (float): The lower bound of the user score.
|
|
17
15
|
upper_bound (float): The upper bound of the user score.
|
|
16
|
+
|
|
17
|
+
Example:
|
|
18
|
+
```python
|
|
19
|
+
UserScoreFilter(0.5, 0.9)
|
|
20
|
+
```
|
|
21
|
+
This will only show the order to users that have a UserScore of >=0.5 and <=0.9
|
|
18
22
|
"""
|
|
19
23
|
def __init__(self, lower_bound: float = 0.0, upper_bound: float = 1.0):
|
|
20
24
|
if lower_bound < 0 or lower_bound > 1:
|
{rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/metadata/_private_text_metadata.py
RENAMED
|
@@ -10,7 +10,7 @@ class PrivateTextMetadata(Metadata):
|
|
|
10
10
|
super().__init__(identifier=identifier)
|
|
11
11
|
self._text = text
|
|
12
12
|
|
|
13
|
-
def
|
|
13
|
+
def to_model(self):
|
|
14
14
|
return PrivateTextMetadataInput(
|
|
15
15
|
_t="PrivateTextMetadataInput", identifier=self._identifier, text=self._text
|
|
16
16
|
)
|
{rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/metadata/_public_text_metadata.py
RENAMED
|
@@ -10,7 +10,7 @@ class PublicTextMetadata(Metadata):
|
|
|
10
10
|
super().__init__(identifier=identifier)
|
|
11
11
|
self._text = text
|
|
12
12
|
|
|
13
|
-
def
|
|
13
|
+
def to_model(self):
|
|
14
14
|
return PublicTextMetadataInput(
|
|
15
15
|
_t="PublicTextMetadataInput", identifier=self._identifier, text=self._text
|
|
16
16
|
)
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
from itertools import zip_longest
|
|
2
|
+
|
|
3
|
+
from rapidata.api_client.models.datapoint_metadata_model import DatapointMetadataModel
|
|
4
|
+
from rapidata.api_client.models.datapoint_metadata_model_metadata_inner import (
|
|
5
|
+
DatapointMetadataModelMetadataInner,
|
|
6
|
+
)
|
|
7
|
+
from rapidata.api_client.models.upload_text_sources_to_dataset_model import (
|
|
8
|
+
UploadTextSourcesToDatasetModel,
|
|
9
|
+
)
|
|
10
|
+
from rapidata.rapidata_client.metadata._base_metadata import Metadata
|
|
11
|
+
from rapidata.rapidata_client.assets import TextAsset, MediaAsset, MultiAsset
|
|
12
|
+
from rapidata.service import LocalFileService
|
|
13
|
+
from rapidata.service.openapi_service import OpenAPIService
|
|
14
|
+
from concurrent.futures import ThreadPoolExecutor, as_completed
|
|
15
|
+
from tqdm import tqdm
|
|
16
|
+
|
|
17
|
+
from pydantic import StrictBytes, StrictStr
|
|
18
|
+
from typing import Optional, cast, Sequence, Generator
|
|
19
|
+
from logging import Logger
|
|
20
|
+
from requests.adapters import HTTPAdapter, Retry
|
|
21
|
+
import time
|
|
22
|
+
import requests
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def chunk_list(lst: list, chunk_size: int) -> Generator:
|
|
26
|
+
"""Split list into chunks to prevent resource exhaustion"""
|
|
27
|
+
for i in range(0, len(lst), chunk_size):
|
|
28
|
+
yield lst[i:i + chunk_size]
|
|
29
|
+
|
|
30
|
+
class RapidataDataset:
|
|
31
|
+
|
|
32
|
+
def __init__(self, dataset_id: str, openapi_service: OpenAPIService):
|
|
33
|
+
self.dataset_id = dataset_id
|
|
34
|
+
self.openapi_service = openapi_service
|
|
35
|
+
self.local_file_service = LocalFileService()
|
|
36
|
+
self._logger = Logger(__name__)
|
|
37
|
+
|
|
38
|
+
def _add_texts(
|
|
39
|
+
self,
|
|
40
|
+
text_assets: list[TextAsset] | list[MultiAsset],
|
|
41
|
+
max_workers: int = 10,
|
|
42
|
+
):
|
|
43
|
+
for text_asset in text_assets:
|
|
44
|
+
if isinstance(text_asset, MultiAsset):
|
|
45
|
+
assert all(
|
|
46
|
+
isinstance(asset, TextAsset) for asset in text_asset.assets
|
|
47
|
+
), "All assets in a MultiAsset must be of type TextAsset."
|
|
48
|
+
|
|
49
|
+
def upload_text_datapoint(text_asset: TextAsset | MultiAsset, index: int) -> None:
|
|
50
|
+
if isinstance(text_asset, TextAsset):
|
|
51
|
+
texts = [text_asset.text]
|
|
52
|
+
elif isinstance(text_asset, MultiAsset):
|
|
53
|
+
texts = [asset.text for asset in text_asset.assets if isinstance(asset, TextAsset)]
|
|
54
|
+
else:
|
|
55
|
+
raise ValueError(f"Unsupported asset type: {type(text_asset)}")
|
|
56
|
+
|
|
57
|
+
model = UploadTextSourcesToDatasetModel(
|
|
58
|
+
datasetId=self.dataset_id,
|
|
59
|
+
textSources=texts,
|
|
60
|
+
sortIndex=index,
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
upload_response = self.openapi_service.dataset_api.dataset_creat_text_datapoint_post(model)
|
|
64
|
+
|
|
65
|
+
if upload_response.errors:
|
|
66
|
+
raise ValueError(f"Error uploading text datapoint: {upload_response.errors}")
|
|
67
|
+
|
|
68
|
+
total_uploads = len(text_assets)
|
|
69
|
+
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
|
70
|
+
futures = [
|
|
71
|
+
executor.submit(upload_text_datapoint, text_asset, index=i)
|
|
72
|
+
for i, text_asset in enumerate(text_assets)
|
|
73
|
+
]
|
|
74
|
+
|
|
75
|
+
with tqdm(total=total_uploads, desc="Uploading text datapoints") as pbar:
|
|
76
|
+
for future in as_completed(futures):
|
|
77
|
+
future.result() # This will raise any exceptions that occurred during execution
|
|
78
|
+
pbar.update(1)
|
|
79
|
+
|
|
80
|
+
def _add_media_from_paths(
|
|
81
|
+
self,
|
|
82
|
+
media_paths: list[MediaAsset] | list[MultiAsset],
|
|
83
|
+
metadata: Sequence[Metadata] | None = None,
|
|
84
|
+
max_workers: int = 10,
|
|
85
|
+
max_retries: int = 5,
|
|
86
|
+
chunk_size: int = 50,
|
|
87
|
+
) -> tuple[list[str], list[str]]:
|
|
88
|
+
"""
|
|
89
|
+
Upload media paths in chunks with managed resources.
|
|
90
|
+
|
|
91
|
+
Args:
|
|
92
|
+
media_paths: List of MediaAsset or MultiAsset objects to upload
|
|
93
|
+
metadata: Optional sequence of metadata matching media_paths length
|
|
94
|
+
max_workers: Maximum number of concurrent upload workers
|
|
95
|
+
max_retries: Maximum number of retry attempts per failed request
|
|
96
|
+
chunk_size: Number of items to process in each batch
|
|
97
|
+
|
|
98
|
+
Returns:
|
|
99
|
+
tuple[list[str], list[str]]: Lists of successful and failed URLs
|
|
100
|
+
|
|
101
|
+
Raises:
|
|
102
|
+
ValueError: If metadata length doesn't match media_paths length
|
|
103
|
+
"""
|
|
104
|
+
if metadata is not None and len(metadata) != len(media_paths):
|
|
105
|
+
raise ValueError("metadata must be None or have the same length as media_paths")
|
|
106
|
+
|
|
107
|
+
# Configure session with retry logic
|
|
108
|
+
session = requests.Session()
|
|
109
|
+
retries = Retry(
|
|
110
|
+
total=max_retries,
|
|
111
|
+
backoff_factor=1,
|
|
112
|
+
status_forcelist=[500, 502, 503, 504],
|
|
113
|
+
allowed_methods=["GET"],
|
|
114
|
+
respect_retry_after_header=True
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
adapter = HTTPAdapter(
|
|
118
|
+
pool_connections=max_workers * 2,
|
|
119
|
+
pool_maxsize=max_workers * 4,
|
|
120
|
+
max_retries=retries
|
|
121
|
+
)
|
|
122
|
+
session.mount('http://', adapter)
|
|
123
|
+
session.mount('https://', adapter)
|
|
124
|
+
|
|
125
|
+
def upload_datapoint(
|
|
126
|
+
media_asset: MediaAsset | MultiAsset,
|
|
127
|
+
meta: Metadata | None,
|
|
128
|
+
index: int,
|
|
129
|
+
session: requests.Session
|
|
130
|
+
) -> tuple[list[str], list[str]]:
|
|
131
|
+
"""Process single upload with error tracking."""
|
|
132
|
+
local_successful: list[str] = []
|
|
133
|
+
local_failed: list[str] = []
|
|
134
|
+
identifiers_to_track: list[str] = []
|
|
135
|
+
|
|
136
|
+
try:
|
|
137
|
+
# Get identifier for this upload (URL or file path)
|
|
138
|
+
if isinstance(media_asset, MediaAsset):
|
|
139
|
+
media_asset.session = session
|
|
140
|
+
assets = [media_asset]
|
|
141
|
+
identifier = media_asset._url if media_asset._url else media_asset.path
|
|
142
|
+
identifiers_to_track = [identifier] if identifier else []
|
|
143
|
+
elif isinstance(media_asset, MultiAsset):
|
|
144
|
+
assets = cast(list[MediaAsset], media_asset.assets)
|
|
145
|
+
for asset in assets:
|
|
146
|
+
asset.session = session
|
|
147
|
+
identifiers_to_track: list[str] = [
|
|
148
|
+
(asset._url if asset._url else cast(str, asset.path))
|
|
149
|
+
for asset in assets
|
|
150
|
+
]
|
|
151
|
+
else:
|
|
152
|
+
raise ValueError(f"Unsupported asset type: {type(media_asset)}")
|
|
153
|
+
|
|
154
|
+
meta_model = meta.to_model() if meta else None
|
|
155
|
+
model = DatapointMetadataModel(
|
|
156
|
+
datasetId=self.dataset_id,
|
|
157
|
+
metadata=([DatapointMetadataModelMetadataInner(meta_model)] if meta_model else []),
|
|
158
|
+
sortIndex=index,
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
files: list[tuple[StrictStr, StrictBytes] | StrictStr | StrictBytes] = []
|
|
162
|
+
for asset in assets:
|
|
163
|
+
if isinstance(asset, MediaAsset):
|
|
164
|
+
files.append(asset.to_file())
|
|
165
|
+
|
|
166
|
+
upload_response = self.openapi_service.dataset_api.dataset_create_datapoint_post(
|
|
167
|
+
model=model,
|
|
168
|
+
files=files
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
if upload_response.errors:
|
|
172
|
+
error_msg = f"Error uploading datapoint: {upload_response.errors}"
|
|
173
|
+
self._logger.error(error_msg)
|
|
174
|
+
local_failed.extend(identifiers_to_track)
|
|
175
|
+
raise ValueError(error_msg)
|
|
176
|
+
|
|
177
|
+
local_successful.extend(identifiers_to_track)
|
|
178
|
+
|
|
179
|
+
except Exception as e:
|
|
180
|
+
self._logger.error(f"\nUpload failed for {identifiers_to_track}: {str(e)}") # \n to avoid same line as tqdm
|
|
181
|
+
local_failed.extend(identifiers_to_track)
|
|
182
|
+
|
|
183
|
+
return local_successful, local_failed
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
# Process uploads in chunks
|
|
187
|
+
successful_uploads: list[str] = []
|
|
188
|
+
failed_uploads: list[str] = []
|
|
189
|
+
total_uploads = len(media_paths)
|
|
190
|
+
|
|
191
|
+
with tqdm(total=total_uploads, desc="Uploading datapoints") as pbar:
|
|
192
|
+
for chunk_idx, chunk in enumerate(chunk_list(media_paths, chunk_size)):
|
|
193
|
+
chunk_metadata = metadata[chunk_idx * chunk_size:(chunk_idx + 1) * chunk_size] if metadata else None
|
|
194
|
+
|
|
195
|
+
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
|
196
|
+
futures = [
|
|
197
|
+
executor.submit(
|
|
198
|
+
upload_datapoint,
|
|
199
|
+
media_asset,
|
|
200
|
+
meta,
|
|
201
|
+
index=(chunk_idx * chunk_size + i),
|
|
202
|
+
session=session
|
|
203
|
+
)
|
|
204
|
+
for i, (media_asset, meta) in enumerate(zip_longest(chunk, chunk_metadata or []))
|
|
205
|
+
]
|
|
206
|
+
|
|
207
|
+
for future in as_completed(futures):
|
|
208
|
+
try:
|
|
209
|
+
chunk_successful, chunk_failed = future.result()
|
|
210
|
+
successful_uploads.extend(chunk_successful)
|
|
211
|
+
failed_uploads.extend(chunk_failed)
|
|
212
|
+
except Exception as e:
|
|
213
|
+
self._logger.error(f"Future execution failed: {str(e)}")
|
|
214
|
+
finally:
|
|
215
|
+
pbar.update(1)
|
|
216
|
+
|
|
217
|
+
# Log summary statistics
|
|
218
|
+
success_rate = len(successful_uploads) / total_uploads * 100 if total_uploads > 0 else 0
|
|
219
|
+
self._logger.info(f"Upload complete: {len(successful_uploads)} successful, {len(failed_uploads)} failed ({success_rate:.1f}% success rate)")
|
|
220
|
+
|
|
221
|
+
if failed_uploads:
|
|
222
|
+
print(f"Failed uploads: {failed_uploads}")
|
|
223
|
+
|
|
224
|
+
return successful_uploads, failed_uploads
|
|
225
|
+
|
|
@@ -193,7 +193,10 @@ class RapidataResults(dict):
|
|
|
193
193
|
key: value for key, value in result.items()
|
|
194
194
|
if not isinstance(value, dict)
|
|
195
195
|
}
|
|
196
|
-
|
|
196
|
+
|
|
197
|
+
row["assetA"] = asset_a
|
|
198
|
+
row["assetB"] = asset_b
|
|
199
|
+
|
|
197
200
|
# Handle comparative metrics
|
|
198
201
|
for key, values in result.items():
|
|
199
202
|
if isinstance(values, dict) and len(values) == 2:
|
|
@@ -17,6 +17,19 @@ class ConditionalValidationSelection(RapidataSelection):
|
|
|
17
17
|
thresholds (list[float]): The thresholds to use for the user score.
|
|
18
18
|
chances (list[float]): The chances of showing a validation rapid for each threshold.
|
|
19
19
|
rapid_counts (list[int]): The amount of validation rapids that will be shown per session of this validation set for each threshold if selected by probability. (all or nothing)
|
|
20
|
+
|
|
21
|
+
Example:
|
|
22
|
+
```python
|
|
23
|
+
ConditionalValidationSelection(
|
|
24
|
+
validation_set_id="validation_set_id",
|
|
25
|
+
thresholds=[0, 0.7], # (0 must be the first threshold)
|
|
26
|
+
chances=[1, 0.2],
|
|
27
|
+
rapid_counts=[1, 1]
|
|
28
|
+
)
|
|
29
|
+
```
|
|
30
|
+
This means that there's a 100% chance of showing a validation rapid if the user score is between 0 and 0.7,
|
|
31
|
+
and a 20% chance of showing a validation rapid if the user score is between 0.7 and 1.
|
|
32
|
+
|
|
20
33
|
"""
|
|
21
34
|
|
|
22
35
|
def __init__(
|
{rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/selection/demographic_selection.py
RENAMED
|
@@ -14,7 +14,16 @@ class DemographicSelection(RapidataSelection):
|
|
|
14
14
|
Args:
|
|
15
15
|
keys (list[str]): List of keys for the demographic rapids to be shown. As an example: "age"
|
|
16
16
|
max_rapids (int): The maximum number of rapids to run.\n
|
|
17
|
-
Allows to provide more keys, in case some of the earlier ones are not selected because of high confidence.
|
|
17
|
+
Allows to provide more keys, in case some of the earlier ones are not selected because of high confidence.
|
|
18
|
+
|
|
19
|
+
Example:
|
|
20
|
+
```python
|
|
21
|
+
DemographicSelection(["age", "gender"], 1)
|
|
22
|
+
```
|
|
23
|
+
This will try to ask the user about their age, if that is not selected due to an already high confidence, it will try asking about their gender.
|
|
24
|
+
The gender question may also be skipped if the confidence is high enough.
|
|
25
|
+
"""
|
|
26
|
+
|
|
18
27
|
|
|
19
28
|
def __init__(self, keys: list[str], max_rapids: int):
|
|
20
29
|
self.keys = keys
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from rapidata.rapidata_client.validation.rapids.rapids import Rapid
|
|
2
2
|
from rapidata.service.openapi_service import OpenAPIService
|
|
3
|
+
from requests.adapters import HTTPAdapter, Retry
|
|
4
|
+
import requests
|
|
3
5
|
|
|
4
6
|
class RapidataValidationSet:
|
|
5
7
|
"""A class for interacting with a Rapidata validation set.
|
|
@@ -17,6 +19,7 @@ class RapidataValidationSet:
|
|
|
17
19
|
self.id = validation_set_id
|
|
18
20
|
self.name = name
|
|
19
21
|
self.__openapi_service = openapi_service
|
|
22
|
+
self.__session = self._get_session()
|
|
20
23
|
|
|
21
24
|
def add_rapid(self, rapid: Rapid):
|
|
22
25
|
"""Add a Rapid to the validation set.
|
|
@@ -24,7 +27,37 @@ class RapidataValidationSet:
|
|
|
24
27
|
Args:
|
|
25
28
|
rapid (Rapid): The Rapid to add to the validation set.
|
|
26
29
|
"""
|
|
27
|
-
rapid._add_to_validation_set(self.id, self.__openapi_service)
|
|
30
|
+
rapid._add_to_validation_set(self.id, self.__openapi_service, self.__session)
|
|
31
|
+
|
|
32
|
+
def _get_session(self, max_retries: int = 5, max_workers: int = 10) -> requests.Session:
|
|
33
|
+
"""Get a requests session with retry logic.
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
max_retries (int): The maximum number of retries.
|
|
38
|
+
max_workers (int): The maximum number of workers.
|
|
39
|
+
|
|
40
|
+
Returns:
|
|
41
|
+
requests.Session: A requests session with retry logic.
|
|
42
|
+
"""
|
|
43
|
+
session = requests.Session()
|
|
44
|
+
retries = Retry(
|
|
45
|
+
total=max_retries,
|
|
46
|
+
backoff_factor=1,
|
|
47
|
+
status_forcelist=[500, 502, 503, 504],
|
|
48
|
+
allowed_methods=["GET"],
|
|
49
|
+
respect_retry_after_header=True
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
adapter = HTTPAdapter(
|
|
53
|
+
pool_connections=max_workers * 2,
|
|
54
|
+
pool_maxsize=max_workers * 4,
|
|
55
|
+
max_retries=retries
|
|
56
|
+
)
|
|
57
|
+
session.mount('http://', adapter)
|
|
58
|
+
session.mount('https://', adapter)
|
|
59
|
+
|
|
60
|
+
return session
|
|
28
61
|
|
|
29
62
|
def __str__(self):
|
|
30
63
|
return f"name: '{self.name}' id: {self.id}"
|
{rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/validation/rapids/rapids.py
RENAMED
|
@@ -22,6 +22,8 @@ from rapidata.api_client.models.datapoint_metadata_model_metadata_inner import (
|
|
|
22
22
|
|
|
23
23
|
from rapidata.service.openapi_service import OpenAPIService
|
|
24
24
|
|
|
25
|
+
import requests
|
|
26
|
+
|
|
25
27
|
class Rapid():
|
|
26
28
|
def __init__(self, asset: MediaAsset | TextAsset | MultiAsset, metadata: Sequence[Metadata], payload: Any, truth: Any, randomCorrectProbability: float, explanation: str | None):
|
|
27
29
|
self.asset = asset
|
|
@@ -31,14 +33,14 @@ class Rapid():
|
|
|
31
33
|
self.randomCorrectProbability = randomCorrectProbability
|
|
32
34
|
self.explanation = explanation
|
|
33
35
|
|
|
34
|
-
def _add_to_validation_set(self, validationSetId: str, openapi_service: OpenAPIService):
|
|
36
|
+
def _add_to_validation_set(self, validationSetId: str, openapi_service: OpenAPIService, session: requests.Session) -> None:
|
|
35
37
|
if isinstance(self.asset, TextAsset) or (isinstance(self.asset, MultiAsset) and isinstance(self.asset.assets[0], TextAsset)):
|
|
36
38
|
openapi_service.validation_api.validation_add_validation_text_rapid_post(
|
|
37
39
|
add_validation_text_rapid_model=self.__to_text_model(validationSetId)
|
|
38
40
|
)
|
|
39
41
|
|
|
40
42
|
elif isinstance(self.asset, MediaAsset) or (isinstance(self.asset, MultiAsset) and isinstance(self.asset.assets[0], MediaAsset)):
|
|
41
|
-
model = self.__to_media_model(validationSetId)
|
|
43
|
+
model = self.__to_media_model(validationSetId, session=session)
|
|
42
44
|
openapi_service.validation_api.validation_add_validation_rapid_post(
|
|
43
45
|
model=model[0], files=model[1]
|
|
44
46
|
)
|
|
@@ -46,7 +48,7 @@ class Rapid():
|
|
|
46
48
|
else:
|
|
47
49
|
raise TypeError("The asset must be a MediaAsset, TextAsset, or MultiAsset")
|
|
48
50
|
|
|
49
|
-
def __to_media_model(self, validationSetId: str) -> tuple[AddValidationRapidModel, list[StrictStr | tuple[StrictStr, StrictBytes] | StrictBytes]]:
|
|
51
|
+
def __to_media_model(self, validationSetId: str, session: requests.Session) -> tuple[AddValidationRapidModel, list[StrictStr | tuple[StrictStr, StrictBytes] | StrictBytes]]:
|
|
50
52
|
assets: list[MediaAsset] = []
|
|
51
53
|
if isinstance(self.asset, MultiAsset):
|
|
52
54
|
for asset in self.asset.assets:
|
|
@@ -61,12 +63,15 @@ class Rapid():
|
|
|
61
63
|
if isinstance(self.asset, MediaAsset):
|
|
62
64
|
assets = [self.asset]
|
|
63
65
|
|
|
66
|
+
for asset in assets:
|
|
67
|
+
asset.session = session
|
|
68
|
+
|
|
64
69
|
return (AddValidationRapidModel(
|
|
65
70
|
validationSetId=validationSetId,
|
|
66
71
|
payload=AddValidationRapidModelPayload(self.payload),
|
|
67
72
|
truth=AddValidationRapidModelTruth(self.truth),
|
|
68
73
|
metadata=[
|
|
69
|
-
DatapointMetadataModelMetadataInner(meta.
|
|
74
|
+
DatapointMetadataModelMetadataInner(meta.to_model())
|
|
70
75
|
for meta in self.metadata
|
|
71
76
|
],
|
|
72
77
|
randomCorrectProbability=self.randomCorrectProbability,
|
|
@@ -93,7 +98,7 @@ class Rapid():
|
|
|
93
98
|
payload=AddValidationRapidModelPayload(self.payload),
|
|
94
99
|
truth=AddValidationRapidModelTruth(self.truth),
|
|
95
100
|
metadata=[
|
|
96
|
-
DatapointMetadataModelMetadataInner(meta.
|
|
101
|
+
DatapointMetadataModelMetadataInner(meta.to_model())
|
|
97
102
|
for meta in self.metadata
|
|
98
103
|
],
|
|
99
104
|
randomCorrectProbability=self.randomCorrectProbability,
|
{rapidata-2.10.1 → rapidata-2.11.1}/src/rapidata/rapidata_client/validation/rapids/rapids_manager.py
RENAMED
|
@@ -238,10 +238,10 @@ class RapidsManager:
|
|
|
238
238
|
|
|
239
239
|
model_truth = BoundingBoxTruth(
|
|
240
240
|
_t="BoundingBoxTruth",
|
|
241
|
-
xMax=truths[0].x_max / img_dimensions[0],
|
|
242
|
-
xMin=truths[0].x_min / img_dimensions[0],
|
|
243
|
-
yMax=truths[0].y_max / img_dimensions[1],
|
|
244
|
-
yMin=truths[0].y_min / img_dimensions[1],
|
|
241
|
+
xMax=truths[0].x_max / img_dimensions[0] * 100,
|
|
242
|
+
xMin=truths[0].x_min / img_dimensions[0] * 100,
|
|
243
|
+
yMax=truths[0].y_max / img_dimensions[1] * 100,
|
|
244
|
+
yMin=truths[0].y_min / img_dimensions[1] * 100,
|
|
245
245
|
)
|
|
246
246
|
|
|
247
247
|
coverage = self._calculate_boxes_coverage(truths, img_dimensions[0], img_dimensions[1])
|