label-studio-sdk 1.0.17__tar.gz → 1.0.19__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/PKG-INFO +3 -2
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/pyproject.toml +3 -2
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/__init__.py +8 -1
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/label_config.py +1 -1
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/converter.py +57 -25
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/files/client.py +2 -2
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/__init__.py +8 -1
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/client.py +106 -81
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/client.py +2 -2
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/client_ext.py +2 -2
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/__init__.py +8 -1
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/projects_create_response.py +1 -1
- label_studio_sdk-1.0.19/src/label_studio_sdk/projects/types/projects_list_request_filter.py +5 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/projects_update_response.py +1 -1
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/client.py +28 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tokens/client_ext.py +0 -1
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project.py +1 -1
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/LICENSE +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/README.md +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/eval/categorical.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/exceptions.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/io.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/json_schema.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/params.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/etl/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/etl/beam.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/etl/example.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/etl/registry.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/video.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/pager_ext.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/exceptions.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/project.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/schema/label_config_schema.json +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/users.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/utils.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/workspaces.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters_conjunction.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_filter.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_operator.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_id.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_ordering_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_selected_items.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/base_client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/comments/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/comments/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/README.md +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/audio.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/brush.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/brush_to_coco.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/csv.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/csv2.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/yolo.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/funsd.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/coco.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/colors.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/label_config.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/pathtrack.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/yolo.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/keypoints.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/main.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/utils.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/api_error.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/client_wrapper.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/datetime_utils.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/file.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/http_client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/jsonable_encoder.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/pagination.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/pydantic_utilities.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/query_encoder.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/remove_none_from_dict.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/request_options.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/serialization.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/data_manager.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/environment.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/bad_request_error.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/internal_server_error.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/not_found_error.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/unauthorized_error.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/types/azure_create_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/types/azure_update_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/types/local_create_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/types/local_update_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/types/redis_create_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/types/redis_update_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/types/s3create_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/types/s3update_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3s/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3s/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/files/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/types/azure_create_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/types/azure_update_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/types/local_create_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/types/local_update_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/types/redis_create_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/types/redis_update_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/types/s3create_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/types/s3update_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3s/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3s/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/jwt_settings/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/jwt_settings/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/base.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/control_tags.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/create.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/data_examples.json +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/interface.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/label_tags.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/object_tags.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/objects.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/region.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_create_request_auth_method.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_create_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_create_response_auth_method.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_update_request_auth_method.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_update_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_update_response_auth_method.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/model_providers/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/model_providers/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/predictions/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/predictions/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/client_ext.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/types/exports_convert_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/pauses/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/pauses/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/projects_import_tasks_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/projects_list_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/indicators/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/indicators/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/runs/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/runs/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/runs/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/runs/types/runs_list_request_project_subset.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/types/prompts_batch_failed_predictions_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/types/prompts_batch_predictions_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/versions/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/versions/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/py.typed +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/client_ext.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/types/tasks_list_request_fields.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/types/tasks_list_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tokens/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tokens/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/access_token_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotation.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotation_completed_by.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotation_filter_options.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotation_last_action.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotations_dm_field.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotations_dm_field_last_action.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/api_token_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/azure_blob_export_storage.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/azure_blob_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/azure_blob_import_storage.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/azure_blob_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/base_task.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/base_task_file_upload.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/base_task_updated_by.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/base_user.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/comment.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/comment_created_by.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/converted_format.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/converted_format_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer_comment_authors_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer_predictions_item_model_run.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export_format.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export_snapshot.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export_snapshot_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/file_upload.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/filter.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/filter_group.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/gcs_export_storage.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/gcs_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/gcs_import_storage.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/gcs_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_cost_estimate.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_created_by.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_organization.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_project_subset.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/jwt_settings_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicator_value.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicators.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicators_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicators_item_additional_kpis_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicators_item_extra_kpis_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/local_files_export_storage.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/local_files_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/local_files_import_storage.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/local_files_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/ml_backend.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/ml_backend_auth_method.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/ml_backend_state.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_budget_reset_period.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_created_by.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_organization.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_provider.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_scope.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/pause.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/pause_paused_by.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prediction.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_import.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_import_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_label_config.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_sampling.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_skip_queue.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_associated_projects_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_associated_projects_item_id.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_created_by.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_organization.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_version.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_version_created_by.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_version_organization.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_version_provider.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/redis_export_storage.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/redis_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/redis_import_storage.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/redis_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/refined_prompt_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/refined_prompt_response_refinement_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/rotate_token_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3export_storage.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3export_storage_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3import_storage.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3import_storage_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3s_export_storage.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3s_import_storage.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3s_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/serialization_option.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/serialization_options.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/task.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/task_annotators_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/task_comment_authors_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/task_filter_options.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/user_simple.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/view.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/webhook.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/webhook_actions_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/webhook_serializer_for_update.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/webhook_serializer_for_update_actions_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/workspace.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/types/users_get_token_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/types/users_reset_token_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/version.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/types/versions_get_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/types/versions_get_response_edition.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_filters.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_filters_conjunction.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_filter.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_operator.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_ordering_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_filters.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_filters_conjunction.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_filter.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_operator.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_ordering_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/webhooks/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/webhooks/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/webhooks/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/webhooks/types/webhooks_update_request_actions_item.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/client.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/types/__init__.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/types/members_create_response.py +0 -0
- {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/types/members_list_response_item.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: label-studio-sdk
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.19
|
|
4
4
|
Summary:
|
|
5
5
|
Requires-Python: >=3.9,<4
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -19,7 +19,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.8
|
|
20
20
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
21
|
Classifier: Typing :: Typed
|
|
22
|
-
Requires-Dist: Pillow (>=
|
|
22
|
+
Requires-Dist: Pillow (>=11.3.0)
|
|
23
23
|
Requires-Dist: appdirs (>=1.4.3)
|
|
24
24
|
Requires-Dist: datamodel-code-generator (==0.26.1)
|
|
25
25
|
Requires-Dist: httpx (>=0.21.2)
|
|
@@ -38,6 +38,7 @@ Requires-Dist: requests (>=2.22.0)
|
|
|
38
38
|
Requires-Dist: requests-mock (==1.12.1)
|
|
39
39
|
Requires-Dist: typing_extensions (>=4.0.0)
|
|
40
40
|
Requires-Dist: ujson (>=5.8.0)
|
|
41
|
+
Requires-Dist: urllib3 (>=2.5.0)
|
|
41
42
|
Requires-Dist: xmljson (==0.2.1)
|
|
42
43
|
Project-URL: Repository, https://github.com/HumanSignal/label-studio-sdk
|
|
43
44
|
Description-Content-Type: text/markdown
|
|
@@ -3,7 +3,7 @@ name = "label-studio-sdk"
|
|
|
3
3
|
|
|
4
4
|
[tool.poetry]
|
|
5
5
|
name = "label-studio-sdk"
|
|
6
|
-
version = "1.0.
|
|
6
|
+
version = "1.0.19"
|
|
7
7
|
description = ""
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
authors = []
|
|
@@ -35,7 +35,7 @@ Repository = 'https://github.com/HumanSignal/label-studio-sdk'
|
|
|
35
35
|
|
|
36
36
|
[tool.poetry.dependencies]
|
|
37
37
|
python = ">=3.9,<4"
|
|
38
|
-
Pillow = ">=
|
|
38
|
+
Pillow = ">=11.3.0"
|
|
39
39
|
appdirs = ">=1.4.3"
|
|
40
40
|
datamodel-code-generator = "0.26.1"
|
|
41
41
|
httpx = ">=0.21.2"
|
|
@@ -54,6 +54,7 @@ requests = ">=2.22.0"
|
|
|
54
54
|
requests-mock = "1.12.1"
|
|
55
55
|
typing_extensions = ">= 4.0.0"
|
|
56
56
|
ujson = ">=5.8.0"
|
|
57
|
+
urllib3 = ">=2.5.0"
|
|
57
58
|
xmljson = "0.2.1"
|
|
58
59
|
|
|
59
60
|
[tool.poetry.dev-dependencies]
|
|
@@ -159,7 +159,13 @@ from .ml import (
|
|
|
159
159
|
MlUpdateResponse,
|
|
160
160
|
MlUpdateResponseAuthMethod,
|
|
161
161
|
)
|
|
162
|
-
from .projects import
|
|
162
|
+
from .projects import (
|
|
163
|
+
ProjectsCreateResponse,
|
|
164
|
+
ProjectsImportTasksResponse,
|
|
165
|
+
ProjectsListRequestFilter,
|
|
166
|
+
ProjectsListResponse,
|
|
167
|
+
ProjectsUpdateResponse,
|
|
168
|
+
)
|
|
163
169
|
from .prompts import (
|
|
164
170
|
PromptsBatchFailedPredictionsRequestFailedPredictionsItem,
|
|
165
171
|
PromptsBatchFailedPredictionsResponse,
|
|
@@ -293,6 +299,7 @@ __all__ = [
|
|
|
293
299
|
"ProjectSkipQueue",
|
|
294
300
|
"ProjectsCreateResponse",
|
|
295
301
|
"ProjectsImportTasksResponse",
|
|
302
|
+
"ProjectsListRequestFilter",
|
|
296
303
|
"ProjectsListResponse",
|
|
297
304
|
"ProjectsUpdateResponse",
|
|
298
305
|
"Prompt",
|
|
@@ -134,7 +134,7 @@ def has_variable(actual_value):
|
|
|
134
134
|
:param actual_value: value to check
|
|
135
135
|
:return: True if value has variable
|
|
136
136
|
"""
|
|
137
|
-
expression = "^\$[A-Za-z_]+$"
|
|
137
|
+
expression = r"^\$[A-Za-z_]+$"
|
|
138
138
|
pattern = re.compile(expression)
|
|
139
139
|
full_match = pattern.fullmatch(actual_value)
|
|
140
140
|
if full_match:
|
{label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/converter.py
RENAMED
|
@@ -481,6 +481,9 @@ class Converter(object):
|
|
|
481
481
|
then the from_name "my_output_tag_0" should match it, and we should return "my_output_tag_{{idx}}".
|
|
482
482
|
"""
|
|
483
483
|
|
|
484
|
+
best_match = None
|
|
485
|
+
best_match_len = 0
|
|
486
|
+
|
|
484
487
|
for tag_name, tag_info in self._schema.items():
|
|
485
488
|
if tag_name == from_name:
|
|
486
489
|
return tag_name
|
|
@@ -492,10 +495,13 @@ class Converter(object):
|
|
|
492
495
|
for variable, regex in tag_info["regex"].items():
|
|
493
496
|
tag_name_pattern = tag_name_pattern.replace(variable, regex)
|
|
494
497
|
|
|
495
|
-
|
|
496
|
-
|
|
498
|
+
# In some cases there are tags with same prefix - we need to find the best or longest matching pattern
|
|
499
|
+
if r := re.compile(tag_name_pattern).match(from_name):
|
|
500
|
+
if match_len := len(tag_name_pattern) > best_match_len:
|
|
501
|
+
best_match = tag_name
|
|
502
|
+
best_match_len = len(tag_name_pattern)
|
|
497
503
|
|
|
498
|
-
return None
|
|
504
|
+
return best_match if best_match else None
|
|
499
505
|
|
|
500
506
|
def annotation_result_from_task(self, task):
|
|
501
507
|
has_annotations = "completions" in task or "annotations" in task
|
|
@@ -576,13 +582,26 @@ class Converter(object):
|
|
|
576
582
|
self._check_format(Format.JSON)
|
|
577
583
|
ensure_dir(output_dir)
|
|
578
584
|
output_file = os.path.join(output_dir, "result.json")
|
|
579
|
-
|
|
585
|
+
|
|
580
586
|
if is_dir:
|
|
581
|
-
|
|
582
|
-
with io.open(json_file, encoding="utf8") as f:
|
|
583
|
-
records.append(json.load(f))
|
|
587
|
+
# Memory-optimized: stream JSON writing instead of accumulating in memory
|
|
584
588
|
with io.open(output_file, mode="w", encoding="utf8") as fout:
|
|
585
|
-
|
|
589
|
+
fout.write("[\n")
|
|
590
|
+
first_record = True
|
|
591
|
+
|
|
592
|
+
for json_file in glob(os.path.join(input_data, "*.json")):
|
|
593
|
+
with io.open(json_file, encoding="utf8") as f:
|
|
594
|
+
record = json.load(f)
|
|
595
|
+
|
|
596
|
+
if not first_record:
|
|
597
|
+
fout.write(",\n")
|
|
598
|
+
json.dump(record, fout, indent=2, ensure_ascii=False)
|
|
599
|
+
first_record = False
|
|
600
|
+
|
|
601
|
+
# Free memory immediately
|
|
602
|
+
del record
|
|
603
|
+
|
|
604
|
+
fout.write("\n]")
|
|
586
605
|
else:
|
|
587
606
|
copy2(input_data, output_file)
|
|
588
607
|
|
|
@@ -590,26 +609,39 @@ class Converter(object):
|
|
|
590
609
|
self._check_format(Format.JSON_MIN)
|
|
591
610
|
ensure_dir(output_dir)
|
|
592
611
|
output_file = os.path.join(output_dir, "result.json")
|
|
593
|
-
records = []
|
|
594
612
|
item_iterator = self.iter_from_dir if is_dir else self.iter_from_json_file
|
|
595
613
|
|
|
596
|
-
for item in item_iterator(input_data):
|
|
597
|
-
record = deepcopy(item["input"])
|
|
598
|
-
if item.get("id") is not None:
|
|
599
|
-
record["id"] = item["id"]
|
|
600
|
-
for name, value in item["output"].items():
|
|
601
|
-
record[name] = prettify_result(value)
|
|
602
|
-
record["annotator"] = get_annotator(item, int_id=True)
|
|
603
|
-
record["annotation_id"] = item["annotation_id"]
|
|
604
|
-
record["created_at"] = item["created_at"]
|
|
605
|
-
record["updated_at"] = item["updated_at"]
|
|
606
|
-
record["lead_time"] = item["lead_time"]
|
|
607
|
-
if "agreement" in item:
|
|
608
|
-
record["agreement"] = item["agreement"]
|
|
609
|
-
records.append(record)
|
|
610
|
-
|
|
611
614
|
with io.open(output_file, mode="w", encoding="utf8") as fout:
|
|
612
|
-
|
|
615
|
+
fout.write("[\n")
|
|
616
|
+
first_record = True
|
|
617
|
+
|
|
618
|
+
for item in item_iterator(input_data):
|
|
619
|
+
# SAFE memory optimization: use json serialization/deserialization
|
|
620
|
+
# This avoids deepcopy but ensures complete isolation of objects
|
|
621
|
+
record = json.loads(json.dumps(item["input"]))
|
|
622
|
+
|
|
623
|
+
if item.get("id") is not None:
|
|
624
|
+
record["id"] = item["id"]
|
|
625
|
+
for name, value in item["output"].items():
|
|
626
|
+
record[name] = prettify_result(value)
|
|
627
|
+
record["annotator"] = get_annotator(item, int_id=True)
|
|
628
|
+
record["annotation_id"] = item["annotation_id"]
|
|
629
|
+
record["created_at"] = item["created_at"]
|
|
630
|
+
record["updated_at"] = item["updated_at"]
|
|
631
|
+
record["lead_time"] = item["lead_time"]
|
|
632
|
+
if "agreement" in item:
|
|
633
|
+
record["agreement"] = item["agreement"]
|
|
634
|
+
|
|
635
|
+
# Write record to file immediately
|
|
636
|
+
if not first_record:
|
|
637
|
+
fout.write(",\n")
|
|
638
|
+
json.dump(record, fout, indent=2, ensure_ascii=False)
|
|
639
|
+
first_record = False
|
|
640
|
+
|
|
641
|
+
# Explicitly delete record to free memory
|
|
642
|
+
del record
|
|
643
|
+
|
|
644
|
+
fout.write("\n]")
|
|
613
645
|
|
|
614
646
|
def convert_to_csv(self, input_data, output_dir, is_dir=True, **kwargs):
|
|
615
647
|
self._check_format(Format.CSV)
|
|
@@ -119,7 +119,7 @@ class FilesClient:
|
|
|
119
119
|
|
|
120
120
|
You will need to include the file data in the request body. For example:
|
|
121
121
|
```bash
|
|
122
|
-
curl -H 'Authorization: Token abc123'
|
|
122
|
+
curl -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/import/file-upload/245' -F 'file=@path/to/my_file.csv'
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
Parameters
|
|
@@ -445,7 +445,7 @@ class AsyncFilesClient:
|
|
|
445
445
|
|
|
446
446
|
You will need to include the file data in the request body. For example:
|
|
447
447
|
```bash
|
|
448
|
-
curl -H 'Authorization: Token abc123'
|
|
448
|
+
curl -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/import/file-upload/245' -F 'file=@path/to/my_file.csv'
|
|
449
449
|
```
|
|
450
450
|
|
|
451
451
|
Parameters
|
{label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/__init__.py
RENAMED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .types import
|
|
3
|
+
from .types import (
|
|
4
|
+
ProjectsCreateResponse,
|
|
5
|
+
ProjectsImportTasksResponse,
|
|
6
|
+
ProjectsListRequestFilter,
|
|
7
|
+
ProjectsListResponse,
|
|
8
|
+
ProjectsUpdateResponse,
|
|
9
|
+
)
|
|
4
10
|
from . import exports, pauses
|
|
5
11
|
from .exports import ExportsConvertResponse, ExportsListFormatsResponseItem
|
|
6
12
|
|
|
@@ -9,6 +15,7 @@ __all__ = [
|
|
|
9
15
|
"ExportsListFormatsResponseItem",
|
|
10
16
|
"ProjectsCreateResponse",
|
|
11
17
|
"ProjectsImportTasksResponse",
|
|
18
|
+
"ProjectsListRequestFilter",
|
|
12
19
|
"ProjectsListResponse",
|
|
13
20
|
"ProjectsUpdateResponse",
|
|
14
21
|
"exports",
|
|
@@ -4,6 +4,7 @@ import typing
|
|
|
4
4
|
from ..core.client_wrapper import SyncClientWrapper
|
|
5
5
|
from .pauses.client import PausesClient
|
|
6
6
|
from .exports.client import ExportsClient
|
|
7
|
+
from .types.projects_list_request_filter import ProjectsListRequestFilter
|
|
7
8
|
from ..core.request_options import RequestOptions
|
|
8
9
|
from ..core.pagination import SyncPager
|
|
9
10
|
from ..types.project import Project
|
|
@@ -41,6 +42,8 @@ class ProjectsClient:
|
|
|
41
42
|
page: typing.Optional[int] = None,
|
|
42
43
|
page_size: typing.Optional[int] = None,
|
|
43
44
|
workspaces: typing.Optional[int] = None,
|
|
45
|
+
include: typing.Optional[str] = None,
|
|
46
|
+
filter: typing.Optional[ProjectsListRequestFilter] = None,
|
|
44
47
|
request_options: typing.Optional[RequestOptions] = None,
|
|
45
48
|
) -> SyncPager[Project]:
|
|
46
49
|
"""
|
|
@@ -75,6 +78,12 @@ class ProjectsClient:
|
|
|
75
78
|
workspaces : typing.Optional[int]
|
|
76
79
|
workspaces
|
|
77
80
|
|
|
81
|
+
include : typing.Optional[str]
|
|
82
|
+
Comma-separated list of count fields to include in the response to optimize performance. Available fields: task_number, finished_task_number, total_predictions_number, total_annotations_number, num_tasks_with_annotations, useful_annotation_number, ground_truth_number, skipped_annotations_number. If not specified, all count fields are included.
|
|
83
|
+
|
|
84
|
+
filter : typing.Optional[ProjectsListRequestFilter]
|
|
85
|
+
Filter projects by pinned status. Use 'pinned_only' to return only pinned projects, 'exclude_pinned' to return only non-pinned projects, or 'all' to return all projects.
|
|
86
|
+
|
|
78
87
|
request_options : typing.Optional[RequestOptions]
|
|
79
88
|
Request-specific configuration.
|
|
80
89
|
|
|
@@ -90,7 +99,9 @@ class ProjectsClient:
|
|
|
90
99
|
client = LabelStudio(
|
|
91
100
|
api_key="YOUR_API_KEY",
|
|
92
101
|
)
|
|
93
|
-
response = client.projects.list(
|
|
102
|
+
response = client.projects.list(
|
|
103
|
+
include="task_number,total_annotations_number,num_tasks_with_annotations",
|
|
104
|
+
)
|
|
94
105
|
for item in response:
|
|
95
106
|
yield item
|
|
96
107
|
# alternatively, you can paginate page-by-page
|
|
@@ -108,6 +119,8 @@ class ProjectsClient:
|
|
|
108
119
|
"page": page,
|
|
109
120
|
"page_size": page_size,
|
|
110
121
|
"workspaces": workspaces,
|
|
122
|
+
"include": include,
|
|
123
|
+
"filter": filter,
|
|
111
124
|
},
|
|
112
125
|
request_options=request_options,
|
|
113
126
|
)
|
|
@@ -128,6 +141,8 @@ class ProjectsClient:
|
|
|
128
141
|
page=page + 1,
|
|
129
142
|
page_size=page_size,
|
|
130
143
|
workspaces=workspaces,
|
|
144
|
+
include=include,
|
|
145
|
+
filter=filter,
|
|
131
146
|
request_options=request_options,
|
|
132
147
|
)
|
|
133
148
|
_items = _parsed_response.results
|
|
@@ -207,7 +222,8 @@ class ProjectsClient:
|
|
|
207
222
|
Project color in HEX format
|
|
208
223
|
|
|
209
224
|
control_weights : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
210
|
-
Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}
|
|
225
|
+
Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}}
|
|
226
|
+
|
|
211
227
|
|
|
212
228
|
workspace : typing.Optional[int]
|
|
213
229
|
Workspace ID
|
|
@@ -440,7 +456,8 @@ class ProjectsClient:
|
|
|
440
456
|
Project color in HEX format
|
|
441
457
|
|
|
442
458
|
control_weights : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
443
|
-
Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}
|
|
459
|
+
Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}}
|
|
460
|
+
|
|
444
461
|
|
|
445
462
|
workspace : typing.Optional[int]
|
|
446
463
|
Workspace ID
|
|
@@ -518,84 +535,80 @@ class ProjectsClient:
|
|
|
518
535
|
request_options: typing.Optional[RequestOptions] = None,
|
|
519
536
|
) -> ProjectsImportTasksResponse:
|
|
520
537
|
"""
|
|
521
|
-
|
|
538
|
+
|
|
522
539
|
Use this API endpoint to import labeling tasks in bulk. Note that each POST request is limited at 250K tasks and 200 MB.
|
|
523
|
-
The project ID can be found in the URL when viewing the project in Label Studio, or you can retrieve all project IDs using [List all projects](../projects/list).
|
|
524
|
-
|
|
540
|
+
The project ID can be found in the URL when viewing the project in Label Studio, or you can retrieve all project IDs using [List all projects](../projects/list).
|
|
541
|
+
|
|
525
542
|
<Note>
|
|
526
|
-
Imported data is verified against a project *label_config* and must include all variables that were used in the *label_config*.
|
|
527
|
-
|
|
543
|
+
Imported data is verified against a project *label_config* and must include all variables that were used in the *label_config*.
|
|
544
|
+
|
|
528
545
|
For example, if the label configuration has a *$text* variable, then each item in a data object must include a `text` field.
|
|
529
546
|
</Note>
|
|
530
|
-
|
|
547
|
+
|
|
531
548
|
There are three possible ways to import tasks with this endpoint:
|
|
532
|
-
|
|
533
|
-
#### 1
|
|
549
|
+
|
|
550
|
+
#### 1. **POST with data**
|
|
534
551
|
Send JSON tasks as POST data. Only JSON is supported for POSTing files directly.
|
|
535
|
-
|
|
552
|
+
|
|
536
553
|
Update this example to specify your authorization token and Label Studio instance host, then run the following from
|
|
537
554
|
the command line:
|
|
538
|
-
|
|
555
|
+
|
|
539
556
|
```bash
|
|
540
|
-
curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123'
|
|
541
|
-
-X POST 'https://localhost:8080/api/projects/1/import' --data '[{"text": "Some text 1"}, {"text": "Some text 2"}]'
|
|
557
|
+
curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/projects/1/import' --data '[{"text": "Some text 1"}, {"text": "Some text 2"}]'
|
|
542
558
|
```
|
|
543
|
-
|
|
544
|
-
#### 2
|
|
559
|
+
|
|
560
|
+
#### 2. **POST with files**
|
|
545
561
|
Send tasks as files. You can attach multiple files with different names.
|
|
546
|
-
|
|
562
|
+
|
|
547
563
|
- **JSON**: text files in JavaScript object notation format
|
|
548
564
|
- **CSV**: text files with tables in Comma Separated Values format
|
|
549
565
|
- **TSV**: text files with tables in Tab Separated Value format
|
|
550
566
|
- **TXT**: simple text files are similar to CSV with one column and no header, supported for projects with one source only
|
|
551
|
-
|
|
567
|
+
|
|
552
568
|
Update this example to specify your authorization token, Label Studio instance host, and file name and path,
|
|
553
569
|
then run the following from the command line:
|
|
554
|
-
|
|
570
|
+
|
|
555
571
|
```bash
|
|
556
|
-
curl -H 'Authorization: Token abc123'
|
|
557
|
-
-X POST 'https://localhost:8080/api/projects/1/import' -F ‘file=@path/to/my_file.csv’
|
|
572
|
+
curl -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/projects/1/import' -F 'file=@path/to/my_file.csv'
|
|
558
573
|
```
|
|
559
|
-
|
|
560
|
-
#### 3
|
|
574
|
+
|
|
575
|
+
#### 3. **POST with URL**
|
|
561
576
|
You can also provide a URL to a file with labeling tasks. Supported file formats are the same as in option 2.
|
|
562
|
-
|
|
577
|
+
|
|
563
578
|
```bash
|
|
564
|
-
curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123'
|
|
565
|
-
-X POST 'https://localhost:8080/api/projects/1/import' \
|
|
566
|
-
--data '[{"url": "http://example.com/test1.csv"}, {"url": "http://example.com/test2.csv"}]'
|
|
579
|
+
curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/projects/1/import' --data '[{"url": "http://example.com/test1.csv"}, {"url": "http://example.com/test2.csv"}]'
|
|
567
580
|
```
|
|
568
|
-
|
|
581
|
+
|
|
569
582
|
<br>
|
|
570
|
-
|
|
583
|
+
|
|
571
584
|
Parameters
|
|
572
585
|
----------
|
|
573
586
|
id : int
|
|
574
587
|
A unique integer value identifying this project.
|
|
575
|
-
|
|
588
|
+
|
|
576
589
|
request : typing.Sequence[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
577
|
-
|
|
590
|
+
|
|
578
591
|
commit_to_project : typing.Optional[bool]
|
|
579
592
|
Set to "true" to immediately commit tasks to the project.
|
|
580
|
-
|
|
593
|
+
|
|
581
594
|
return_task_ids : typing.Optional[bool]
|
|
582
595
|
Set to "true" to return task IDs in the response.
|
|
583
|
-
|
|
596
|
+
|
|
584
597
|
preannotated_from_fields : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
585
598
|
List of fields to preannotate from the task data. For example, if you provide a list of `{"text": "text", "prediction": "label"}` items in the request, the system will create a task with the `text` field and a prediction with the `label` field when `preannoted_from_fields=["prediction"]`.
|
|
586
|
-
|
|
599
|
+
|
|
587
600
|
request_options : typing.Optional[RequestOptions]
|
|
588
601
|
Request-specific configuration.
|
|
589
|
-
|
|
602
|
+
|
|
590
603
|
Returns
|
|
591
604
|
-------
|
|
592
605
|
ProjectsImportTasksResponse
|
|
593
606
|
Tasks successfully imported
|
|
594
|
-
|
|
607
|
+
|
|
595
608
|
Examples
|
|
596
609
|
--------
|
|
597
610
|
from label_studio_sdk import LabelStudio
|
|
598
|
-
|
|
611
|
+
|
|
599
612
|
client = LabelStudio(
|
|
600
613
|
api_key="YOUR_API_KEY",
|
|
601
614
|
)
|
|
@@ -716,6 +729,8 @@ class AsyncProjectsClient:
|
|
|
716
729
|
page: typing.Optional[int] = None,
|
|
717
730
|
page_size: typing.Optional[int] = None,
|
|
718
731
|
workspaces: typing.Optional[int] = None,
|
|
732
|
+
include: typing.Optional[str] = None,
|
|
733
|
+
filter: typing.Optional[ProjectsListRequestFilter] = None,
|
|
719
734
|
request_options: typing.Optional[RequestOptions] = None,
|
|
720
735
|
) -> AsyncPager[Project]:
|
|
721
736
|
"""
|
|
@@ -750,6 +765,12 @@ class AsyncProjectsClient:
|
|
|
750
765
|
workspaces : typing.Optional[int]
|
|
751
766
|
workspaces
|
|
752
767
|
|
|
768
|
+
include : typing.Optional[str]
|
|
769
|
+
Comma-separated list of count fields to include in the response to optimize performance. Available fields: task_number, finished_task_number, total_predictions_number, total_annotations_number, num_tasks_with_annotations, useful_annotation_number, ground_truth_number, skipped_annotations_number. If not specified, all count fields are included.
|
|
770
|
+
|
|
771
|
+
filter : typing.Optional[ProjectsListRequestFilter]
|
|
772
|
+
Filter projects by pinned status. Use 'pinned_only' to return only pinned projects, 'exclude_pinned' to return only non-pinned projects, or 'all' to return all projects.
|
|
773
|
+
|
|
753
774
|
request_options : typing.Optional[RequestOptions]
|
|
754
775
|
Request-specific configuration.
|
|
755
776
|
|
|
@@ -770,7 +791,9 @@ class AsyncProjectsClient:
|
|
|
770
791
|
|
|
771
792
|
|
|
772
793
|
async def main() -> None:
|
|
773
|
-
response = await client.projects.list(
|
|
794
|
+
response = await client.projects.list(
|
|
795
|
+
include="task_number,total_annotations_number,num_tasks_with_annotations",
|
|
796
|
+
)
|
|
774
797
|
async for item in response:
|
|
775
798
|
yield item
|
|
776
799
|
# alternatively, you can paginate page-by-page
|
|
@@ -791,6 +814,8 @@ class AsyncProjectsClient:
|
|
|
791
814
|
"page": page,
|
|
792
815
|
"page_size": page_size,
|
|
793
816
|
"workspaces": workspaces,
|
|
817
|
+
"include": include,
|
|
818
|
+
"filter": filter,
|
|
794
819
|
},
|
|
795
820
|
request_options=request_options,
|
|
796
821
|
)
|
|
@@ -811,6 +836,8 @@ class AsyncProjectsClient:
|
|
|
811
836
|
page=page + 1,
|
|
812
837
|
page_size=page_size,
|
|
813
838
|
workspaces=workspaces,
|
|
839
|
+
include=include,
|
|
840
|
+
filter=filter,
|
|
814
841
|
request_options=request_options,
|
|
815
842
|
)
|
|
816
843
|
_items = _parsed_response.results
|
|
@@ -890,7 +917,8 @@ class AsyncProjectsClient:
|
|
|
890
917
|
Project color in HEX format
|
|
891
918
|
|
|
892
919
|
control_weights : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
893
|
-
Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}
|
|
920
|
+
Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}}
|
|
921
|
+
|
|
894
922
|
|
|
895
923
|
workspace : typing.Optional[int]
|
|
896
924
|
Workspace ID
|
|
@@ -1147,7 +1175,8 @@ class AsyncProjectsClient:
|
|
|
1147
1175
|
Project color in HEX format
|
|
1148
1176
|
|
|
1149
1177
|
control_weights : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
1150
|
-
Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}
|
|
1178
|
+
Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}}
|
|
1179
|
+
|
|
1151
1180
|
|
|
1152
1181
|
workspace : typing.Optional[int]
|
|
1153
1182
|
Workspace ID
|
|
@@ -1233,98 +1262,94 @@ class AsyncProjectsClient:
|
|
|
1233
1262
|
request_options: typing.Optional[RequestOptions] = None,
|
|
1234
1263
|
) -> ProjectsImportTasksResponse:
|
|
1235
1264
|
"""
|
|
1236
|
-
|
|
1265
|
+
|
|
1237
1266
|
Use this API endpoint to import labeling tasks in bulk. Note that each POST request is limited at 250K tasks and 200 MB.
|
|
1238
|
-
The project ID can be found in the URL when viewing the project in Label Studio, or you can retrieve all project IDs using [List all projects](../projects/list).
|
|
1239
|
-
|
|
1267
|
+
The project ID can be found in the URL when viewing the project in Label Studio, or you can retrieve all project IDs using [List all projects](../projects/list).
|
|
1268
|
+
|
|
1240
1269
|
<Note>
|
|
1241
|
-
Imported data is verified against a project *label_config* and must include all variables that were used in the *label_config*.
|
|
1242
|
-
|
|
1270
|
+
Imported data is verified against a project *label_config* and must include all variables that were used in the *label_config*.
|
|
1271
|
+
|
|
1243
1272
|
For example, if the label configuration has a *$text* variable, then each item in a data object must include a `text` field.
|
|
1244
1273
|
</Note>
|
|
1245
|
-
|
|
1274
|
+
|
|
1246
1275
|
There are three possible ways to import tasks with this endpoint:
|
|
1247
|
-
|
|
1248
|
-
#### 1
|
|
1276
|
+
|
|
1277
|
+
#### 1. **POST with data**
|
|
1249
1278
|
Send JSON tasks as POST data. Only JSON is supported for POSTing files directly.
|
|
1250
|
-
|
|
1279
|
+
|
|
1251
1280
|
Update this example to specify your authorization token and Label Studio instance host, then run the following from
|
|
1252
1281
|
the command line:
|
|
1253
|
-
|
|
1282
|
+
|
|
1254
1283
|
```bash
|
|
1255
|
-
curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123'
|
|
1256
|
-
-X POST 'https://localhost:8080/api/projects/1/import' --data '[{"text": "Some text 1"}, {"text": "Some text 2"}]'
|
|
1284
|
+
curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/projects/1/import' --data '[{"text": "Some text 1"}, {"text": "Some text 2"}]'
|
|
1257
1285
|
```
|
|
1258
|
-
|
|
1259
|
-
#### 2
|
|
1286
|
+
|
|
1287
|
+
#### 2. **POST with files**
|
|
1260
1288
|
Send tasks as files. You can attach multiple files with different names.
|
|
1261
|
-
|
|
1289
|
+
|
|
1262
1290
|
- **JSON**: text files in JavaScript object notation format
|
|
1263
1291
|
- **CSV**: text files with tables in Comma Separated Values format
|
|
1264
1292
|
- **TSV**: text files with tables in Tab Separated Value format
|
|
1265
1293
|
- **TXT**: simple text files are similar to CSV with one column and no header, supported for projects with one source only
|
|
1266
|
-
|
|
1294
|
+
|
|
1267
1295
|
Update this example to specify your authorization token, Label Studio instance host, and file name and path,
|
|
1268
1296
|
then run the following from the command line:
|
|
1269
|
-
|
|
1297
|
+
|
|
1270
1298
|
```bash
|
|
1271
|
-
curl -H 'Authorization: Token abc123'
|
|
1272
|
-
-X POST 'https://localhost:8080/api/projects/1/import' -F ‘file=@path/to/my_file.csv’
|
|
1299
|
+
curl -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/projects/1/import' -F 'file=@path/to/my_file.csv'
|
|
1273
1300
|
```
|
|
1274
|
-
|
|
1275
|
-
#### 3
|
|
1301
|
+
|
|
1302
|
+
#### 3. **POST with URL**
|
|
1276
1303
|
You can also provide a URL to a file with labeling tasks. Supported file formats are the same as in option 2.
|
|
1277
|
-
|
|
1304
|
+
|
|
1278
1305
|
```bash
|
|
1279
|
-
curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123'
|
|
1280
|
-
-X POST 'https://localhost:8080/api/projects/1/import' \
|
|
1281
|
-
--data '[{"url": "http://example.com/test1.csv"}, {"url": "http://example.com/test2.csv"}]'
|
|
1306
|
+
curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/projects/1/import' --data '[{"url": "http://example.com/test1.csv"}, {"url": "http://example.com/test2.csv"}]'
|
|
1282
1307
|
```
|
|
1283
|
-
|
|
1308
|
+
|
|
1284
1309
|
<br>
|
|
1285
|
-
|
|
1310
|
+
|
|
1286
1311
|
Parameters
|
|
1287
1312
|
----------
|
|
1288
1313
|
id : int
|
|
1289
1314
|
A unique integer value identifying this project.
|
|
1290
|
-
|
|
1315
|
+
|
|
1291
1316
|
request : typing.Sequence[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
1292
|
-
|
|
1317
|
+
|
|
1293
1318
|
commit_to_project : typing.Optional[bool]
|
|
1294
1319
|
Set to "true" to immediately commit tasks to the project.
|
|
1295
|
-
|
|
1320
|
+
|
|
1296
1321
|
return_task_ids : typing.Optional[bool]
|
|
1297
1322
|
Set to "true" to return task IDs in the response.
|
|
1298
|
-
|
|
1323
|
+
|
|
1299
1324
|
preannotated_from_fields : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
1300
1325
|
List of fields to preannotate from the task data. For example, if you provide a list of `{"text": "text", "prediction": "label"}` items in the request, the system will create a task with the `text` field and a prediction with the `label` field when `preannoted_from_fields=["prediction"]`.
|
|
1301
|
-
|
|
1326
|
+
|
|
1302
1327
|
request_options : typing.Optional[RequestOptions]
|
|
1303
1328
|
Request-specific configuration.
|
|
1304
|
-
|
|
1329
|
+
|
|
1305
1330
|
Returns
|
|
1306
1331
|
-------
|
|
1307
1332
|
ProjectsImportTasksResponse
|
|
1308
1333
|
Tasks successfully imported
|
|
1309
|
-
|
|
1334
|
+
|
|
1310
1335
|
Examples
|
|
1311
1336
|
--------
|
|
1312
1337
|
import asyncio
|
|
1313
|
-
|
|
1338
|
+
|
|
1314
1339
|
from label_studio_sdk import AsyncLabelStudio
|
|
1315
|
-
|
|
1340
|
+
|
|
1316
1341
|
client = AsyncLabelStudio(
|
|
1317
1342
|
api_key="YOUR_API_KEY",
|
|
1318
1343
|
)
|
|
1319
|
-
|
|
1320
|
-
|
|
1344
|
+
|
|
1345
|
+
|
|
1321
1346
|
async def main() -> None:
|
|
1322
1347
|
await client.projects.import_tasks(
|
|
1323
1348
|
id=1,
|
|
1324
1349
|
request=[{"key": "value"}],
|
|
1325
1350
|
)
|
|
1326
|
-
|
|
1327
|
-
|
|
1351
|
+
|
|
1352
|
+
|
|
1328
1353
|
asyncio.run(main())
|
|
1329
1354
|
"""
|
|
1330
1355
|
_response = await self._client_wrapper.httpx_client.request(
|