label-studio-sdk 1.0.20__py3-none-any.whl → 2.0.1__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 +345 -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 +32 -24
- label_studio_sdk/billing/__init__.py +2 -0
- label_studio_sdk/billing/client.py +112 -0
- 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 +636 -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 +276 -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/associated_project.py +30 -0
- 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/billing_checks.py +39 -0
- label_studio_sdk/types/billing_flags.py +44 -0
- label_studio_sdk/types/billing_info_response.py +22 -0
- 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/count_limit.py +22 -0
- 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/{key_indicators_item_additional_kpis_item.py → lse_organization_member_list.py} +12 -7
- 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/lse_user_organization_member_list.py +48 -0
- 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/paginated_lse_organization_member_list_list.py +23 -0
- 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/prompts_status_enum.py +16 -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/role9e7enum.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.1.dist-info}/METADATA +73 -25
- label_studio_sdk-2.0.1.dist-info/RECORD +435 -0
- {label_studio_sdk-1.0.20.dist-info → label_studio_sdk-2.0.1.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.1.dist-info}/LICENSE +0 -0
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
import typing
|
|
4
4
|
from ...core.client_wrapper import SyncClientWrapper
|
|
5
5
|
from ...core.request_options import RequestOptions
|
|
6
|
-
from
|
|
6
|
+
from ...types.workspace_member_list import WorkspaceMemberList
|
|
7
7
|
from ...core.jsonable_encoder import jsonable_encoder
|
|
8
|
-
from ...core.
|
|
8
|
+
from ...core.unchecked_base_model import construct_type
|
|
9
9
|
from json.decoder import JSONDecodeError
|
|
10
10
|
from ...core.api_error import ApiError
|
|
11
|
-
from
|
|
11
|
+
from ...types.workspace_member_create import WorkspaceMemberCreate
|
|
12
12
|
from ...core.client_wrapper import AsyncClientWrapper
|
|
13
13
|
|
|
14
14
|
# this is used as the default value for optional parameters
|
|
@@ -21,23 +21,21 @@ class MembersClient:
|
|
|
21
21
|
|
|
22
22
|
def list(
|
|
23
23
|
self, id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
24
|
-
) -> typing.List[
|
|
24
|
+
) -> typing.List[WorkspaceMemberList]:
|
|
25
25
|
"""
|
|
26
|
-
|
|
27
|
-
List all workspace memberships for a specific workspace. You will need to provide the workspace ID. You can find this using [List workspaces](list).
|
|
26
|
+
Get a list of all members in a specific workspace.
|
|
28
27
|
|
|
29
28
|
Parameters
|
|
30
29
|
----------
|
|
31
30
|
id : int
|
|
32
|
-
Workspace ID
|
|
33
31
|
|
|
34
32
|
request_options : typing.Optional[RequestOptions]
|
|
35
33
|
Request-specific configuration.
|
|
36
34
|
|
|
37
35
|
Returns
|
|
38
36
|
-------
|
|
39
|
-
typing.List[
|
|
40
|
-
|
|
37
|
+
typing.List[WorkspaceMemberList]
|
|
38
|
+
A list of workspace memberships
|
|
41
39
|
|
|
42
40
|
Examples
|
|
43
41
|
--------
|
|
@@ -51,16 +49,16 @@ class MembersClient:
|
|
|
51
49
|
)
|
|
52
50
|
"""
|
|
53
51
|
_response = self._client_wrapper.httpx_client.request(
|
|
54
|
-
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
52
|
+
f"api/workspaces/{jsonable_encoder(id)}/memberships/",
|
|
55
53
|
method="GET",
|
|
56
54
|
request_options=request_options,
|
|
57
55
|
)
|
|
58
56
|
try:
|
|
59
57
|
if 200 <= _response.status_code < 300:
|
|
60
58
|
return typing.cast(
|
|
61
|
-
typing.List[
|
|
62
|
-
|
|
63
|
-
type_=typing.List[
|
|
59
|
+
typing.List[WorkspaceMemberList],
|
|
60
|
+
construct_type(
|
|
61
|
+
type_=typing.List[WorkspaceMemberList], # type: ignore
|
|
64
62
|
object_=_response.json(),
|
|
65
63
|
),
|
|
66
64
|
)
|
|
@@ -70,26 +68,32 @@ class MembersClient:
|
|
|
70
68
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
71
69
|
|
|
72
70
|
def create(
|
|
73
|
-
self,
|
|
74
|
-
|
|
71
|
+
self,
|
|
72
|
+
id: int,
|
|
73
|
+
*,
|
|
74
|
+
user: int,
|
|
75
|
+
workspace: typing.Optional[int] = OMIT,
|
|
76
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
77
|
+
) -> WorkspaceMemberCreate:
|
|
75
78
|
"""
|
|
76
|
-
|
|
77
|
-
Create a new workspace membership. You will need to provide the workspace ID. You can find this using [List workspaces](list).
|
|
79
|
+
Add a new workspace member by user ID.
|
|
78
80
|
|
|
79
81
|
Parameters
|
|
80
82
|
----------
|
|
81
83
|
id : int
|
|
82
|
-
Workspace ID
|
|
83
84
|
|
|
84
|
-
user :
|
|
85
|
-
User ID
|
|
85
|
+
user : int
|
|
86
|
+
User ID
|
|
87
|
+
|
|
88
|
+
workspace : typing.Optional[int]
|
|
89
|
+
Workspace ID
|
|
86
90
|
|
|
87
91
|
request_options : typing.Optional[RequestOptions]
|
|
88
92
|
Request-specific configuration.
|
|
89
93
|
|
|
90
94
|
Returns
|
|
91
95
|
-------
|
|
92
|
-
|
|
96
|
+
WorkspaceMemberCreate
|
|
93
97
|
|
|
94
98
|
|
|
95
99
|
Examples
|
|
@@ -101,13 +105,15 @@ class MembersClient:
|
|
|
101
105
|
)
|
|
102
106
|
client.workspaces.members.create(
|
|
103
107
|
id=1,
|
|
108
|
+
user=1,
|
|
104
109
|
)
|
|
105
110
|
"""
|
|
106
111
|
_response = self._client_wrapper.httpx_client.request(
|
|
107
|
-
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
112
|
+
f"api/workspaces/{jsonable_encoder(id)}/memberships/",
|
|
108
113
|
method="POST",
|
|
109
114
|
json={
|
|
110
115
|
"user": user,
|
|
116
|
+
"workspace": workspace,
|
|
111
117
|
},
|
|
112
118
|
headers={
|
|
113
119
|
"content-type": "application/json",
|
|
@@ -118,9 +124,9 @@ class MembersClient:
|
|
|
118
124
|
try:
|
|
119
125
|
if 200 <= _response.status_code < 300:
|
|
120
126
|
return typing.cast(
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
type_=
|
|
127
|
+
WorkspaceMemberCreate,
|
|
128
|
+
construct_type(
|
|
129
|
+
type_=WorkspaceMemberCreate, # type: ignore
|
|
124
130
|
object_=_response.json(),
|
|
125
131
|
),
|
|
126
132
|
)
|
|
@@ -129,20 +135,13 @@ class MembersClient:
|
|
|
129
135
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
130
136
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
131
137
|
|
|
132
|
-
def delete(
|
|
133
|
-
self, id: int, *, user: typing.Optional[int] = OMIT, request_options: typing.Optional[RequestOptions] = None
|
|
134
|
-
) -> None:
|
|
138
|
+
def delete(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> None:
|
|
135
139
|
"""
|
|
136
|
-
|
|
137
|
-
Delete a specific workspace membership. You will need to provide the workspace ID and the user ID. You can find this using [List workspace memberships](list).
|
|
140
|
+
Remove a specific member by ID from a workspace. This endpoint expects an object like `{"user_id": 123}`.
|
|
138
141
|
|
|
139
142
|
Parameters
|
|
140
143
|
----------
|
|
141
144
|
id : int
|
|
142
|
-
Workspace ID
|
|
143
|
-
|
|
144
|
-
user : typing.Optional[int]
|
|
145
|
-
User ID of the workspace member
|
|
146
145
|
|
|
147
146
|
request_options : typing.Optional[RequestOptions]
|
|
148
147
|
Request-specific configuration.
|
|
@@ -163,16 +162,9 @@ class MembersClient:
|
|
|
163
162
|
)
|
|
164
163
|
"""
|
|
165
164
|
_response = self._client_wrapper.httpx_client.request(
|
|
166
|
-
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
165
|
+
f"api/workspaces/{jsonable_encoder(id)}/memberships/",
|
|
167
166
|
method="DELETE",
|
|
168
|
-
json={
|
|
169
|
-
"user": user,
|
|
170
|
-
},
|
|
171
|
-
headers={
|
|
172
|
-
"content-type": "application/json",
|
|
173
|
-
},
|
|
174
167
|
request_options=request_options,
|
|
175
|
-
omit=OMIT,
|
|
176
168
|
)
|
|
177
169
|
try:
|
|
178
170
|
if 200 <= _response.status_code < 300:
|
|
@@ -189,23 +181,21 @@ class AsyncMembersClient:
|
|
|
189
181
|
|
|
190
182
|
async def list(
|
|
191
183
|
self, id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
192
|
-
) -> typing.List[
|
|
184
|
+
) -> typing.List[WorkspaceMemberList]:
|
|
193
185
|
"""
|
|
194
|
-
|
|
195
|
-
List all workspace memberships for a specific workspace. You will need to provide the workspace ID. You can find this using [List workspaces](list).
|
|
186
|
+
Get a list of all members in a specific workspace.
|
|
196
187
|
|
|
197
188
|
Parameters
|
|
198
189
|
----------
|
|
199
190
|
id : int
|
|
200
|
-
Workspace ID
|
|
201
191
|
|
|
202
192
|
request_options : typing.Optional[RequestOptions]
|
|
203
193
|
Request-specific configuration.
|
|
204
194
|
|
|
205
195
|
Returns
|
|
206
196
|
-------
|
|
207
|
-
typing.List[
|
|
208
|
-
|
|
197
|
+
typing.List[WorkspaceMemberList]
|
|
198
|
+
A list of workspace memberships
|
|
209
199
|
|
|
210
200
|
Examples
|
|
211
201
|
--------
|
|
@@ -227,16 +217,16 @@ class AsyncMembersClient:
|
|
|
227
217
|
asyncio.run(main())
|
|
228
218
|
"""
|
|
229
219
|
_response = await self._client_wrapper.httpx_client.request(
|
|
230
|
-
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
220
|
+
f"api/workspaces/{jsonable_encoder(id)}/memberships/",
|
|
231
221
|
method="GET",
|
|
232
222
|
request_options=request_options,
|
|
233
223
|
)
|
|
234
224
|
try:
|
|
235
225
|
if 200 <= _response.status_code < 300:
|
|
236
226
|
return typing.cast(
|
|
237
|
-
typing.List[
|
|
238
|
-
|
|
239
|
-
type_=typing.List[
|
|
227
|
+
typing.List[WorkspaceMemberList],
|
|
228
|
+
construct_type(
|
|
229
|
+
type_=typing.List[WorkspaceMemberList], # type: ignore
|
|
240
230
|
object_=_response.json(),
|
|
241
231
|
),
|
|
242
232
|
)
|
|
@@ -246,26 +236,32 @@ class AsyncMembersClient:
|
|
|
246
236
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
247
237
|
|
|
248
238
|
async def create(
|
|
249
|
-
self,
|
|
250
|
-
|
|
239
|
+
self,
|
|
240
|
+
id: int,
|
|
241
|
+
*,
|
|
242
|
+
user: int,
|
|
243
|
+
workspace: typing.Optional[int] = OMIT,
|
|
244
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
245
|
+
) -> WorkspaceMemberCreate:
|
|
251
246
|
"""
|
|
252
|
-
|
|
253
|
-
Create a new workspace membership. You will need to provide the workspace ID. You can find this using [List workspaces](list).
|
|
247
|
+
Add a new workspace member by user ID.
|
|
254
248
|
|
|
255
249
|
Parameters
|
|
256
250
|
----------
|
|
257
251
|
id : int
|
|
258
|
-
Workspace ID
|
|
259
252
|
|
|
260
|
-
user :
|
|
261
|
-
User ID
|
|
253
|
+
user : int
|
|
254
|
+
User ID
|
|
255
|
+
|
|
256
|
+
workspace : typing.Optional[int]
|
|
257
|
+
Workspace ID
|
|
262
258
|
|
|
263
259
|
request_options : typing.Optional[RequestOptions]
|
|
264
260
|
Request-specific configuration.
|
|
265
261
|
|
|
266
262
|
Returns
|
|
267
263
|
-------
|
|
268
|
-
|
|
264
|
+
WorkspaceMemberCreate
|
|
269
265
|
|
|
270
266
|
|
|
271
267
|
Examples
|
|
@@ -282,16 +278,18 @@ class AsyncMembersClient:
|
|
|
282
278
|
async def main() -> None:
|
|
283
279
|
await client.workspaces.members.create(
|
|
284
280
|
id=1,
|
|
281
|
+
user=1,
|
|
285
282
|
)
|
|
286
283
|
|
|
287
284
|
|
|
288
285
|
asyncio.run(main())
|
|
289
286
|
"""
|
|
290
287
|
_response = await self._client_wrapper.httpx_client.request(
|
|
291
|
-
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
288
|
+
f"api/workspaces/{jsonable_encoder(id)}/memberships/",
|
|
292
289
|
method="POST",
|
|
293
290
|
json={
|
|
294
291
|
"user": user,
|
|
292
|
+
"workspace": workspace,
|
|
295
293
|
},
|
|
296
294
|
headers={
|
|
297
295
|
"content-type": "application/json",
|
|
@@ -302,9 +300,9 @@ class AsyncMembersClient:
|
|
|
302
300
|
try:
|
|
303
301
|
if 200 <= _response.status_code < 300:
|
|
304
302
|
return typing.cast(
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
type_=
|
|
303
|
+
WorkspaceMemberCreate,
|
|
304
|
+
construct_type(
|
|
305
|
+
type_=WorkspaceMemberCreate, # type: ignore
|
|
308
306
|
object_=_response.json(),
|
|
309
307
|
),
|
|
310
308
|
)
|
|
@@ -313,20 +311,13 @@ class AsyncMembersClient:
|
|
|
313
311
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
314
312
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
315
313
|
|
|
316
|
-
async def delete(
|
|
317
|
-
self, id: int, *, user: typing.Optional[int] = OMIT, request_options: typing.Optional[RequestOptions] = None
|
|
318
|
-
) -> None:
|
|
314
|
+
async def delete(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> None:
|
|
319
315
|
"""
|
|
320
|
-
|
|
321
|
-
Delete a specific workspace membership. You will need to provide the workspace ID and the user ID. You can find this using [List workspace memberships](list).
|
|
316
|
+
Remove a specific member by ID from a workspace. This endpoint expects an object like `{"user_id": 123}`.
|
|
322
317
|
|
|
323
318
|
Parameters
|
|
324
319
|
----------
|
|
325
320
|
id : int
|
|
326
|
-
Workspace ID
|
|
327
|
-
|
|
328
|
-
user : typing.Optional[int]
|
|
329
|
-
User ID of the workspace member
|
|
330
321
|
|
|
331
322
|
request_options : typing.Optional[RequestOptions]
|
|
332
323
|
Request-specific configuration.
|
|
@@ -355,16 +346,9 @@ class AsyncMembersClient:
|
|
|
355
346
|
asyncio.run(main())
|
|
356
347
|
"""
|
|
357
348
|
_response = await self._client_wrapper.httpx_client.request(
|
|
358
|
-
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
349
|
+
f"api/workspaces/{jsonable_encoder(id)}/memberships/",
|
|
359
350
|
method="DELETE",
|
|
360
|
-
json={
|
|
361
|
-
"user": user,
|
|
362
|
-
},
|
|
363
|
-
headers={
|
|
364
|
-
"content-type": "application/json",
|
|
365
|
-
},
|
|
366
351
|
request_options=request_options,
|
|
367
|
-
omit=OMIT,
|
|
368
352
|
)
|
|
369
353
|
try:
|
|
370
354
|
if 200 <= _response.status_code < 300:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: label-studio-sdk
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary:
|
|
5
5
|
Requires-Python: >=3.9,<4
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -45,29 +45,6 @@ Description-Content-Type: text/markdown
|
|
|
45
45
|
|
|
46
46
|
# Label Studio Python Library
|
|
47
47
|
|
|
48
|
-
<!-- Note about deprecated version <1 -->
|
|
49
|
-
---
|
|
50
|
-
> :warning: **Note**<br/>
|
|
51
|
-
>
|
|
52
|
-
> The version of `label-studio-sdk<1` is deprecated and no longer supported. We recommend updating to the latest version.
|
|
53
|
-
> If you still want to use the old version, you can install it with `pip install "label-studio-sdk<1"`.
|
|
54
|
-
> OR You can find the branch with the old version by cloning the repository and checking out the branch as follows:
|
|
55
|
-
>
|
|
56
|
-
> ```sh
|
|
57
|
-
> git clone https://github.com/HumanSignal/label-studio-sdk.git
|
|
58
|
-
> cd label-studio-sdk
|
|
59
|
-
> git fetch origin
|
|
60
|
-
> git checkout release/0.0.34
|
|
61
|
-
> ```
|
|
62
|
-
>
|
|
63
|
-
> OR you can change your import statements as follows:
|
|
64
|
-
> ```python
|
|
65
|
-
> from label_studio_sdk import Client
|
|
66
|
-
> from label_studio_sdk.data_manager import Filters, Column, Operator, Type
|
|
67
|
-
> from label_studio_sdk._legacy import Project
|
|
68
|
-
> ```
|
|
69
|
-
---
|
|
70
|
-
|
|
71
48
|
[](https://github.com/fern-api/fern)
|
|
72
49
|
[](https://pypi.python.org/pypi/label-studio-sdk)
|
|
73
50
|
|
|
@@ -100,6 +77,77 @@ ls = LabelStudio(
|
|
|
100
77
|
)
|
|
101
78
|
```
|
|
102
79
|
|
|
80
|
+
# Versions
|
|
81
|
+
|
|
82
|
+
## SDK 2.0.0
|
|
83
|
+
|
|
84
|
+
In August 2025, we released SDK version 2.0.0.
|
|
85
|
+
|
|
86
|
+
This version has a number of documentation and functional improvements over SDK 1.
|
|
87
|
+
|
|
88
|
+
### Enhancements
|
|
89
|
+
|
|
90
|
+
**Enterprise-only**
|
|
91
|
+
|
|
92
|
+
- Added a new `projects.stats.iaa` endpoint to return stats from the inter-annotator agreement matrix.
|
|
93
|
+
- You can now update tasks that have comments.
|
|
94
|
+
- Added support for `sync` to `S3s` (S3 with IAM role) exports.
|
|
95
|
+
|
|
96
|
+
**Enterprise and open source**
|
|
97
|
+
|
|
98
|
+
- Expanded support to include all project settings, many of which were missing in SDK 1. For example, in Enterprise environments you can now configure `assignment_settings`, `review_settings`, `annotator_evaluation`, and many more.
|
|
99
|
+
- Fixed passing the `project` parameter in `actions.list()` (broken in SDK 1).
|
|
100
|
+
- Relaxed request/response validation reduces pydantic errors in SDK 2.
|
|
101
|
+
|
|
102
|
+
### Breaking changes
|
|
103
|
+
|
|
104
|
+
**Enterprise-only**
|
|
105
|
+
|
|
106
|
+
- `comments.create` no longer accepts a `project` argument.
|
|
107
|
+
- In `prompts.indicators`, the `pk` parameter is now `id`.
|
|
108
|
+
- In `prompts.runs` and `prompts.versions`, the `id` parameter is now `prompt_id`.
|
|
109
|
+
- `workspaces.members.list` responses are now objects instead of dictionaries.
|
|
110
|
+
|
|
111
|
+
**Enterprise and open source**
|
|
112
|
+
|
|
113
|
+
- In `projects.exports` calls, the project ID is now passed as `id`, while the export ID is passed as `export_pk`.
|
|
114
|
+
- Predictions returned in task responses are now objects instead of dictionaries.
|
|
115
|
+
|
|
116
|
+
## SDK 1.0+
|
|
117
|
+
|
|
118
|
+
SDK 1 was released in June 2024.
|
|
119
|
+
|
|
120
|
+
If you use the Label Studio SDK 1 package in any automated pipelines, we strongly recommend pinning your SDK version to `<2.0.0` until you can reconcile the breaking changes.
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
## SDK <1
|
|
124
|
+
|
|
125
|
+
The version of `label-studio-sdk<1` is deprecated and no longer supported. We recommend updating to the latest version.
|
|
126
|
+
|
|
127
|
+
<details>
|
|
128
|
+
|
|
129
|
+
<summary> To use SDK <1 </summary>
|
|
130
|
+
|
|
131
|
+
If you still want to use the deprecated version, you can install it with `pip install "label-studio-sdk<1"`.
|
|
132
|
+
|
|
133
|
+
OR You can find the branch with the old version by cloning the repository and checking out the branch as follows:
|
|
134
|
+
|
|
135
|
+
```sh
|
|
136
|
+
git clone https://github.com/HumanSignal/label-studio-sdk.git
|
|
137
|
+
cd label-studio-sdk
|
|
138
|
+
git fetch origin
|
|
139
|
+
git checkout release/0.0.34
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
OR you can change your import statements as follows:
|
|
143
|
+
```python
|
|
144
|
+
from label_studio_sdk import Client
|
|
145
|
+
from label_studio_sdk.data_manager import Filters, Column, Operator, Type
|
|
146
|
+
from label_studio_sdk._legacy import Project
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
</details>
|
|
150
|
+
|
|
103
151
|
# Examples
|
|
104
152
|
|
|
105
153
|
Check more examples [here](https://api.labelstud.io/).
|
|
@@ -111,7 +159,7 @@ from label_studio_sdk.label_interface import LabelInterface
|
|
|
111
159
|
from label_studio_sdk.label_interface.create import labels
|
|
112
160
|
|
|
113
161
|
project = ls.projects.create(
|
|
114
|
-
|
|
162
|
+
title="Project name",
|
|
115
163
|
description="Project description",
|
|
116
164
|
label_config=LabelInterface.create({
|
|
117
165
|
"image": "Image",
|