label-studio-sdk 1.0.18__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.18 → label_studio_sdk-1.0.19}/PKG-INFO +3 -2
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/pyproject.toml +3 -2
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/__init__.py +8 -1
- {label_studio_sdk-1.0.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/converter.py +48 -22
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/files/client.py +2 -2
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/__init__.py +8 -1
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/client.py +102 -81
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/client.py +2 -2
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/client_ext.py +2 -2
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/__init__.py +8 -1
- {label_studio_sdk-1.0.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/projects_update_response.py +1 -1
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tokens/client_ext.py +0 -1
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project.py +1 -1
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/LICENSE +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/README.md +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/eval/categorical.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → 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.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/etl/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/etl/beam.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/etl/example.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/etl/registry.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/video.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/pager_ext.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/exceptions.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/project.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/schema/label_config_schema.json +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/users.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/utils.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/workspaces.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → 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.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_id.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/base_client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/comments/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/comments/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/README.md +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/audio.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/brush.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/brush_to_coco.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/csv.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/csv2.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/yolo.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/funsd.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/coco.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/colors.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/label_config.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/pathtrack.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/yolo.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/keypoints.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/main.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/utils.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/api_error.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/client_wrapper.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/datetime_utils.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/file.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/http_client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/jsonable_encoder.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/pagination.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/pydantic_utilities.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/query_encoder.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/remove_none_from_dict.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/request_options.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/serialization.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/data_manager.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/environment.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/bad_request_error.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/internal_server_error.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/not_found_error.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/unauthorized_error.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/types/s3create_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/types/s3update_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3s/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3s/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/files/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/types/s3create_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/types/s3update_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3s/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3s/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/jwt_settings/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/jwt_settings/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/base.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/control_tags.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/create.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/data_examples.json +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/interface.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/label_tags.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/object_tags.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/objects.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/region.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_create_response.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_update_response.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/model_providers/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/model_providers/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/predictions/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/predictions/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/client_ext.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/types/exports_convert_response.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/pauses/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/pauses/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/projects_import_tasks_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/projects_list_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/indicators/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/indicators/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/runs/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/runs/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/runs/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/types/prompts_batch_predictions_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/versions/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/versions/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/py.typed +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/client_ext.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/types/tasks_list_request_fields.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/types/tasks_list_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tokens/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tokens/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/access_token_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotation.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotation_completed_by.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotation_filter_options.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotation_last_action.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotations_dm_field.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotations_dm_field_last_action.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/api_token_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/azure_blob_export_storage.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/azure_blob_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/azure_blob_import_storage.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/azure_blob_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/base_task.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/base_task_file_upload.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/base_task_updated_by.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/base_user.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/comment.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/comment_created_by.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/converted_format.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/converted_format_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → 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.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export_format.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export_snapshot.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export_snapshot_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/file_upload.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/filter.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/filter_group.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/gcs_export_storage.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/gcs_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/gcs_import_storage.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/gcs_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_cost_estimate.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_created_by.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_organization.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_project_subset.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/jwt_settings_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicator_value.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicators.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicators_item.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/local_files_export_storage.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/local_files_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/local_files_import_storage.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/local_files_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/ml_backend.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/ml_backend_auth_method.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/ml_backend_state.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_created_by.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_organization.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_provider.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_scope.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/pause.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/pause_paused_by.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prediction.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_import.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_import_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_label_config.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_sampling.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_skip_queue.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_associated_projects_item.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_associated_projects_item_id.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_created_by.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_organization.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_version.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_version_created_by.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_version_organization.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_version_provider.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/redis_export_storage.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/redis_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/redis_import_storage.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/redis_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/refined_prompt_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/refined_prompt_response_refinement_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/rotate_token_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3export_storage.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3export_storage_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3import_storage.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3import_storage_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3s_export_storage.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3s_import_storage.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3s_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/serialization_option.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/serialization_options.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/task.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/task_annotators_item.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/task_comment_authors_item.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/task_filter_options.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/user_simple.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/view.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/webhook.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/webhook_actions_item.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/webhook_serializer_for_update.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/workspace.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/types/users_get_token_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/types/users_reset_token_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/version.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/types/versions_get_response.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/types/versions_get_response_edition.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → 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.18 → 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.18 → 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.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → 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.18 → 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.18 → 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.18 → 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.18 → 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.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/webhooks/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/webhooks/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/webhooks/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/client.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/types/__init__.py +0 -0
- {label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/types/members_create_response.py +0 -0
- {label_studio_sdk-1.0.18 → 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.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/converter.py
RENAMED
|
@@ -582,13 +582,26 @@ class Converter(object):
|
|
|
582
582
|
self._check_format(Format.JSON)
|
|
583
583
|
ensure_dir(output_dir)
|
|
584
584
|
output_file = os.path.join(output_dir, "result.json")
|
|
585
|
-
|
|
585
|
+
|
|
586
586
|
if is_dir:
|
|
587
|
-
|
|
588
|
-
with io.open(json_file, encoding="utf8") as f:
|
|
589
|
-
records.append(json.load(f))
|
|
587
|
+
# Memory-optimized: stream JSON writing instead of accumulating in memory
|
|
590
588
|
with io.open(output_file, mode="w", encoding="utf8") as fout:
|
|
591
|
-
|
|
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]")
|
|
592
605
|
else:
|
|
593
606
|
copy2(input_data, output_file)
|
|
594
607
|
|
|
@@ -596,26 +609,39 @@ class Converter(object):
|
|
|
596
609
|
self._check_format(Format.JSON_MIN)
|
|
597
610
|
ensure_dir(output_dir)
|
|
598
611
|
output_file = os.path.join(output_dir, "result.json")
|
|
599
|
-
records = []
|
|
600
612
|
item_iterator = self.iter_from_dir if is_dir else self.iter_from_json_file
|
|
601
613
|
|
|
602
|
-
for item in item_iterator(input_data):
|
|
603
|
-
record = deepcopy(item["input"])
|
|
604
|
-
if item.get("id") is not None:
|
|
605
|
-
record["id"] = item["id"]
|
|
606
|
-
for name, value in item["output"].items():
|
|
607
|
-
record[name] = prettify_result(value)
|
|
608
|
-
record["annotator"] = get_annotator(item, int_id=True)
|
|
609
|
-
record["annotation_id"] = item["annotation_id"]
|
|
610
|
-
record["created_at"] = item["created_at"]
|
|
611
|
-
record["updated_at"] = item["updated_at"]
|
|
612
|
-
record["lead_time"] = item["lead_time"]
|
|
613
|
-
if "agreement" in item:
|
|
614
|
-
record["agreement"] = item["agreement"]
|
|
615
|
-
records.append(record)
|
|
616
|
-
|
|
617
614
|
with io.open(output_file, mode="w", encoding="utf8") as fout:
|
|
618
|
-
|
|
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]")
|
|
619
645
|
|
|
620
646
|
def convert_to_csv(self, input_data, output_dir, is_dir=True, **kwargs):
|
|
621
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.18 → 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,7 @@ 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:
|
|
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}}
|
|
211
226
|
|
|
212
227
|
|
|
213
228
|
workspace : typing.Optional[int]
|
|
@@ -441,7 +456,7 @@ class ProjectsClient:
|
|
|
441
456
|
Project color in HEX format
|
|
442
457
|
|
|
443
458
|
control_weights : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
444
|
-
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:
|
|
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}}
|
|
445
460
|
|
|
446
461
|
|
|
447
462
|
workspace : typing.Optional[int]
|
|
@@ -520,84 +535,80 @@ class ProjectsClient:
|
|
|
520
535
|
request_options: typing.Optional[RequestOptions] = None,
|
|
521
536
|
) -> ProjectsImportTasksResponse:
|
|
522
537
|
"""
|
|
523
|
-
|
|
538
|
+
|
|
524
539
|
Use this API endpoint to import labeling tasks in bulk. Note that each POST request is limited at 250K tasks and 200 MB.
|
|
525
|
-
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).
|
|
526
|
-
|
|
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
|
+
|
|
527
542
|
<Note>
|
|
528
|
-
Imported data is verified against a project *label_config* and must include all variables that were used in the *label_config*.
|
|
529
|
-
|
|
543
|
+
Imported data is verified against a project *label_config* and must include all variables that were used in the *label_config*.
|
|
544
|
+
|
|
530
545
|
For example, if the label configuration has a *$text* variable, then each item in a data object must include a `text` field.
|
|
531
546
|
</Note>
|
|
532
|
-
|
|
547
|
+
|
|
533
548
|
There are three possible ways to import tasks with this endpoint:
|
|
534
|
-
|
|
535
|
-
#### 1
|
|
549
|
+
|
|
550
|
+
#### 1. **POST with data**
|
|
536
551
|
Send JSON tasks as POST data. Only JSON is supported for POSTing files directly.
|
|
537
|
-
|
|
552
|
+
|
|
538
553
|
Update this example to specify your authorization token and Label Studio instance host, then run the following from
|
|
539
554
|
the command line:
|
|
540
|
-
|
|
555
|
+
|
|
541
556
|
```bash
|
|
542
|
-
curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123'
|
|
543
|
-
-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"}]'
|
|
544
558
|
```
|
|
545
|
-
|
|
546
|
-
#### 2
|
|
559
|
+
|
|
560
|
+
#### 2. **POST with files**
|
|
547
561
|
Send tasks as files. You can attach multiple files with different names.
|
|
548
|
-
|
|
562
|
+
|
|
549
563
|
- **JSON**: text files in JavaScript object notation format
|
|
550
564
|
- **CSV**: text files with tables in Comma Separated Values format
|
|
551
565
|
- **TSV**: text files with tables in Tab Separated Value format
|
|
552
566
|
- **TXT**: simple text files are similar to CSV with one column and no header, supported for projects with one source only
|
|
553
|
-
|
|
567
|
+
|
|
554
568
|
Update this example to specify your authorization token, Label Studio instance host, and file name and path,
|
|
555
569
|
then run the following from the command line:
|
|
556
|
-
|
|
570
|
+
|
|
557
571
|
```bash
|
|
558
|
-
curl -H 'Authorization: Token abc123'
|
|
559
|
-
-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'
|
|
560
573
|
```
|
|
561
|
-
|
|
562
|
-
#### 3
|
|
574
|
+
|
|
575
|
+
#### 3. **POST with URL**
|
|
563
576
|
You can also provide a URL to a file with labeling tasks. Supported file formats are the same as in option 2.
|
|
564
|
-
|
|
577
|
+
|
|
565
578
|
```bash
|
|
566
|
-
curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123'
|
|
567
|
-
-X POST 'https://localhost:8080/api/projects/1/import' \
|
|
568
|
-
--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"}]'
|
|
569
580
|
```
|
|
570
|
-
|
|
581
|
+
|
|
571
582
|
<br>
|
|
572
|
-
|
|
583
|
+
|
|
573
584
|
Parameters
|
|
574
585
|
----------
|
|
575
586
|
id : int
|
|
576
587
|
A unique integer value identifying this project.
|
|
577
|
-
|
|
588
|
+
|
|
578
589
|
request : typing.Sequence[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
579
|
-
|
|
590
|
+
|
|
580
591
|
commit_to_project : typing.Optional[bool]
|
|
581
592
|
Set to "true" to immediately commit tasks to the project.
|
|
582
|
-
|
|
593
|
+
|
|
583
594
|
return_task_ids : typing.Optional[bool]
|
|
584
595
|
Set to "true" to return task IDs in the response.
|
|
585
|
-
|
|
596
|
+
|
|
586
597
|
preannotated_from_fields : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
587
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"]`.
|
|
588
|
-
|
|
599
|
+
|
|
589
600
|
request_options : typing.Optional[RequestOptions]
|
|
590
601
|
Request-specific configuration.
|
|
591
|
-
|
|
602
|
+
|
|
592
603
|
Returns
|
|
593
604
|
-------
|
|
594
605
|
ProjectsImportTasksResponse
|
|
595
606
|
Tasks successfully imported
|
|
596
|
-
|
|
607
|
+
|
|
597
608
|
Examples
|
|
598
609
|
--------
|
|
599
610
|
from label_studio_sdk import LabelStudio
|
|
600
|
-
|
|
611
|
+
|
|
601
612
|
client = LabelStudio(
|
|
602
613
|
api_key="YOUR_API_KEY",
|
|
603
614
|
)
|
|
@@ -718,6 +729,8 @@ class AsyncProjectsClient:
|
|
|
718
729
|
page: typing.Optional[int] = None,
|
|
719
730
|
page_size: typing.Optional[int] = None,
|
|
720
731
|
workspaces: typing.Optional[int] = None,
|
|
732
|
+
include: typing.Optional[str] = None,
|
|
733
|
+
filter: typing.Optional[ProjectsListRequestFilter] = None,
|
|
721
734
|
request_options: typing.Optional[RequestOptions] = None,
|
|
722
735
|
) -> AsyncPager[Project]:
|
|
723
736
|
"""
|
|
@@ -752,6 +765,12 @@ class AsyncProjectsClient:
|
|
|
752
765
|
workspaces : typing.Optional[int]
|
|
753
766
|
workspaces
|
|
754
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
|
+
|
|
755
774
|
request_options : typing.Optional[RequestOptions]
|
|
756
775
|
Request-specific configuration.
|
|
757
776
|
|
|
@@ -772,7 +791,9 @@ class AsyncProjectsClient:
|
|
|
772
791
|
|
|
773
792
|
|
|
774
793
|
async def main() -> None:
|
|
775
|
-
response = await client.projects.list(
|
|
794
|
+
response = await client.projects.list(
|
|
795
|
+
include="task_number,total_annotations_number,num_tasks_with_annotations",
|
|
796
|
+
)
|
|
776
797
|
async for item in response:
|
|
777
798
|
yield item
|
|
778
799
|
# alternatively, you can paginate page-by-page
|
|
@@ -793,6 +814,8 @@ class AsyncProjectsClient:
|
|
|
793
814
|
"page": page,
|
|
794
815
|
"page_size": page_size,
|
|
795
816
|
"workspaces": workspaces,
|
|
817
|
+
"include": include,
|
|
818
|
+
"filter": filter,
|
|
796
819
|
},
|
|
797
820
|
request_options=request_options,
|
|
798
821
|
)
|
|
@@ -813,6 +836,8 @@ class AsyncProjectsClient:
|
|
|
813
836
|
page=page + 1,
|
|
814
837
|
page_size=page_size,
|
|
815
838
|
workspaces=workspaces,
|
|
839
|
+
include=include,
|
|
840
|
+
filter=filter,
|
|
816
841
|
request_options=request_options,
|
|
817
842
|
)
|
|
818
843
|
_items = _parsed_response.results
|
|
@@ -892,7 +917,7 @@ class AsyncProjectsClient:
|
|
|
892
917
|
Project color in HEX format
|
|
893
918
|
|
|
894
919
|
control_weights : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
895
|
-
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:
|
|
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}}
|
|
896
921
|
|
|
897
922
|
|
|
898
923
|
workspace : typing.Optional[int]
|
|
@@ -1150,7 +1175,7 @@ class AsyncProjectsClient:
|
|
|
1150
1175
|
Project color in HEX format
|
|
1151
1176
|
|
|
1152
1177
|
control_weights : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
1153
|
-
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:
|
|
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}}
|
|
1154
1179
|
|
|
1155
1180
|
|
|
1156
1181
|
workspace : typing.Optional[int]
|
|
@@ -1237,98 +1262,94 @@ class AsyncProjectsClient:
|
|
|
1237
1262
|
request_options: typing.Optional[RequestOptions] = None,
|
|
1238
1263
|
) -> ProjectsImportTasksResponse:
|
|
1239
1264
|
"""
|
|
1240
|
-
|
|
1265
|
+
|
|
1241
1266
|
Use this API endpoint to import labeling tasks in bulk. Note that each POST request is limited at 250K tasks and 200 MB.
|
|
1242
|
-
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).
|
|
1243
|
-
|
|
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
|
+
|
|
1244
1269
|
<Note>
|
|
1245
|
-
Imported data is verified against a project *label_config* and must include all variables that were used in the *label_config*.
|
|
1246
|
-
|
|
1270
|
+
Imported data is verified against a project *label_config* and must include all variables that were used in the *label_config*.
|
|
1271
|
+
|
|
1247
1272
|
For example, if the label configuration has a *$text* variable, then each item in a data object must include a `text` field.
|
|
1248
1273
|
</Note>
|
|
1249
|
-
|
|
1274
|
+
|
|
1250
1275
|
There are three possible ways to import tasks with this endpoint:
|
|
1251
|
-
|
|
1252
|
-
#### 1
|
|
1276
|
+
|
|
1277
|
+
#### 1. **POST with data**
|
|
1253
1278
|
Send JSON tasks as POST data. Only JSON is supported for POSTing files directly.
|
|
1254
|
-
|
|
1279
|
+
|
|
1255
1280
|
Update this example to specify your authorization token and Label Studio instance host, then run the following from
|
|
1256
1281
|
the command line:
|
|
1257
|
-
|
|
1282
|
+
|
|
1258
1283
|
```bash
|
|
1259
|
-
curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123'
|
|
1260
|
-
-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"}]'
|
|
1261
1285
|
```
|
|
1262
|
-
|
|
1263
|
-
#### 2
|
|
1286
|
+
|
|
1287
|
+
#### 2. **POST with files**
|
|
1264
1288
|
Send tasks as files. You can attach multiple files with different names.
|
|
1265
|
-
|
|
1289
|
+
|
|
1266
1290
|
- **JSON**: text files in JavaScript object notation format
|
|
1267
1291
|
- **CSV**: text files with tables in Comma Separated Values format
|
|
1268
1292
|
- **TSV**: text files with tables in Tab Separated Value format
|
|
1269
1293
|
- **TXT**: simple text files are similar to CSV with one column and no header, supported for projects with one source only
|
|
1270
|
-
|
|
1294
|
+
|
|
1271
1295
|
Update this example to specify your authorization token, Label Studio instance host, and file name and path,
|
|
1272
1296
|
then run the following from the command line:
|
|
1273
|
-
|
|
1297
|
+
|
|
1274
1298
|
```bash
|
|
1275
|
-
curl -H 'Authorization: Token abc123'
|
|
1276
|
-
-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'
|
|
1277
1300
|
```
|
|
1278
|
-
|
|
1279
|
-
#### 3
|
|
1301
|
+
|
|
1302
|
+
#### 3. **POST with URL**
|
|
1280
1303
|
You can also provide a URL to a file with labeling tasks. Supported file formats are the same as in option 2.
|
|
1281
|
-
|
|
1304
|
+
|
|
1282
1305
|
```bash
|
|
1283
|
-
curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123'
|
|
1284
|
-
-X POST 'https://localhost:8080/api/projects/1/import' \
|
|
1285
|
-
--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"}]'
|
|
1286
1307
|
```
|
|
1287
|
-
|
|
1308
|
+
|
|
1288
1309
|
<br>
|
|
1289
|
-
|
|
1310
|
+
|
|
1290
1311
|
Parameters
|
|
1291
1312
|
----------
|
|
1292
1313
|
id : int
|
|
1293
1314
|
A unique integer value identifying this project.
|
|
1294
|
-
|
|
1315
|
+
|
|
1295
1316
|
request : typing.Sequence[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
1296
|
-
|
|
1317
|
+
|
|
1297
1318
|
commit_to_project : typing.Optional[bool]
|
|
1298
1319
|
Set to "true" to immediately commit tasks to the project.
|
|
1299
|
-
|
|
1320
|
+
|
|
1300
1321
|
return_task_ids : typing.Optional[bool]
|
|
1301
1322
|
Set to "true" to return task IDs in the response.
|
|
1302
|
-
|
|
1323
|
+
|
|
1303
1324
|
preannotated_from_fields : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
1304
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"]`.
|
|
1305
|
-
|
|
1326
|
+
|
|
1306
1327
|
request_options : typing.Optional[RequestOptions]
|
|
1307
1328
|
Request-specific configuration.
|
|
1308
|
-
|
|
1329
|
+
|
|
1309
1330
|
Returns
|
|
1310
1331
|
-------
|
|
1311
1332
|
ProjectsImportTasksResponse
|
|
1312
1333
|
Tasks successfully imported
|
|
1313
|
-
|
|
1334
|
+
|
|
1314
1335
|
Examples
|
|
1315
1336
|
--------
|
|
1316
1337
|
import asyncio
|
|
1317
|
-
|
|
1338
|
+
|
|
1318
1339
|
from label_studio_sdk import AsyncLabelStudio
|
|
1319
|
-
|
|
1340
|
+
|
|
1320
1341
|
client = AsyncLabelStudio(
|
|
1321
1342
|
api_key="YOUR_API_KEY",
|
|
1322
1343
|
)
|
|
1323
|
-
|
|
1324
|
-
|
|
1344
|
+
|
|
1345
|
+
|
|
1325
1346
|
async def main() -> None:
|
|
1326
1347
|
await client.projects.import_tasks(
|
|
1327
1348
|
id=1,
|
|
1328
1349
|
request=[{"key": "value"}],
|
|
1329
1350
|
)
|
|
1330
|
-
|
|
1331
|
-
|
|
1351
|
+
|
|
1352
|
+
|
|
1332
1353
|
asyncio.run(main())
|
|
1333
1354
|
"""
|
|
1334
1355
|
_response = await self._client_wrapper.httpx_client.request(
|
{label_studio_sdk-1.0.18 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/client.py
RENAMED
|
@@ -55,7 +55,7 @@ class ExportsClient:
|
|
|
55
55
|
```
|
|
56
56
|
To export specific tasks with IDs of 123 and 345, run the following from the command line:
|
|
57
57
|
```bash
|
|
58
|
-
curl -X GET https://localhost:8080/api/projects/{id}/export?ids[]=123
|
|
58
|
+
curl -X GET "https://localhost:8080/api/projects/{id}/export?ids[]=123&ids[]=345" -H 'Authorization: Token abc123' --output 'annotations.json'
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
You must provide a project ID. 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](../list).
|
|
@@ -604,7 +604,7 @@ class AsyncExportsClient:
|
|
|
604
604
|
```
|
|
605
605
|
To export specific tasks with IDs of 123 and 345, run the following from the command line:
|
|
606
606
|
```bash
|
|
607
|
-
curl -X GET https://localhost:8080/api/projects/{id}/export?ids[]=123
|
|
607
|
+
curl -X GET "https://localhost:8080/api/projects/{id}/export?ids[]=123&ids[]=345" -H 'Authorization: Token abc123' --output 'annotations.json'
|
|
608
608
|
```
|
|
609
609
|
|
|
610
610
|
You must provide a project ID. 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](../list).
|
|
@@ -15,11 +15,11 @@ class ExportTimeoutError(ApiError):
|
|
|
15
15
|
super().__init__(
|
|
16
16
|
status_code=500,
|
|
17
17
|
body=(
|
|
18
|
-
f"Export job timed out
|
|
18
|
+
f"Export job timed out: "
|
|
19
19
|
f"unable to retrieve export job {export_snapshot.id}. "
|
|
20
20
|
f"Current status: {export_snapshot.status}. "
|
|
21
21
|
f"Try manually checking the running job with "
|
|
22
|
-
f"`ls.projects.exports.get(
|
|
22
|
+
f"`ls.projects.exports.get(id=<PROJECT_ID>, export_pk={export_snapshot.id})`."
|
|
23
23
|
)
|
|
24
24
|
)
|
|
25
25
|
|