label-studio-sdk 1.0.20__py3-none-any.whl → 2.0.0__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 label-studio-sdk might be problematic. Click here for more details.
- label_studio_sdk/__init__.py +325 -180
- label_studio_sdk/actions/__init__.py +4 -0
- label_studio_sdk/actions/client.py +46 -10
- label_studio_sdk/actions/types/__init__.py +4 -0
- label_studio_sdk/actions/types/actions_create_request_filters.py +2 -2
- label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +2 -2
- label_studio_sdk/actions/types/actions_create_request_id.py +7 -7
- label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +2 -2
- label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +2 -2
- label_studio_sdk/actions/types/actions_list_response_item.py +25 -0
- label_studio_sdk/actions/types/actions_list_response_item_dialog.py +22 -0
- label_studio_sdk/annotations/__init__.py +2 -2
- label_studio_sdk/annotations/client.py +379 -243
- label_studio_sdk/annotations/types/__init__.py +4 -2
- label_studio_sdk/annotations/types/annotation_bulk_serializer_with_selected_items_request_last_action.py +7 -0
- label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +8 -5
- label_studio_sdk/base_client.py +28 -24
- label_studio_sdk/comments/client.py +378 -140
- label_studio_sdk/converter/README.md +207 -0
- label_studio_sdk/converter/imports/coco.py +132 -23
- label_studio_sdk/core/__init__.py +4 -0
- label_studio_sdk/core/unchecked_base_model.py +305 -0
- label_studio_sdk/environment.py +1 -1
- label_studio_sdk/errors/__init__.py +10 -1
- label_studio_sdk/errors/forbidden_error.py +9 -0
- label_studio_sdk/errors/method_not_allowed_error.py +9 -0
- label_studio_sdk/export_storage/__init__.py +1 -24
- label_studio_sdk/export_storage/azure/__init__.py +0 -3
- label_studio_sdk/export_storage/azure/client.py +231 -273
- label_studio_sdk/export_storage/client.py +5 -5
- label_studio_sdk/export_storage/gcs/__init__.py +0 -3
- label_studio_sdk/export_storage/gcs/client.py +231 -273
- label_studio_sdk/export_storage/local/__init__.py +0 -3
- label_studio_sdk/export_storage/local/client.py +211 -253
- label_studio_sdk/export_storage/redis/__init__.py +0 -3
- label_studio_sdk/export_storage/redis/client.py +239 -281
- label_studio_sdk/export_storage/s3/__init__.py +0 -3
- label_studio_sdk/export_storage/s3/client.py +254 -296
- label_studio_sdk/export_storage/s3s/client.py +694 -210
- label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +2 -2
- label_studio_sdk/files/client.py +52 -71
- label_studio_sdk/import_storage/__init__.py +1 -24
- label_studio_sdk/import_storage/azure/__init__.py +0 -3
- label_studio_sdk/import_storage/azure/client.py +249 -299
- label_studio_sdk/import_storage/client.py +5 -5
- label_studio_sdk/import_storage/gcs/__init__.py +0 -3
- label_studio_sdk/import_storage/gcs/client.py +249 -299
- label_studio_sdk/import_storage/local/__init__.py +0 -3
- label_studio_sdk/import_storage/local/client.py +211 -257
- label_studio_sdk/import_storage/redis/__init__.py +0 -3
- label_studio_sdk/import_storage/redis/client.py +239 -285
- label_studio_sdk/import_storage/s3/__init__.py +0 -3
- label_studio_sdk/import_storage/s3/client.py +274 -324
- label_studio_sdk/import_storage/s3s/client.py +728 -434
- label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +2 -2
- label_studio_sdk/jwt_settings/client.py +56 -58
- label_studio_sdk/label_interface/control_tags.py +48 -8
- label_studio_sdk/label_interface/interface.py +261 -56
- label_studio_sdk/ml/__init__.py +2 -16
- label_studio_sdk/ml/client.py +196 -179
- label_studio_sdk/ml/types/__init__.py +2 -12
- label_studio_sdk/ml/types/ml_list_model_versions_response.py +20 -0
- label_studio_sdk/model_providers/__init__.py +3 -0
- label_studio_sdk/model_providers/client.py +280 -228
- label_studio_sdk/model_providers/types/__init__.py +5 -0
- label_studio_sdk/{prompts/types/prompts_batch_predictions_response.py → model_providers/types/model_providers_list_model_provider_choices_response.py} +3 -3
- label_studio_sdk/organizations/__init__.py +5 -0
- label_studio_sdk/organizations/client.py +331 -0
- label_studio_sdk/organizations/members/__init__.py +2 -0
- label_studio_sdk/organizations/members/client.py +290 -0
- label_studio_sdk/predictions/client.py +29 -77
- label_studio_sdk/projects/__init__.py +18 -9
- label_studio_sdk/projects/client.py +905 -414
- label_studio_sdk/projects/exports/__init__.py +2 -2
- label_studio_sdk/projects/exports/client.py +336 -396
- label_studio_sdk/projects/exports/client_ext.py +30 -30
- label_studio_sdk/projects/exports/types/__init__.py +1 -2
- label_studio_sdk/projects/exports/types/exports_convert_response.py +5 -9
- label_studio_sdk/projects/pauses/client.py +114 -105
- label_studio_sdk/projects/stats/__init__.py +5 -0
- label_studio_sdk/projects/stats/client.py +175 -0
- label_studio_sdk/projects/stats/types/__init__.py +8 -0
- label_studio_sdk/projects/stats/types/stats_iaa_response.py +44 -0
- label_studio_sdk/projects/stats/types/stats_iaa_response_common_tasks.py +7 -0
- label_studio_sdk/projects/stats/types/stats_iaa_response_iaa.py +5 -0
- label_studio_sdk/{types/base_task_file_upload.py → projects/stats/types/stats_iaa_response_std.py} +1 -1
- label_studio_sdk/projects/types/__init__.py +10 -6
- label_studio_sdk/projects/types/lse_project_create_request_sampling.py +7 -0
- label_studio_sdk/projects/types/lse_project_create_request_skip_queue.py +7 -0
- label_studio_sdk/projects/types/patched_lse_project_update_request_sampling.py +7 -0
- label_studio_sdk/projects/types/patched_lse_project_update_request_skip_queue.py +7 -0
- label_studio_sdk/{prompts/types/prompts_batch_failed_predictions_response.py → projects/types/projects_duplicate_response.py} +8 -5
- label_studio_sdk/projects/types/projects_import_tasks_response.py +2 -2
- label_studio_sdk/projects/types/projects_list_request_filter.py +1 -1
- label_studio_sdk/prompts/__init__.py +4 -10
- label_studio_sdk/prompts/client.py +511 -442
- label_studio_sdk/prompts/indicators/__init__.py +3 -0
- label_studio_sdk/prompts/indicators/client.py +47 -49
- label_studio_sdk/prompts/indicators/types/__init__.py +5 -0
- label_studio_sdk/{types/key_indicator_value.py → prompts/indicators/types/indicators_list_response_item.py} +3 -3
- label_studio_sdk/prompts/runs/client.py +113 -135
- label_studio_sdk/prompts/types/__init__.py +2 -12
- label_studio_sdk/prompts/types/prompts_compatible_projects_request_project_type.py +7 -0
- label_studio_sdk/prompts/versions/client.py +372 -312
- label_studio_sdk/tasks/__init__.py +2 -2
- label_studio_sdk/tasks/client.py +514 -213
- label_studio_sdk/tasks/types/__init__.py +1 -2
- label_studio_sdk/tokens/client.py +160 -152
- label_studio_sdk/tokens/client_ext.py +3 -3
- label_studio_sdk/types/__init__.py +258 -142
- label_studio_sdk/{webhooks/types/webhooks_update_request_actions_item.py → types/actions_enum.py} +4 -1
- label_studio_sdk/types/all_roles_project_list.py +197 -0
- label_studio_sdk/types/all_roles_project_list_sampling.py +7 -0
- label_studio_sdk/types/all_roles_project_list_skip_queue.py +7 -0
- label_studio_sdk/types/annotated_enum.py +5 -0
- label_studio_sdk/types/annotation.py +24 -10
- label_studio_sdk/types/annotation_last_action.py +3 -15
- label_studio_sdk/types/{annotations_dm_field.py → annotation_request.py} +21 -30
- label_studio_sdk/types/annotation_request_last_action.py +7 -0
- label_studio_sdk/types/assignment_settings.py +31 -0
- label_studio_sdk/types/assignment_settings_label_stream_task_distribution.py +7 -0
- label_studio_sdk/types/assignment_settings_request.py +32 -0
- label_studio_sdk/types/assignment_settings_request_label_stream_task_distribution.py +7 -0
- label_studio_sdk/types/{key_indicators_item_additional_kpis_item.py → associated_project.py} +9 -6
- label_studio_sdk/types/auth_method_enum.py +5 -0
- label_studio_sdk/types/azure_blob_export_storage.py +8 -12
- label_studio_sdk/types/azure_blob_import_storage.py +8 -12
- label_studio_sdk/types/{prompt_associated_projects_item_id.py → batch_failed_predictions.py} +4 -4
- label_studio_sdk/types/{access_token_response.py → batch_predictions.py} +6 -8
- label_studio_sdk/types/blank_enum.py +5 -0
- label_studio_sdk/types/{key_indicators_item_extra_kpis_item.py → blueprint_list.py} +12 -6
- label_studio_sdk/types/budget_reset_period_enum.py +5 -0
- label_studio_sdk/types/child_filter.py +44 -0
- label_studio_sdk/types/comment.py +39 -14
- label_studio_sdk/types/comment_request.py +32 -0
- label_studio_sdk/types/comment_serializer_with_expanded_user.py +53 -0
- label_studio_sdk/types/converted_format.py +5 -5
- label_studio_sdk/types/{api_token_response.py → converted_format_request.py} +8 -15
- label_studio_sdk/types/custom_scripts_editable_by_enum.py +5 -0
- label_studio_sdk/types/default_role_enum.py +5 -0
- label_studio_sdk/types/edition_enum.py +5 -0
- label_studio_sdk/types/export.py +7 -7
- label_studio_sdk/types/file_upload.py +5 -5
- label_studio_sdk/types/filter.py +9 -6
- label_studio_sdk/types/filter_group.py +3 -3
- label_studio_sdk/types/finished_enum.py +5 -0
- label_studio_sdk/types/gcs_export_storage.py +8 -12
- label_studio_sdk/types/gcs_import_storage.py +8 -12
- label_studio_sdk/types/{rotate_token_response.py → hotkeys.py} +5 -8
- label_studio_sdk/types/{base_task.py → import_api_request.py} +11 -34
- label_studio_sdk/types/inference_run_cost_estimate.py +2 -2
- label_studio_sdk/types/label_stream_task_distribution_enum.py +5 -0
- label_studio_sdk/types/{annotations_dm_field_last_action.py → last_action_enum.py} +1 -1
- label_studio_sdk/types/local_files_export_storage.py +8 -12
- label_studio_sdk/types/local_files_import_storage.py +8 -12
- label_studio_sdk/types/{annotation_filter_options.py → lse_annotation_filter_options.py} +12 -2
- label_studio_sdk/types/lse_annotation_filter_options_request.py +42 -0
- label_studio_sdk/types/lse_annotation_filter_options_request_reviewed.py +7 -0
- label_studio_sdk/types/lse_annotation_filter_options_reviewed.py +7 -0
- label_studio_sdk/types/{export_snapshot.py → lse_export_create.py} +11 -11
- label_studio_sdk/types/lse_fields.py +49 -0
- label_studio_sdk/types/lse_fields_onboarding_state.py +8 -0
- label_studio_sdk/types/lse_fields_trial_role.py +8 -0
- label_studio_sdk/types/lse_key_indicator_value.py +35 -0
- label_studio_sdk/types/lse_organization.py +57 -0
- label_studio_sdk/types/lse_organization_custom_scripts_editable_by.py +7 -0
- label_studio_sdk/types/lse_project_create.py +196 -0
- label_studio_sdk/types/lse_project_create_sampling.py +7 -0
- label_studio_sdk/types/lse_project_create_skip_queue.py +7 -0
- label_studio_sdk/types/lse_project_update.py +215 -0
- label_studio_sdk/types/lse_project_update_sampling.py +7 -0
- label_studio_sdk/types/lse_project_update_skip_queue.py +7 -0
- label_studio_sdk/types/lse_s3export_storage.py +134 -0
- label_studio_sdk/{import_storage/s3/types/s3create_response.py → types/lse_s3export_storage_request.py} +47 -21
- label_studio_sdk/{import_storage/s3/types/s3update_response.py → types/lse_s3import_storage.py} +60 -21
- label_studio_sdk/types/{s3s_import_storage.py → lse_s3import_storage_request.py} +32 -21
- label_studio_sdk/types/lse_task.py +117 -0
- label_studio_sdk/types/{data_manager_task_serializer_drafts_item.py → lse_task_drafts_item.py} +2 -2
- label_studio_sdk/types/lse_task_filter_options.py +63 -0
- label_studio_sdk/types/lse_task_filter_options_annotated.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_finished.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_request.py +63 -0
- label_studio_sdk/types/lse_task_filter_options_request_annotated.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_request_finished.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_request_reviewed.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_request_skipped.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_reviewed.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_skipped.py +7 -0
- label_studio_sdk/types/{data_manager_task_serializer_predictions_item.py → lse_task_predictions_item.py} +4 -5
- label_studio_sdk/types/lse_task_serializer_for_annotators.py +54 -0
- label_studio_sdk/types/lse_task_serializer_for_annotators_drafts_item.py +22 -0
- label_studio_sdk/types/lse_task_serializer_for_annotators_predictions_item.py +28 -0
- label_studio_sdk/types/lse_task_serializer_for_reviewers.py +117 -0
- label_studio_sdk/types/lse_task_serializer_for_reviewers_drafts_item.py +22 -0
- label_studio_sdk/types/lse_task_serializer_for_reviewers_predictions_item.py +28 -0
- label_studio_sdk/types/lse_user.py +49 -0
- label_studio_sdk/types/{base_user.py → lse_user_api.py} +17 -6
- label_studio_sdk/types/lseapi_token_create.py +21 -0
- label_studio_sdk/types/lseapi_token_list.py +21 -0
- label_studio_sdk/types/lsejwt_settings.py +32 -0
- label_studio_sdk/types/maybe_expanded_comment.py +7 -0
- label_studio_sdk/types/ml_backend.py +16 -17
- label_studio_sdk/types/mode_enum.py +5 -0
- label_studio_sdk/types/model_interface.py +44 -0
- label_studio_sdk/types/model_interface_request.py +40 -0
- label_studio_sdk/types/model_interface_serializer_get.py +45 -0
- label_studio_sdk/types/model_provider_connection.py +48 -17
- label_studio_sdk/types/model_provider_connection_budget_reset_period.py +3 -1
- label_studio_sdk/types/model_provider_connection_request.py +71 -0
- label_studio_sdk/types/model_run.py +40 -0
- label_studio_sdk/types/{inference_run_status.py → model_run_status_enum.py} +1 -1
- label_studio_sdk/types/null_enum.py +3 -0
- label_studio_sdk/types/onboarding_state_enum.py +7 -0
- label_studio_sdk/types/organization_billing.py +20 -0
- label_studio_sdk/types/organization_id.py +28 -0
- label_studio_sdk/types/organization_invite.py +20 -0
- label_studio_sdk/types/organization_member.py +37 -0
- label_studio_sdk/types/organization_membership.py +24 -0
- label_studio_sdk/{projects/types/projects_list_response.py → types/paginated_all_roles_project_list_list.py} +5 -5
- label_studio_sdk/types/{jwt_settings_response.py → paginated_role_based_task_list.py} +11 -9
- label_studio_sdk/types/pause.py +55 -14
- label_studio_sdk/types/pause_request.py +41 -0
- label_studio_sdk/types/prediction.py +7 -11
- label_studio_sdk/types/prediction_request.py +56 -0
- label_studio_sdk/types/project.py +32 -39
- label_studio_sdk/types/project_import.py +12 -13
- label_studio_sdk/types/project_label_config.py +2 -2
- label_studio_sdk/types/project_label_config_request.py +22 -0
- label_studio_sdk/types/project_sampling.py +3 -3
- label_studio_sdk/types/project_skip_queue.py +3 -1
- label_studio_sdk/types/project_subset_enum.py +5 -0
- label_studio_sdk/types/{prompt_version_provider.py → provider_enum.py} +1 -1
- label_studio_sdk/types/reason_enum.py +7 -0
- label_studio_sdk/types/redis_export_storage.py +8 -12
- label_studio_sdk/types/redis_import_storage.py +8 -12
- label_studio_sdk/types/refined_prompt_response.py +5 -6
- label_studio_sdk/types/requeue_rejected_tasks_mode_enum.py +5 -0
- label_studio_sdk/types/review_criteria_enum.py +5 -0
- label_studio_sdk/types/review_settings.py +80 -0
- label_studio_sdk/types/review_settings_request.py +80 -0
- label_studio_sdk/types/review_settings_request_requeue_rejected_tasks_mode.py +8 -0
- label_studio_sdk/types/review_settings_request_review_criteria.py +7 -0
- label_studio_sdk/types/review_settings_requeue_rejected_tasks_mode.py +8 -0
- label_studio_sdk/types/review_settings_review_criteria.py +7 -0
- label_studio_sdk/types/reviewed_enum.py +5 -0
- label_studio_sdk/types/role_based_task.py +8 -0
- label_studio_sdk/types/s3export_storage.py +8 -12
- label_studio_sdk/types/s3import_storage.py +8 -12
- label_studio_sdk/types/sampling_enum.py +7 -0
- label_studio_sdk/types/scope_enum.py +5 -0
- label_studio_sdk/types/selected_items_request.py +23 -0
- label_studio_sdk/types/serialization_option.py +2 -6
- label_studio_sdk/types/serialization_option_request.py +22 -0
- label_studio_sdk/types/serialization_options.py +17 -5
- label_studio_sdk/types/serialization_options_request.py +47 -0
- label_studio_sdk/types/skill_name_enum.py +5 -0
- label_studio_sdk/types/skip_queue_enum.py +5 -0
- label_studio_sdk/types/skipped_enum.py +5 -0
- label_studio_sdk/types/state_enum.py +5 -0
- label_studio_sdk/types/status7bf_enum.py +5 -0
- label_studio_sdk/types/{azure_blob_import_storage_status.py → status_c5a_enum.py} +2 -2
- label_studio_sdk/types/third_party_model_version.py +65 -0
- label_studio_sdk/types/third_party_model_version_request.py +54 -0
- label_studio_sdk/types/token_refresh_response.py +19 -0
- label_studio_sdk/types/token_rotate_response.py +19 -0
- label_studio_sdk/types/trial_role_enum.py +16 -0
- label_studio_sdk/types/user_simple.py +8 -5
- label_studio_sdk/types/user_simple_request.py +28 -0
- label_studio_sdk/types/version_response.py +49 -0
- label_studio_sdk/types/view.py +8 -15
- label_studio_sdk/types/webhook.py +9 -13
- label_studio_sdk/types/webhook_serializer_for_update.py +15 -13
- label_studio_sdk/types/workspace.py +14 -34
- label_studio_sdk/types/workspace_member_create.py +27 -0
- label_studio_sdk/types/workspace_member_list.py +24 -0
- label_studio_sdk/users/client.py +604 -87
- label_studio_sdk/users/types/users_get_token_response.py +4 -11
- label_studio_sdk/users/types/users_reset_token_response.py +4 -11
- label_studio_sdk/versions/__init__.py +0 -3
- label_studio_sdk/versions/client.py +14 -14
- label_studio_sdk/views/client.py +227 -141
- label_studio_sdk/views/types/views_create_request_data.py +2 -2
- label_studio_sdk/views/types/views_create_request_data_filters.py +2 -2
- label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +2 -2
- label_studio_sdk/views/types/views_update_request_data.py +2 -2
- label_studio_sdk/views/types/views_update_request_data_filters.py +2 -2
- label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +2 -2
- label_studio_sdk/webhooks/__init__.py +36 -2
- label_studio_sdk/webhooks/client.py +173 -367
- label_studio_sdk/webhooks/types/__init__.py +34 -2
- label_studio_sdk/webhooks/types/webhooks_info_response.py +80 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_annotation_created.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_annotation_updated.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_annotations_created.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_annotations_deleted.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_label_link_created.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_label_link_deleted.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_label_link_updated.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_project_created.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_project_deleted.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_project_updated.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_review_created.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_review_updated.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_reviews_deleted.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_tasks_created.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_tasks_deleted.py +24 -0
- label_studio_sdk/workspaces/__init__.py +1 -2
- label_studio_sdk/workspaces/client.py +97 -117
- label_studio_sdk/workspaces/members/__init__.py +0 -3
- label_studio_sdk/workspaces/members/client.py +65 -81
- {label_studio_sdk-1.0.20.dist-info → label_studio_sdk-2.0.0.dist-info}/METADATA +1 -1
- label_studio_sdk-2.0.0.dist-info/RECORD +424 -0
- {label_studio_sdk-1.0.20.dist-info → label_studio_sdk-2.0.0.dist-info}/WHEEL +1 -1
- label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +0 -34
- label_studio_sdk/export_storage/azure/types/__init__.py +0 -6
- label_studio_sdk/export_storage/azure/types/azure_create_response.py +0 -57
- label_studio_sdk/export_storage/azure/types/azure_update_response.py +0 -57
- label_studio_sdk/export_storage/gcs/types/__init__.py +0 -6
- label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +0 -57
- label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +0 -57
- label_studio_sdk/export_storage/local/types/__init__.py +0 -6
- label_studio_sdk/export_storage/local/types/local_create_response.py +0 -47
- label_studio_sdk/export_storage/local/types/local_update_response.py +0 -47
- label_studio_sdk/export_storage/redis/types/__init__.py +0 -6
- label_studio_sdk/export_storage/redis/types/redis_create_response.py +0 -62
- label_studio_sdk/export_storage/redis/types/redis_update_response.py +0 -62
- label_studio_sdk/export_storage/s3/types/__init__.py +0 -6
- label_studio_sdk/export_storage/s3/types/s3create_response.py +0 -81
- label_studio_sdk/export_storage/s3/types/s3update_response.py +0 -81
- label_studio_sdk/import_storage/azure/types/__init__.py +0 -6
- label_studio_sdk/import_storage/azure/types/azure_create_response.py +0 -72
- label_studio_sdk/import_storage/azure/types/azure_update_response.py +0 -72
- label_studio_sdk/import_storage/gcs/types/__init__.py +0 -6
- label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +0 -72
- label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +0 -72
- label_studio_sdk/import_storage/local/types/__init__.py +0 -6
- label_studio_sdk/import_storage/local/types/local_create_response.py +0 -47
- label_studio_sdk/import_storage/local/types/local_update_response.py +0 -47
- label_studio_sdk/import_storage/redis/types/__init__.py +0 -6
- label_studio_sdk/import_storage/redis/types/redis_create_response.py +0 -62
- label_studio_sdk/import_storage/redis/types/redis_update_response.py +0 -62
- label_studio_sdk/import_storage/s3/types/__init__.py +0 -6
- label_studio_sdk/ml/types/ml_create_response.py +0 -68
- label_studio_sdk/ml/types/ml_create_response_auth_method.py +0 -5
- label_studio_sdk/ml/types/ml_update_response.py +0 -68
- label_studio_sdk/ml/types/ml_update_response_auth_method.py +0 -5
- label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +0 -44
- label_studio_sdk/projects/types/projects_create_response.py +0 -91
- label_studio_sdk/projects/types/projects_update_response.py +0 -96
- label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +0 -32
- label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +0 -59
- label_studio_sdk/tasks/types/tasks_list_response.py +0 -38
- label_studio_sdk/types/annotation_completed_by.py +0 -6
- label_studio_sdk/types/azure_blob_export_storage_status.py +0 -7
- label_studio_sdk/types/base_task_updated_by.py +0 -7
- label_studio_sdk/types/comment_created_by.py +0 -5
- label_studio_sdk/types/converted_format_status.py +0 -5
- label_studio_sdk/types/data_manager_task_serializer.py +0 -118
- label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +0 -5
- label_studio_sdk/types/data_manager_task_serializer_comment_authors_item.py +0 -5
- label_studio_sdk/types/data_manager_task_serializer_predictions_item_model_run.py +0 -5
- label_studio_sdk/types/export_format.py +0 -25
- label_studio_sdk/types/export_snapshot_status.py +0 -5
- label_studio_sdk/types/export_status.py +0 -5
- label_studio_sdk/types/gcs_export_storage_status.py +0 -7
- label_studio_sdk/types/gcs_import_storage_status.py +0 -7
- label_studio_sdk/types/inference_run.py +0 -34
- label_studio_sdk/types/inference_run_created_by.py +0 -5
- label_studio_sdk/types/inference_run_organization.py +0 -5
- label_studio_sdk/types/inference_run_project_subset.py +0 -5
- label_studio_sdk/types/key_indicators.py +0 -6
- label_studio_sdk/types/key_indicators_item.py +0 -41
- label_studio_sdk/types/local_files_export_storage_status.py +0 -7
- label_studio_sdk/types/local_files_import_storage_status.py +0 -7
- label_studio_sdk/types/ml_backend_auth_method.py +0 -5
- label_studio_sdk/types/ml_backend_state.py +0 -5
- label_studio_sdk/types/model_provider_connection_created_by.py +0 -5
- label_studio_sdk/types/model_provider_connection_organization.py +0 -5
- label_studio_sdk/types/model_provider_connection_provider.py +0 -7
- label_studio_sdk/types/model_provider_connection_scope.py +0 -5
- label_studio_sdk/types/pause_paused_by.py +0 -5
- label_studio_sdk/types/project_import_status.py +0 -5
- label_studio_sdk/types/prompt.py +0 -71
- label_studio_sdk/types/prompt_associated_projects_item.py +0 -6
- label_studio_sdk/types/prompt_created_by.py +0 -5
- label_studio_sdk/types/prompt_organization.py +0 -5
- label_studio_sdk/types/prompt_version.py +0 -32
- label_studio_sdk/types/prompt_version_created_by.py +0 -5
- label_studio_sdk/types/prompt_version_organization.py +0 -5
- label_studio_sdk/types/redis_export_storage_status.py +0 -7
- label_studio_sdk/types/redis_import_storage_status.py +0 -7
- label_studio_sdk/types/refined_prompt_response_refinement_status.py +0 -7
- label_studio_sdk/types/s3export_storage_status.py +0 -7
- label_studio_sdk/types/s3import_storage_status.py +0 -7
- label_studio_sdk/types/s3s_export_storage.py +0 -73
- label_studio_sdk/types/s3s_import_storage_status.py +0 -7
- label_studio_sdk/types/task.py +0 -156
- label_studio_sdk/types/task_annotators_item.py +0 -5
- label_studio_sdk/types/task_comment_authors_item.py +0 -5
- label_studio_sdk/types/task_filter_options.py +0 -39
- label_studio_sdk/types/webhook_actions_item.py +0 -21
- label_studio_sdk/types/webhook_serializer_for_update_actions_item.py +0 -21
- label_studio_sdk/versions/types/__init__.py +0 -6
- label_studio_sdk/versions/types/versions_get_response.py +0 -73
- label_studio_sdk/versions/types/versions_get_response_edition.py +0 -5
- label_studio_sdk/workspaces/members/types/__init__.py +0 -6
- label_studio_sdk/workspaces/members/types/members_create_response.py +0 -22
- label_studio_sdk/workspaces/members/types/members_list_response_item.py +0 -22
- label_studio_sdk-1.0.20.dist-info/RECORD +0 -374
- {label_studio_sdk-1.0.20.dist-info → label_studio_sdk-2.0.0.dist-info}/LICENSE +0 -0
|
@@ -580,7 +580,7 @@ class LabelInterface:
|
|
|
580
580
|
},
|
|
581
581
|
"required": required_outputs
|
|
582
582
|
}
|
|
583
|
-
|
|
583
|
+
|
|
584
584
|
def parse(self, config_string: str) -> Tuple[Dict, Dict, Dict, etree._Element]:
|
|
585
585
|
"""Parses the received configuration string into dictionaries
|
|
586
586
|
of ControlTags, ObjectTags, and Labels, along with an XML tree
|
|
@@ -729,23 +729,84 @@ class LabelInterface:
|
|
|
729
729
|
|
|
730
730
|
return True
|
|
731
731
|
|
|
732
|
-
def _validate_object(self, obj):
|
|
733
|
-
"""
|
|
734
|
-
|
|
735
|
-
for r in obj.get(RESULT_KEY):
|
|
736
|
-
if r.get('type') != "relation":
|
|
737
|
-
if not self.validate_region(r):
|
|
738
|
-
return False
|
|
732
|
+
def _validate_object(self, obj, return_errors=False) -> Union[bool, List[str]]:
|
|
733
|
+
"""
|
|
734
|
+
Validates an object (annotation/prediction) and returns boolean or error messages.
|
|
739
735
|
|
|
740
|
-
|
|
736
|
+
Args:
|
|
737
|
+
obj (dict): The object to validate
|
|
738
|
+
return_errors (bool): If True, returns list of error messages. If False, returns boolean.
|
|
739
|
+
|
|
740
|
+
Returns:
|
|
741
|
+
Union[bool, List[str]]: If return_errors=False, returns True/False.
|
|
742
|
+
If return_errors=True, returns list of error messages.
|
|
743
|
+
"""
|
|
744
|
+
errors = self._validate_object_logic(obj)
|
|
745
|
+
if return_errors:
|
|
746
|
+
return errors
|
|
747
|
+
else:
|
|
748
|
+
return len(errors) == 0
|
|
749
|
+
|
|
750
|
+
def _validate_object_logic(self, obj) -> List[str]:
|
|
751
|
+
"""Core validation logic that returns error messages."""
|
|
752
|
+
errors = []
|
|
753
|
+
|
|
754
|
+
try:
|
|
755
|
+
# Check if result key exists
|
|
756
|
+
if RESULT_KEY not in obj:
|
|
757
|
+
errors.append(f"Missing required field '{RESULT_KEY}'")
|
|
758
|
+
return errors
|
|
759
|
+
|
|
760
|
+
result = obj.get(RESULT_KEY)
|
|
761
|
+
if not isinstance(result, list):
|
|
762
|
+
errors.append(f"'{RESULT_KEY}' must be a list")
|
|
763
|
+
return errors
|
|
764
|
+
|
|
765
|
+
if not result:
|
|
766
|
+
errors.append(f"'{RESULT_KEY}' cannot be empty")
|
|
767
|
+
return errors
|
|
768
|
+
|
|
769
|
+
# Validate score if present
|
|
770
|
+
if 'score' in obj:
|
|
771
|
+
score = obj['score']
|
|
772
|
+
if score is not None:
|
|
773
|
+
try:
|
|
774
|
+
score_float = float(score)
|
|
775
|
+
if not (0.0 <= score_float <= 1.0):
|
|
776
|
+
errors.append(f"Score must be between 0.00 and 1.00 inclusive, got {score_float}")
|
|
777
|
+
except (ValueError, TypeError):
|
|
778
|
+
errors.append(f"Score must be a valid number, got {score}")
|
|
779
|
+
|
|
780
|
+
regions = []
|
|
781
|
+
relations_to_validate = []
|
|
782
|
+
|
|
783
|
+
# Validate each region
|
|
784
|
+
for i, region in enumerate(result):
|
|
785
|
+
if not isinstance(region, dict):
|
|
786
|
+
errors.append(f"Region must be a dictionary. Got {type(region)}: {region}")
|
|
787
|
+
continue
|
|
788
|
+
|
|
789
|
+
if region.get('type') != "relation":
|
|
790
|
+
region_errors = self.validate_region(region, return_errors=True, region_index=i)
|
|
791
|
+
errors.extend(region_errors)
|
|
792
|
+
if not region_errors: # Only add to regions if no errors
|
|
793
|
+
regions.append(region)
|
|
794
|
+
else:
|
|
795
|
+
# Store relation for later validation
|
|
796
|
+
relations_to_validate.append((i, region))
|
|
797
|
+
|
|
798
|
+
# Validate relations after all regions are processed
|
|
799
|
+
for i, relation in relations_to_validate:
|
|
800
|
+
relation_error = self.validate_relation(relation, regions, return_errors=True, relation_index=i)
|
|
801
|
+
if relation_error:
|
|
802
|
+
errors.append(relation_error)
|
|
803
|
+
|
|
804
|
+
except Exception as e:
|
|
805
|
+
errors.append(f"Unexpected error during validation: {str(e)}")
|
|
806
|
+
|
|
807
|
+
return errors
|
|
741
808
|
|
|
742
|
-
for r in obj.get(RESULT_KEY):
|
|
743
|
-
if r.get('type') == "relation" and \
|
|
744
|
-
not self.validate_relation(r, regions):
|
|
745
|
-
return False
|
|
746
809
|
|
|
747
|
-
return True
|
|
748
|
-
|
|
749
810
|
def validate_annotation(self, annotation):
|
|
750
811
|
"""Validates the given annotation against the current configuration.
|
|
751
812
|
|
|
@@ -766,11 +827,120 @@ class LabelInterface:
|
|
|
766
827
|
"""
|
|
767
828
|
return self._validate_object(annotation)
|
|
768
829
|
|
|
769
|
-
def validate_prediction(self, prediction):
|
|
770
|
-
"""
|
|
771
|
-
|
|
830
|
+
def validate_prediction(self, prediction, return_errors=False):
|
|
831
|
+
"""
|
|
832
|
+
Validates the given prediction against the current configuration.
|
|
772
833
|
|
|
773
|
-
|
|
834
|
+
Args:
|
|
835
|
+
prediction (dict): The prediction to be validated
|
|
836
|
+
return_errors (bool): If True, returns a list of error messages instead of boolean
|
|
837
|
+
|
|
838
|
+
Returns:
|
|
839
|
+
Union[bool, List[str]]: If return_errors=False, returns True/False.
|
|
840
|
+
If return_errors=True, returns list of error messages.
|
|
841
|
+
"""
|
|
842
|
+
return self._validate_object(prediction, return_errors)
|
|
843
|
+
|
|
844
|
+
def _validate_region_logic(self, region, region_index=0) -> Tuple[bool, List[str]]:
|
|
845
|
+
"""Helper method to perform region validation logic.
|
|
846
|
+
|
|
847
|
+
Args:
|
|
848
|
+
region (dict): The region to be validated.
|
|
849
|
+
region_index (int): Index of the region for error reporting.
|
|
850
|
+
|
|
851
|
+
Returns:
|
|
852
|
+
tuple: (is_valid, errors) where is_valid is bool and errors is list of strings.
|
|
853
|
+
"""
|
|
854
|
+
errors = []
|
|
855
|
+
|
|
856
|
+
# Check required fields
|
|
857
|
+
required_fields = ['from_name', 'to_name', 'type', 'value']
|
|
858
|
+
for field in required_fields:
|
|
859
|
+
if field not in region:
|
|
860
|
+
errors.append(f"Region {region_index}: Missing required field '{field}'")
|
|
861
|
+
|
|
862
|
+
# If missing required fields, don't continue validation
|
|
863
|
+
if errors:
|
|
864
|
+
return False, errors
|
|
865
|
+
|
|
866
|
+
# Validate from_name exists in configuration
|
|
867
|
+
try:
|
|
868
|
+
control = self.get_control(region["from_name"])
|
|
869
|
+
except Exception as e:
|
|
870
|
+
errors.append(f"Region {region_index}: 'from_name' '{region['from_name']}' not found in configuration")
|
|
871
|
+
return False, errors
|
|
872
|
+
|
|
873
|
+
# Validate to_name exists in configuration
|
|
874
|
+
try:
|
|
875
|
+
obj = self.get_object(region["to_name"])
|
|
876
|
+
except Exception as e:
|
|
877
|
+
errors.append(f"Region {region_index}: 'to_name' '{region['to_name']}' not found in configuration")
|
|
878
|
+
return False, errors
|
|
879
|
+
|
|
880
|
+
# Validate type matches control tag
|
|
881
|
+
expected_type = control.tag.lower()
|
|
882
|
+
actual_type = region["type"].lower()
|
|
883
|
+
if actual_type != expected_type:
|
|
884
|
+
errors.append(f"Region {region_index}: Type '{actual_type}' does not match expected type '{expected_type}' for control '{region['from_name']}'")
|
|
885
|
+
|
|
886
|
+
# Validate to_name is in control's to_name list
|
|
887
|
+
if region["to_name"] not in control.to_name:
|
|
888
|
+
errors.append(f"Region {region_index}: 'to_name' '{region['to_name']}' is not valid for control '{region['from_name']}'. Valid options: {control.to_name}")
|
|
889
|
+
|
|
890
|
+
# Validate the value using control's validate_value method
|
|
891
|
+
try:
|
|
892
|
+
if not control.validate_value(region["value"]):
|
|
893
|
+
# Prefer a clearer message for rectangle geometry bounds
|
|
894
|
+
tag_lower = getattr(control, 'tag', '').lower()
|
|
895
|
+
if tag_lower in ('rectangle', 'rectanglelabels'):
|
|
896
|
+
out_of_bounds_fields = []
|
|
897
|
+
value = region["value"]
|
|
898
|
+
for field in ("x", "y", "width", "height"):
|
|
899
|
+
if field in value:
|
|
900
|
+
try:
|
|
901
|
+
v = float(value[field])
|
|
902
|
+
if v < 0 or v > 100:
|
|
903
|
+
out_of_bounds_fields.append(f"{field} {value[field]}")
|
|
904
|
+
except Exception:
|
|
905
|
+
out_of_bounds_fields.append(f"{field} {value[field]}")
|
|
906
|
+
if out_of_bounds_fields:
|
|
907
|
+
errors.append(
|
|
908
|
+
f"Region {region_index}: Invalid geometry for control '{region['from_name']}': "
|
|
909
|
+
+ ", ".join(out_of_bounds_fields)
|
|
910
|
+
+ " out of bounds [0, 100]"
|
|
911
|
+
)
|
|
912
|
+
else:
|
|
913
|
+
invalid_value = region["value"]
|
|
914
|
+
valid_values = self._get_valid_values_for_control(control)
|
|
915
|
+
errors.append(
|
|
916
|
+
f"Region {region_index}: Invalid value for control '{region['from_name']}'. Got: {invalid_value}. Valid options: {valid_values}"
|
|
917
|
+
)
|
|
918
|
+
else:
|
|
919
|
+
invalid_value = region["value"]
|
|
920
|
+
valid_values = self._get_valid_values_for_control(control)
|
|
921
|
+
errors.append(
|
|
922
|
+
f"Region {region_index}: Invalid value for control '{region['from_name']}'. Got: {invalid_value}. Valid options: {valid_values}"
|
|
923
|
+
)
|
|
924
|
+
except Exception as e:
|
|
925
|
+
errors.append(f"Region {region_index}: Error validating value for control '{region['from_name']}': {str(e)}")
|
|
926
|
+
|
|
927
|
+
return len(errors) == 0, errors
|
|
928
|
+
|
|
929
|
+
def _get_valid_values_for_control(self, control):
|
|
930
|
+
"""Get valid values for a control tag to provide better error messages."""
|
|
931
|
+
try:
|
|
932
|
+
if hasattr(control, 'labels') and control.labels:
|
|
933
|
+
# For tags with predefined labels (Choices, Labels, etc.)
|
|
934
|
+
return f"{control.labels}"
|
|
935
|
+
elif hasattr(control, '_value_class'):
|
|
936
|
+
# For tags with value classes, show the expected structure
|
|
937
|
+
return f"expected structure: {control._value_class.__name__}"
|
|
938
|
+
else:
|
|
939
|
+
return "no specific validation rules"
|
|
940
|
+
except Exception:
|
|
941
|
+
return "unknown validation rules"
|
|
942
|
+
|
|
943
|
+
def validate_region(self, region, return_errors=False, region_index=0):
|
|
774
944
|
"""Validates a region from the annotation against the current
|
|
775
945
|
configuration.
|
|
776
946
|
|
|
@@ -780,53 +950,88 @@ class LabelInterface:
|
|
|
780
950
|
- The 'to_name' in the region data connects to the same tag as in the configuration.
|
|
781
951
|
- The actual value for example in <Labels /> tag is producing start, end, and labels.
|
|
782
952
|
|
|
783
|
-
If any of these validations fail, the function immediately
|
|
784
|
-
returns False. If all validations pass for a region, it
|
|
785
|
-
returns True.
|
|
786
|
-
|
|
787
953
|
Args:
|
|
788
954
|
region (dict): The region to be validated.
|
|
955
|
+
return_errors (bool): If True, returns a list of error messages instead of boolean
|
|
956
|
+
region_index (int): Index of the region for error reporting (used when return_errors=True)
|
|
789
957
|
|
|
790
958
|
Returns:
|
|
791
|
-
bool:
|
|
959
|
+
Union[bool, List[str]]: If return_errors=False, returns True/False.
|
|
960
|
+
If return_errors=True, returns list of error messages.
|
|
961
|
+
"""
|
|
962
|
+
is_valid, errors = self._validate_region_logic(region, region_index)
|
|
792
963
|
|
|
964
|
+
if return_errors:
|
|
965
|
+
return errors
|
|
966
|
+
else:
|
|
967
|
+
return is_valid
|
|
968
|
+
|
|
969
|
+
def _validate_relation_logic(self, relation, regions, relation_index=0) -> Tuple[bool, List[str]]:
|
|
970
|
+
"""Helper method to perform relation validation logic.
|
|
971
|
+
Args:
|
|
972
|
+
relation (dict): The relation to validate
|
|
973
|
+
regions (list): List of validated regions
|
|
974
|
+
relation_index (int): Index of the relation for error reporting
|
|
975
|
+
|
|
976
|
+
Returns:
|
|
977
|
+
tuple: (is_valid, errors) where is_valid is bool and errors is list of strings.
|
|
793
978
|
"""
|
|
794
|
-
|
|
795
|
-
obj = self.get_object(region["to_name"])
|
|
979
|
+
errors = []
|
|
796
980
|
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
981
|
+
try:
|
|
982
|
+
# Check required fields for relations
|
|
983
|
+
required_fields = ['type', 'direction', 'from_id', 'to_id']
|
|
984
|
+
for field in required_fields:
|
|
985
|
+
if field not in relation:
|
|
986
|
+
errors.append(f"Relation {relation_index}: Missing required field '{field}'")
|
|
800
987
|
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
# make sure that in config it connects to the same tag as
|
|
806
|
-
# immplied by the region data
|
|
807
|
-
if region["to_name"] not in control.to_name:
|
|
808
|
-
return False
|
|
809
|
-
|
|
810
|
-
# validate the actual value, for example that <Labels /> tag
|
|
811
|
-
# is producing start, end, and labels
|
|
812
|
-
if not control.validate_value(region["value"]):
|
|
813
|
-
return False
|
|
814
|
-
|
|
815
|
-
return True
|
|
988
|
+
# Validate type
|
|
989
|
+
if relation.get("type") != "relation":
|
|
990
|
+
errors.append(f"Relation {relation_index}: Type must be 'relation', got '{relation.get('type')}'")
|
|
816
991
|
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
992
|
+
# Validate direction
|
|
993
|
+
valid_directions = ("left", "right", "bi")
|
|
994
|
+
if relation.get("direction") not in valid_directions:
|
|
995
|
+
errors.append(f"Relation {relation_index}: Direction must be one of {valid_directions}, got '{relation.get('direction')}'")
|
|
996
|
+
|
|
997
|
+
# Create mapping of region IDs
|
|
998
|
+
region_mapping = {r['id']: r for r in regions if 'id' in r}
|
|
999
|
+
|
|
1000
|
+
# Validate from_id exists
|
|
1001
|
+
from_id = relation.get("from_id")
|
|
1002
|
+
if from_id not in region_mapping:
|
|
1003
|
+
errors.append(f"Relation {relation_index}: 'from_id' '{from_id}' not found in regions")
|
|
1004
|
+
|
|
1005
|
+
# Validate to_id exists
|
|
1006
|
+
to_id = relation.get("to_id")
|
|
1007
|
+
if to_id not in region_mapping:
|
|
1008
|
+
errors.append(f"Relation {relation_index}: 'to_id' '{to_id}' not found in regions")
|
|
1009
|
+
|
|
1010
|
+
except Exception as e:
|
|
1011
|
+
errors.append(f"Relation {relation_index}: Error validating relation - {str(e)}")
|
|
1012
|
+
|
|
1013
|
+
return len(errors) == 0, errors
|
|
1014
|
+
|
|
1015
|
+
def validate_relation(self, relation, regions, return_errors=False, relation_index=0):
|
|
1016
|
+
"""Validates that the relation is correct and all the associated objects are provided
|
|
1017
|
+
|
|
1018
|
+
Args:
|
|
1019
|
+
relation (dict): The relation to validate
|
|
1020
|
+
regions (list): List of validated regions
|
|
1021
|
+
return_errors (bool): If True, returns error message string instead of boolean
|
|
1022
|
+
relation_index (int): Index of the relation for error reporting (used when return_errors=True)
|
|
1023
|
+
|
|
1024
|
+
Returns:
|
|
1025
|
+
Union[bool, str]: If return_errors=False, returns True/False.
|
|
1026
|
+
If return_errors=True, returns error message string or None.
|
|
1027
|
+
"""
|
|
1028
|
+
is_valid, errors = self._validate_relation_logic(relation, regions, relation_index)
|
|
1029
|
+
|
|
1030
|
+
if return_errors:
|
|
1031
|
+
return errors
|
|
1032
|
+
else:
|
|
1033
|
+
return is_valid
|
|
821
1034
|
|
|
822
|
-
if relation.get("type") != "relation" or \
|
|
823
|
-
relation.get("direction") not in ("left", "right", "bi") or \
|
|
824
|
-
relation.get("from_id") not in _mapping or \
|
|
825
|
-
relation.get("to_id") not in _mapping:
|
|
826
|
-
return False
|
|
827
|
-
|
|
828
|
-
return True
|
|
829
|
-
|
|
830
1035
|
### Generation
|
|
831
1036
|
|
|
832
1037
|
def _sample_task(self, secure_mode=False):
|
label_studio_sdk/ml/__init__.py
CHANGED
|
@@ -1,19 +1,5 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .types import
|
|
4
|
-
MlCreateRequestAuthMethod,
|
|
5
|
-
MlCreateResponse,
|
|
6
|
-
MlCreateResponseAuthMethod,
|
|
7
|
-
MlUpdateRequestAuthMethod,
|
|
8
|
-
MlUpdateResponse,
|
|
9
|
-
MlUpdateResponseAuthMethod,
|
|
10
|
-
)
|
|
3
|
+
from .types import MlCreateRequestAuthMethod, MlListModelVersionsResponse, MlUpdateRequestAuthMethod
|
|
11
4
|
|
|
12
|
-
__all__ = [
|
|
13
|
-
"MlCreateRequestAuthMethod",
|
|
14
|
-
"MlCreateResponse",
|
|
15
|
-
"MlCreateResponseAuthMethod",
|
|
16
|
-
"MlUpdateRequestAuthMethod",
|
|
17
|
-
"MlUpdateResponse",
|
|
18
|
-
"MlUpdateResponseAuthMethod",
|
|
19
|
-
]
|
|
5
|
+
__all__ = ["MlCreateRequestAuthMethod", "MlListModelVersionsResponse", "MlUpdateRequestAuthMethod"]
|