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
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from ...core.
|
|
3
|
+
from ...core.unchecked_base_model import UncheckedBaseModel
|
|
4
4
|
import typing
|
|
5
5
|
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
|
6
6
|
import pydantic
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
class ImportStorageListTypesResponseItem(
|
|
9
|
+
class ImportStorageListTypesResponseItem(UncheckedBaseModel):
|
|
10
10
|
name: typing.Optional[str] = None
|
|
11
11
|
title: typing.Optional[str] = None
|
|
12
12
|
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import typing
|
|
4
4
|
from ..core.client_wrapper import SyncClientWrapper
|
|
5
5
|
from ..core.request_options import RequestOptions
|
|
6
|
-
from ..types.
|
|
7
|
-
from ..core.
|
|
6
|
+
from ..types.lsejwt_settings import LsejwtSettings
|
|
7
|
+
from ..core.unchecked_base_model import construct_type
|
|
8
8
|
from json.decoder import JSONDecodeError
|
|
9
9
|
from ..core.api_error import ApiError
|
|
10
10
|
from ..core.client_wrapper import AsyncClientWrapper
|
|
@@ -17,9 +17,9 @@ class JwtSettingsClient:
|
|
|
17
17
|
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
18
18
|
self._client_wrapper = client_wrapper
|
|
19
19
|
|
|
20
|
-
def get(self, *, request_options: typing.Optional[RequestOptions] = None) ->
|
|
20
|
+
def get(self, *, request_options: typing.Optional[RequestOptions] = None) -> LsejwtSettings:
|
|
21
21
|
"""
|
|
22
|
-
Retrieve JWT settings for the currently
|
|
22
|
+
Retrieve JWT settings for the currently active organization.
|
|
23
23
|
|
|
24
24
|
Parameters
|
|
25
25
|
----------
|
|
@@ -28,8 +28,8 @@ class JwtSettingsClient:
|
|
|
28
28
|
|
|
29
29
|
Returns
|
|
30
30
|
-------
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
LsejwtSettings
|
|
32
|
+
|
|
33
33
|
|
|
34
34
|
Examples
|
|
35
35
|
--------
|
|
@@ -48,9 +48,9 @@ class JwtSettingsClient:
|
|
|
48
48
|
try:
|
|
49
49
|
if 200 <= _response.status_code < 300:
|
|
50
50
|
return typing.cast(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
type_=
|
|
51
|
+
LsejwtSettings,
|
|
52
|
+
construct_type(
|
|
53
|
+
type_=LsejwtSettings, # type: ignore
|
|
54
54
|
object_=_response.json(),
|
|
55
55
|
),
|
|
56
56
|
)
|
|
@@ -59,35 +59,35 @@ class JwtSettingsClient:
|
|
|
59
59
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
60
60
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
61
61
|
|
|
62
|
-
def
|
|
62
|
+
def update(
|
|
63
63
|
self,
|
|
64
64
|
*,
|
|
65
|
-
api_tokens_enabled: bool,
|
|
66
|
-
legacy_api_tokens_enabled: bool,
|
|
67
|
-
api_token_ttl_days: int,
|
|
65
|
+
api_tokens_enabled: typing.Optional[bool] = OMIT,
|
|
66
|
+
legacy_api_tokens_enabled: typing.Optional[bool] = OMIT,
|
|
67
|
+
api_token_ttl_days: typing.Optional[int] = OMIT,
|
|
68
68
|
request_options: typing.Optional[RequestOptions] = None,
|
|
69
|
-
) ->
|
|
69
|
+
) -> LsejwtSettings:
|
|
70
70
|
"""
|
|
71
71
|
Update JWT settings for the currently active organization.
|
|
72
72
|
|
|
73
73
|
Parameters
|
|
74
74
|
----------
|
|
75
|
-
api_tokens_enabled : bool
|
|
76
|
-
|
|
75
|
+
api_tokens_enabled : typing.Optional[bool]
|
|
76
|
+
Enable JWT API token authentication for this organization
|
|
77
77
|
|
|
78
|
-
legacy_api_tokens_enabled : bool
|
|
79
|
-
|
|
78
|
+
legacy_api_tokens_enabled : typing.Optional[bool]
|
|
79
|
+
Enable legacy API token authentication for this organization
|
|
80
80
|
|
|
81
|
-
api_token_ttl_days : int
|
|
82
|
-
Number of days before API tokens expire
|
|
81
|
+
api_token_ttl_days : typing.Optional[int]
|
|
82
|
+
Number of days before JWT API tokens expire
|
|
83
83
|
|
|
84
84
|
request_options : typing.Optional[RequestOptions]
|
|
85
85
|
Request-specific configuration.
|
|
86
86
|
|
|
87
87
|
Returns
|
|
88
88
|
-------
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
LsejwtSettings
|
|
90
|
+
|
|
91
91
|
|
|
92
92
|
Examples
|
|
93
93
|
--------
|
|
@@ -96,11 +96,7 @@ class JwtSettingsClient:
|
|
|
96
96
|
client = LabelStudio(
|
|
97
97
|
api_key="YOUR_API_KEY",
|
|
98
98
|
)
|
|
99
|
-
client.jwt_settings.
|
|
100
|
-
api_tokens_enabled=True,
|
|
101
|
-
legacy_api_tokens_enabled=True,
|
|
102
|
-
api_token_ttl_days=1,
|
|
103
|
-
)
|
|
99
|
+
client.jwt_settings.update()
|
|
104
100
|
"""
|
|
105
101
|
_response = self._client_wrapper.httpx_client.request(
|
|
106
102
|
"api/jwt/settings",
|
|
@@ -110,15 +106,18 @@ class JwtSettingsClient:
|
|
|
110
106
|
"legacy_api_tokens_enabled": legacy_api_tokens_enabled,
|
|
111
107
|
"api_token_ttl_days": api_token_ttl_days,
|
|
112
108
|
},
|
|
109
|
+
headers={
|
|
110
|
+
"content-type": "application/json",
|
|
111
|
+
},
|
|
113
112
|
request_options=request_options,
|
|
114
113
|
omit=OMIT,
|
|
115
114
|
)
|
|
116
115
|
try:
|
|
117
116
|
if 200 <= _response.status_code < 300:
|
|
118
117
|
return typing.cast(
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
type_=
|
|
118
|
+
LsejwtSettings,
|
|
119
|
+
construct_type(
|
|
120
|
+
type_=LsejwtSettings, # type: ignore
|
|
122
121
|
object_=_response.json(),
|
|
123
122
|
),
|
|
124
123
|
)
|
|
@@ -132,9 +131,9 @@ class AsyncJwtSettingsClient:
|
|
|
132
131
|
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
133
132
|
self._client_wrapper = client_wrapper
|
|
134
133
|
|
|
135
|
-
async def get(self, *, request_options: typing.Optional[RequestOptions] = None) ->
|
|
134
|
+
async def get(self, *, request_options: typing.Optional[RequestOptions] = None) -> LsejwtSettings:
|
|
136
135
|
"""
|
|
137
|
-
Retrieve JWT settings for the currently
|
|
136
|
+
Retrieve JWT settings for the currently active organization.
|
|
138
137
|
|
|
139
138
|
Parameters
|
|
140
139
|
----------
|
|
@@ -143,8 +142,8 @@ class AsyncJwtSettingsClient:
|
|
|
143
142
|
|
|
144
143
|
Returns
|
|
145
144
|
-------
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
LsejwtSettings
|
|
146
|
+
|
|
148
147
|
|
|
149
148
|
Examples
|
|
150
149
|
--------
|
|
@@ -171,9 +170,9 @@ class AsyncJwtSettingsClient:
|
|
|
171
170
|
try:
|
|
172
171
|
if 200 <= _response.status_code < 300:
|
|
173
172
|
return typing.cast(
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
type_=
|
|
173
|
+
LsejwtSettings,
|
|
174
|
+
construct_type(
|
|
175
|
+
type_=LsejwtSettings, # type: ignore
|
|
177
176
|
object_=_response.json(),
|
|
178
177
|
),
|
|
179
178
|
)
|
|
@@ -182,35 +181,35 @@ class AsyncJwtSettingsClient:
|
|
|
182
181
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
183
182
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
184
183
|
|
|
185
|
-
async def
|
|
184
|
+
async def update(
|
|
186
185
|
self,
|
|
187
186
|
*,
|
|
188
|
-
api_tokens_enabled: bool,
|
|
189
|
-
legacy_api_tokens_enabled: bool,
|
|
190
|
-
api_token_ttl_days: int,
|
|
187
|
+
api_tokens_enabled: typing.Optional[bool] = OMIT,
|
|
188
|
+
legacy_api_tokens_enabled: typing.Optional[bool] = OMIT,
|
|
189
|
+
api_token_ttl_days: typing.Optional[int] = OMIT,
|
|
191
190
|
request_options: typing.Optional[RequestOptions] = None,
|
|
192
|
-
) ->
|
|
191
|
+
) -> LsejwtSettings:
|
|
193
192
|
"""
|
|
194
193
|
Update JWT settings for the currently active organization.
|
|
195
194
|
|
|
196
195
|
Parameters
|
|
197
196
|
----------
|
|
198
|
-
api_tokens_enabled : bool
|
|
199
|
-
|
|
197
|
+
api_tokens_enabled : typing.Optional[bool]
|
|
198
|
+
Enable JWT API token authentication for this organization
|
|
200
199
|
|
|
201
|
-
legacy_api_tokens_enabled : bool
|
|
202
|
-
|
|
200
|
+
legacy_api_tokens_enabled : typing.Optional[bool]
|
|
201
|
+
Enable legacy API token authentication for this organization
|
|
203
202
|
|
|
204
|
-
api_token_ttl_days : int
|
|
205
|
-
Number of days before API tokens expire
|
|
203
|
+
api_token_ttl_days : typing.Optional[int]
|
|
204
|
+
Number of days before JWT API tokens expire
|
|
206
205
|
|
|
207
206
|
request_options : typing.Optional[RequestOptions]
|
|
208
207
|
Request-specific configuration.
|
|
209
208
|
|
|
210
209
|
Returns
|
|
211
210
|
-------
|
|
212
|
-
|
|
213
|
-
|
|
211
|
+
LsejwtSettings
|
|
212
|
+
|
|
214
213
|
|
|
215
214
|
Examples
|
|
216
215
|
--------
|
|
@@ -224,11 +223,7 @@ class AsyncJwtSettingsClient:
|
|
|
224
223
|
|
|
225
224
|
|
|
226
225
|
async def main() -> None:
|
|
227
|
-
await client.jwt_settings.
|
|
228
|
-
api_tokens_enabled=True,
|
|
229
|
-
legacy_api_tokens_enabled=True,
|
|
230
|
-
api_token_ttl_days=1,
|
|
231
|
-
)
|
|
226
|
+
await client.jwt_settings.update()
|
|
232
227
|
|
|
233
228
|
|
|
234
229
|
asyncio.run(main())
|
|
@@ -241,15 +236,18 @@ class AsyncJwtSettingsClient:
|
|
|
241
236
|
"legacy_api_tokens_enabled": legacy_api_tokens_enabled,
|
|
242
237
|
"api_token_ttl_days": api_token_ttl_days,
|
|
243
238
|
},
|
|
239
|
+
headers={
|
|
240
|
+
"content-type": "application/json",
|
|
241
|
+
},
|
|
244
242
|
request_options=request_options,
|
|
245
243
|
omit=OMIT,
|
|
246
244
|
)
|
|
247
245
|
try:
|
|
248
246
|
if 200 <= _response.status_code < 300:
|
|
249
247
|
return typing.cast(
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
type_=
|
|
248
|
+
LsejwtSettings,
|
|
249
|
+
construct_type(
|
|
250
|
+
type_=LsejwtSettings, # type: ignore
|
|
253
251
|
object_=_response.json(),
|
|
254
252
|
),
|
|
255
253
|
)
|
|
@@ -287,10 +287,9 @@ class ControlTag(LabelStudioTag):
|
|
|
287
287
|
|
|
288
288
|
def _validate_value_labels(self, value):
|
|
289
289
|
""" """
|
|
290
|
-
if self._label_attr_name
|
|
291
|
-
return
|
|
292
|
-
|
|
293
|
-
return self._validate_labels(value.get(self._label_attr_name))
|
|
290
|
+
if hasattr(self, "_label_attr_name") and self._label_attr_name in value:
|
|
291
|
+
return self._validate_labels(value.get(self._label_attr_name))
|
|
292
|
+
return False
|
|
294
293
|
|
|
295
294
|
def validate_value(self, value: dict) -> bool:
|
|
296
295
|
"""
|
|
@@ -312,6 +311,10 @@ class ControlTag(LabelStudioTag):
|
|
|
312
311
|
True if the value is valid, False otherwise
|
|
313
312
|
"""
|
|
314
313
|
|
|
314
|
+
# Accept inputs that nest the payload under the control name, e.g. {"ranker": "rank": ["a", "b", "c"]}
|
|
315
|
+
if isinstance(value, dict) and self.name in value and isinstance(value[self.name], dict):
|
|
316
|
+
value = value[self.name]
|
|
317
|
+
|
|
315
318
|
if hasattr(self, "_label_attr_name"):
|
|
316
319
|
if not self._validate_value_labels(value):
|
|
317
320
|
return False
|
|
@@ -499,13 +502,13 @@ class ControlTag(LabelStudioTag):
|
|
|
499
502
|
|
|
500
503
|
|
|
501
504
|
class SpanSelection(BaseModel):
|
|
502
|
-
start: int
|
|
503
|
-
end: int
|
|
505
|
+
start: Union[int, str]
|
|
506
|
+
end: Union[int, str]
|
|
504
507
|
|
|
505
508
|
|
|
506
509
|
class SpanSelectionOffsets(SpanSelection):
|
|
507
|
-
startOffset: int = Field(
|
|
508
|
-
endOffset: int = Field(
|
|
510
|
+
startOffset: Optional[int] = Field(None, ge=0)
|
|
511
|
+
endOffset: Optional[int] = Field(None, ge=0)
|
|
509
512
|
|
|
510
513
|
|
|
511
514
|
class ChoicesValue(BaseModel):
|
|
@@ -912,6 +915,25 @@ class RatingTag(ControlTag):
|
|
|
912
915
|
_value_class: Type[RatingValue] = RatingValue
|
|
913
916
|
_label_attr_name: str = "rating"
|
|
914
917
|
|
|
918
|
+
def _validate_value_labels(self, value):
|
|
919
|
+
"""Override to handle rating values correctly - ratings are not labels"""
|
|
920
|
+
if self._label_attr_name not in value:
|
|
921
|
+
return False
|
|
922
|
+
|
|
923
|
+
# For ratings, we just check that the rating value exists and is valid
|
|
924
|
+
# The actual validation is done by the RatingValue model
|
|
925
|
+
rating_value = value.get(self._label_attr_name)
|
|
926
|
+
if rating_value is None:
|
|
927
|
+
return False
|
|
928
|
+
|
|
929
|
+
# Check if rating is within valid range (0 to maxRating)
|
|
930
|
+
max_rating = int(self.attr.get('maxRating', 5))
|
|
931
|
+
try:
|
|
932
|
+
rating_int = int(rating_value)
|
|
933
|
+
return 0 <= rating_int <= max_rating
|
|
934
|
+
except (ValueError, TypeError):
|
|
935
|
+
return False
|
|
936
|
+
|
|
915
937
|
def to_json_schema(self):
|
|
916
938
|
"""
|
|
917
939
|
Converts the current RatingTag instance into a JSON Schema.
|
|
@@ -953,6 +975,24 @@ class TaxonomyTag(ControlTag):
|
|
|
953
975
|
_value_class: Type[TaxonomyValue] = TaxonomyValue
|
|
954
976
|
_label_attr_name: str = "taxonomy"
|
|
955
977
|
|
|
978
|
+
def _validate_value_labels(self, value):
|
|
979
|
+
"""Validate taxonomy labels by flattening selected paths before subset check.
|
|
980
|
+
|
|
981
|
+
Expected value format:
|
|
982
|
+
{ "taxonomy": [["A"], ["A", "B"], ...] }
|
|
983
|
+
"""
|
|
984
|
+
paths = value.get("taxonomy")
|
|
985
|
+
if paths is None:
|
|
986
|
+
return False
|
|
987
|
+
if not isinstance(paths, list):
|
|
988
|
+
return False
|
|
989
|
+
flat_labels: List[str] = []
|
|
990
|
+
for path in paths:
|
|
991
|
+
if not isinstance(path, list):
|
|
992
|
+
return False
|
|
993
|
+
flat_labels.extend(path)
|
|
994
|
+
return self._validate_labels(flat_labels)
|
|
995
|
+
|
|
956
996
|
def to_json_schema(self):
|
|
957
997
|
"""
|
|
958
998
|
Converts the current TaxonomyTag instance into a JSON Schema.
|