label-studio-sdk 1.0.0__tar.gz → 1.0.1__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.0 → label_studio_sdk-1.0.1}/PKG-INFO +17 -161
- label_studio_sdk-1.0.1/README.md +126 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/pyproject.toml +2 -2
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/__init__.py +30 -4
- label_studio_sdk-1.0.1/src/label_studio_sdk/_extensions/pager_ext.py +49 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/_legacy/objects.py +74 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/schema/label_config_schema.json +14 -14
- label_studio_sdk-1.0.1/src/label_studio_sdk/actions/__init__.py +27 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/actions/client.py +223 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/__init__.py +25 -0
- label_studio_sdk-1.0.0/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item.py → label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_filters.py +8 -12
- label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_filters_conjunction.py +5 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +49 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_filter.py +31 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_operator.py +23 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_id.py +19 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_ordering_item.py +31 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_selected_items.py +10 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +39 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +39 -0
- label_studio_sdk-1.0.0/src/label_studio_sdk/client.py → label_studio_sdk-1.0.1/src/label_studio_sdk/base_client.py +2 -2
- label_studio_sdk-1.0.1/src/label_studio_sdk/client.py +25 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/client_wrapper.py +1 -1
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/http_client.py +5 -1
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/azure/client.py +176 -10
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/azure/types/azure_create_response.py +15 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/azure/types/azure_update_response.py +15 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/gcs/client.py +180 -14
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +16 -1
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +16 -1
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/local/client.py +168 -22
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/local/types/local_create_response.py +12 -2
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/local/types/local_update_response.py +12 -2
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/redis/client.py +234 -30
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/redis/types/redis_create_response.py +20 -5
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/redis/types/redis_update_response.py +20 -5
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/s3/client.py +214 -26
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/s3/types/s3create_response.py +15 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/s3/types/s3update_response.py +15 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/azure/client.py +266 -90
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/azure/types/azure_create_response.py +28 -18
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/azure/types/azure_update_response.py +28 -18
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/gcs/client.py +270 -94
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +28 -18
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +28 -18
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/local/client.py +168 -22
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/local/types/local_create_response.py +12 -2
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/local/types/local_update_response.py +12 -2
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/redis/client.py +206 -50
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/redis/types/redis_create_response.py +20 -10
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/redis/types/redis_update_response.py +20 -10
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/s3/client.py +336 -110
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/s3/types/s3create_response.py +35 -25
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/s3/types/s3update_response.py +35 -25
- {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/base.py +10 -0
- {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/control_tags.py +109 -71
- {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/interface.py +96 -50
- {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/object_tags.py +8 -13
- label_studio_sdk-1.0.1/src/label_studio_sdk/label_interface/region.py +75 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/client.py +4 -2
- label_studio_sdk-1.0.1/src/label_studio_sdk/projects/client_ext.py +19 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/tasks/client.py +26 -2
- label_studio_sdk-1.0.1/src/label_studio_sdk/tasks/client_ext.py +18 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/annotation.py +5 -5
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/task.py +1 -1
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/__init__.py +8 -4
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/__init__.py +8 -4
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/views_create_request_data.py +2 -2
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/views_create_request_data_filters.py +5 -5
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/views_create_request_data_filters_conjunction.py +1 -1
- label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +49 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_filter.py +31 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_operator.py +23 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_create_request_data_ordering_item.py +31 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/views_update_request_data.py +2 -2
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/views_update_request_data_filters.py +5 -5
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/views_update_request_data_filters_conjunction.py +1 -1
- label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +49 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_filter.py +31 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_operator.py +23 -0
- label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_update_request_data_ordering_item.py +31 -0
- label_studio_sdk-1.0.0/README.md +0 -270
- label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy/label_interface/region.py +0 -43
- label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy/objects.py +0 -35
- label_studio_sdk-1.0.0/src/label_studio_sdk/actions/client.py +0 -150
- label_studio_sdk-1.0.0/src/label_studio_sdk/projects/exports/__init__.py +0 -2
- label_studio_sdk-1.0.0/src/label_studio_sdk/views/types/views_create_request_data_ordering_item.py +0 -38
- label_studio_sdk-1.0.0/src/label_studio_sdk/views/types/views_create_request_data_ordering_item_direction.py +0 -5
- label_studio_sdk-1.0.0/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +0 -47
- label_studio_sdk-1.0.0/src/label_studio_sdk/views/types/views_update_request_data_ordering_item.py +0 -38
- label_studio_sdk-1.0.0/src/label_studio_sdk/views/types/views_update_request_data_ordering_item_direction.py +0 -5
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/core/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/core/label_config.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/exceptions.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/io.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/params.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/etl/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/etl/beam.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/etl/example.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/etl/registry.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/video.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/exceptions.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/project.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/users.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/utils.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/workspaces.py +0 -0
- {label_studio_sdk-1.0.0/src/label_studio_sdk/actions → label_studio_sdk-1.0.1/src/label_studio_sdk/annotations}/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/annotations/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/audio.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/brush.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/converter.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/exports/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/exports/csv.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/exports/csv2.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/funsd.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/imports/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/imports/coco.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/imports/colors.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/imports/label_config.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/imports/pathtrack.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/imports/yolo.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/main.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/utils.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/api_error.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/datetime_utils.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/file.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/jsonable_encoder.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/pagination.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/pydantic_utilities.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/query_encoder.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/remove_none_from_dict.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/request_options.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/data_manager.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/environment.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/errors/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/errors/bad_request_error.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/errors/internal_server_error.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/azure/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/azure/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/gcs/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/gcs/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/local/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/local/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/redis/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/redis/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/s3/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/s3/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +0 -0
- {label_studio_sdk-1.0.0/src/label_studio_sdk/annotations → label_studio_sdk-1.0.1/src/label_studio_sdk/files}/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/files/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/azure/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/azure/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/gcs/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/gcs/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/local/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/local/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/redis/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/redis/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/s3/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/s3/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +0 -0
- {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/__init__.py +0 -0
- {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/data_examples.json +0 -0
- {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/label_tags.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/ml_create_request_auth_method.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/ml_create_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/ml_create_response_auth_method.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/ml_update_request_auth_method.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/ml_update_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/ml_update_response_auth_method.py +0 -0
- {label_studio_sdk-1.0.0/src/label_studio_sdk/files → label_studio_sdk-1.0.1/src/label_studio_sdk/predictions}/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/predictions/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/__init__.py +0 -0
- {label_studio_sdk-1.0.0/src/label_studio_sdk/predictions → label_studio_sdk-1.0.1/src/label_studio_sdk/projects/exports}/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/exports/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/types/projects_create_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/types/projects_import_tasks_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/types/projects_list_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/py.typed +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/tasks/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/tasks/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/tasks/types/tasks_list_request_fields.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/tasks/types/tasks_list_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/annotation_filter_options.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/annotation_last_action.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/azure_blob_export_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/azure_blob_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/azure_blob_import_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/azure_blob_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/base_task.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/base_user.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/converted_format.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/converted_format_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/export.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/export_convert.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/export_create.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/export_create_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/export_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/file_upload.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/filter.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/filter_group.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/gcs_export_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/gcs_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/gcs_import_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/gcs_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/local_files_export_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/local_files_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/local_files_import_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/local_files_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/ml_backend.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/ml_backend_auth_method.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/ml_backend_state.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/prediction.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/project.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/project_import.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/project_import_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/project_label_config.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/project_sampling.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/project_skip_queue.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/redis_export_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/redis_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/redis_import_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/redis_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/s3export_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/s3export_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/s3import_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/s3import_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/serialization_option.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/serialization_options.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/task_filter_options.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/user_simple.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/view.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/webhook.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/webhook_actions_item.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/webhook_serializer_for_update.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/webhook_serializer_for_update_actions_item.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/users/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/users/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/users/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/users/types/users_get_token_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/users/types/users_reset_token_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/version.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/webhooks/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/webhooks/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/webhooks/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/webhooks/types/webhooks_update_request_actions_item.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: label-studio-sdk
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary:
|
|
5
5
|
Requires-Python: >=3.8,<4.0
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -65,63 +65,36 @@ The Label Studio Python Library provides convenient access to the Label Studio A
|
|
|
65
65
|
|
|
66
66
|
<!-- Outline -->
|
|
67
67
|
|
|
68
|
-
- [Installation](#installation)
|
|
69
|
-
- [Usage](#usage)
|
|
70
|
-
- [Examples](#examples)
|
|
71
|
-
- [Get all projects](#get-all-projects)
|
|
72
|
-
- [Create a new project](#create-a-new-project)
|
|
73
|
-
- [Get project by ID](#get-project-by-id)
|
|
74
|
-
- [Update project](#update-project)
|
|
75
|
-
- [Delete project](#delete-project)
|
|
76
|
-
- [Get tasks with annotations and predictions](#get-tasks-with-annotations-and-predictions)
|
|
77
|
-
- [Get task by ID](#get-task-by-id)
|
|
78
|
-
- [Get all annotations for a task](#get-all-annotations-for-a-task)
|
|
79
|
-
- [Create a new task](#create-a-new-task)
|
|
80
|
-
- [Import batch tasks](#import-batch-tasks)
|
|
81
|
-
- [Update task](#update-task)
|
|
82
|
-
- [Delete task](#delete-task)
|
|
83
|
-
- [Create prediction](#create-prediction)
|
|
84
|
-
- [Update prediction](#update-prediction)
|
|
85
|
-
- [Delete prediction](#delete-prediction)
|
|
86
|
-
- [Async client](#async-client)
|
|
87
|
-
|
|
88
68
|
|
|
89
69
|
# Documentation
|
|
90
|
-
Explore the Label Studio API documentation [here](https://
|
|
70
|
+
Explore the Label Studio API documentation [here](https://api.labelstud.io/).
|
|
91
71
|
|
|
92
72
|
|
|
93
|
-
<!-- Begin Installation, generated by Fern -->
|
|
94
73
|
# Installation
|
|
95
74
|
|
|
96
75
|
```sh
|
|
97
76
|
pip install --upgrade label-studio-sdk
|
|
98
77
|
```
|
|
99
|
-
<!-- End Installation -->
|
|
100
78
|
|
|
101
|
-
<!-- Begin Usage, generated by Fern -->
|
|
102
79
|
# Usage
|
|
103
80
|
|
|
104
81
|
```python
|
|
105
82
|
from label_studio_sdk.client import LabelStudio
|
|
106
83
|
|
|
107
|
-
|
|
84
|
+
ls = LabelStudio(
|
|
85
|
+
base_url='YOUR_LABEL_STUDIO_URL',
|
|
108
86
|
api_key="YOUR_API_KEY",
|
|
109
87
|
)
|
|
110
88
|
```
|
|
111
|
-
<!-- End Usage -->
|
|
112
89
|
|
|
113
90
|
# Examples
|
|
114
91
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
```python
|
|
118
|
-
projects = client.projects.list()
|
|
119
|
-
```
|
|
92
|
+
Check more examples [here](https://api.labelstud.io/).
|
|
120
93
|
|
|
121
94
|
## Create a new project
|
|
122
95
|
|
|
123
96
|
```python
|
|
124
|
-
project =
|
|
97
|
+
project = ls.projects.create(
|
|
125
98
|
name="Project name",
|
|
126
99
|
description="Project description",
|
|
127
100
|
label_config="""
|
|
@@ -136,143 +109,26 @@ project = client.projects.create(
|
|
|
136
109
|
)
|
|
137
110
|
```
|
|
138
111
|
|
|
139
|
-
## Get project by ID
|
|
140
|
-
|
|
141
|
-
```python
|
|
142
|
-
project = client.projects.get("PROJECT_ID")
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
## Update project
|
|
146
|
-
|
|
147
|
-
```python
|
|
148
|
-
project = client.projects.update(
|
|
149
|
-
project="PROJECT_ID",
|
|
150
|
-
description="New project description",
|
|
151
|
-
)
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
## Delete project
|
|
155
|
-
|
|
156
|
-
```python
|
|
157
|
-
client.projects.delete("PROJECT_ID")
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
## Get tasks with annotations and predictions
|
|
161
|
-
|
|
162
|
-
```python
|
|
163
|
-
tasks = client.tasks.list(project="PROJECT_ID")
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
## Get task by ID
|
|
167
|
-
|
|
168
|
-
```python
|
|
169
|
-
task = client.tasks.get("TASK_ID")
|
|
170
|
-
print(task)
|
|
171
|
-
```
|
|
172
|
-
Task data, annotations and predictions in [Label Studio tasks format](https://labelstud.io/guide/task_format#Label-Studio-JSON-format-of-annotated-tasks):
|
|
173
|
-
```json
|
|
174
|
-
{
|
|
175
|
-
"id": "TASK_ID",
|
|
176
|
-
"data": {
|
|
177
|
-
"image": "https://example.com/image.jpg",
|
|
178
|
-
"label": "cat"
|
|
179
|
-
},
|
|
180
|
-
"annotations": [],
|
|
181
|
-
"predictions": []
|
|
182
|
-
}
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
## Get all annotations for a task
|
|
186
|
-
|
|
187
|
-
```python
|
|
188
|
-
annotations = client.annotations.list(task="TASK_ID")
|
|
189
|
-
```
|
|
190
|
-
|
|
191
112
|
## Create a new task
|
|
192
|
-
|
|
193
|
-
```python
|
|
194
|
-
task = client.tasks.create(
|
|
195
|
-
project="PROJECT_ID",
|
|
196
|
-
data={
|
|
197
|
-
"data": {
|
|
198
|
-
"image": "https://example.com/image.jpg",
|
|
199
|
-
"label": "cat"
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
)
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
## Import batch tasks
|
|
206
|
-
|
|
207
|
-
```python
|
|
208
|
-
tasks = client.projects.import_tasks(
|
|
209
|
-
project="PROJECT_ID",
|
|
210
|
-
data=[
|
|
211
|
-
{
|
|
212
|
-
"data": {
|
|
213
|
-
"image": "https://example.com/image1.jpg",
|
|
214
|
-
"label": "cat"
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
"data": {
|
|
219
|
-
"image": "https://example.com/image2.jpg",
|
|
220
|
-
"label": "dog"
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
]
|
|
224
|
-
)
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
## Update task
|
|
228
|
-
|
|
113
|
+
|
|
229
114
|
```python
|
|
230
|
-
task =
|
|
231
|
-
project=
|
|
232
|
-
|
|
233
|
-
data={
|
|
234
|
-
"data": {
|
|
235
|
-
"image": "https://example.com/image.jpg",
|
|
236
|
-
"label": "dog"
|
|
237
|
-
}
|
|
238
|
-
}
|
|
115
|
+
task = ls.tasks.create(
|
|
116
|
+
project=project.id,
|
|
117
|
+
data={"image": "https://example.com/image.jpg"}
|
|
239
118
|
)
|
|
240
119
|
```
|
|
120
|
+
Now you can open the project `PROJECT_ID` in the Label Studio UI and create annotations for the task.
|
|
241
121
|
|
|
242
|
-
##
|
|
122
|
+
## Export annotations
|
|
243
123
|
|
|
244
124
|
```python
|
|
245
|
-
|
|
125
|
+
annotations = [
|
|
126
|
+
task.annotations
|
|
127
|
+
for task in ls.tasks.list(project=project.id, fields='all')
|
|
128
|
+
if task.annotations
|
|
129
|
+
]
|
|
246
130
|
```
|
|
247
131
|
|
|
248
|
-
## Create prediction
|
|
249
|
-
|
|
250
|
-
```python
|
|
251
|
-
prediction = client.predictions.create(
|
|
252
|
-
task="TASK_ID",
|
|
253
|
-
result=[{'from_name': 'bbox', 'to_name': 'image', 'type': 'labels', 'value': {'rectanglelabels': [{'x': 10, 'y': 20, 'width': 30, 'height': 40, 'rectanglelabels': ['cat']}]}}],
|
|
254
|
-
score=0.9,
|
|
255
|
-
model_version='yolov8',
|
|
256
|
-
)
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
## Update prediction
|
|
260
|
-
|
|
261
|
-
```python
|
|
262
|
-
prediction = client.predictions.update(
|
|
263
|
-
task="TASK_ID",
|
|
264
|
-
prediction="PREDICTION_ID",
|
|
265
|
-
result=[{'from_name': 'bbox', 'to_name': 'image', 'type': 'labels', 'value': {'rectanglelabels': [{'x': 10, 'y': 20, 'width': 30, 'height': 40, 'rectanglelabels': ['dog']}]}}],
|
|
266
|
-
score=0.8,
|
|
267
|
-
model_version='yolov8',
|
|
268
|
-
)
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
## Delete prediction
|
|
272
|
-
|
|
273
|
-
```python
|
|
274
|
-
client.predictions.delete(task="TASK_ID", prediction="PREDICTION_ID")
|
|
275
|
-
```
|
|
276
132
|
|
|
277
133
|
## Async client
|
|
278
134
|
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Label Studio Python Library
|
|
2
|
+
|
|
3
|
+
<!-- Note about deprecated version <1 -->
|
|
4
|
+
---
|
|
5
|
+
> :warning: **Note**<br/>
|
|
6
|
+
>
|
|
7
|
+
> The version of `label-studio-sdk<1` is deprecated and no longer supported. We recommend updating to the latest version.
|
|
8
|
+
> If you still want to use the old version, you can install it with `pip install "label-studio-sdk<1"`.
|
|
9
|
+
> OR You can find the branch with the old version by cloning the repository and checking out the branch as follows:
|
|
10
|
+
>
|
|
11
|
+
> ```sh
|
|
12
|
+
> git clone https://github.com/HumanSignal/label-studio-sdk.git
|
|
13
|
+
> cd label-studio-sdk
|
|
14
|
+
> git checkout previous-version
|
|
15
|
+
> ```
|
|
16
|
+
>
|
|
17
|
+
> OR you can change your import statements as follows:
|
|
18
|
+
> ```python
|
|
19
|
+
> from label_studio_sdk import Client
|
|
20
|
+
> from label_studio_sdk.data_manager import Filters, Column, Operator, Type
|
|
21
|
+
> from label_studio_sdk._legacy import Project
|
|
22
|
+
> ```
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
[](https://github.com/fern-api/fern)
|
|
26
|
+
|
|
27
|
+
The Label Studio Python Library provides convenient access to the Label Studio API from applications written in Python.
|
|
28
|
+
<!-- End Title -->
|
|
29
|
+
|
|
30
|
+
<!-- Outline -->
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# Documentation
|
|
34
|
+
Explore the Label Studio API documentation [here](https://api.labelstud.io/).
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# Installation
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
pip install --upgrade label-studio-sdk
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
# Usage
|
|
44
|
+
|
|
45
|
+
```python
|
|
46
|
+
from label_studio_sdk.client import LabelStudio
|
|
47
|
+
|
|
48
|
+
ls = LabelStudio(
|
|
49
|
+
base_url='YOUR_LABEL_STUDIO_URL',
|
|
50
|
+
api_key="YOUR_API_KEY",
|
|
51
|
+
)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
# Examples
|
|
55
|
+
|
|
56
|
+
Check more examples [here](https://api.labelstud.io/).
|
|
57
|
+
|
|
58
|
+
## Create a new project
|
|
59
|
+
|
|
60
|
+
```python
|
|
61
|
+
project = ls.projects.create(
|
|
62
|
+
name="Project name",
|
|
63
|
+
description="Project description",
|
|
64
|
+
label_config="""
|
|
65
|
+
<View>
|
|
66
|
+
<Image name="image" value="$image" />
|
|
67
|
+
<RectangleLabels name="label" toName="image">
|
|
68
|
+
<Label value="cat" />
|
|
69
|
+
<Label value="dog" />
|
|
70
|
+
</RectangleLabels>
|
|
71
|
+
</View>
|
|
72
|
+
"""
|
|
73
|
+
)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Create a new task
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
task = ls.tasks.create(
|
|
80
|
+
project=project.id,
|
|
81
|
+
data={"image": "https://example.com/image.jpg"}
|
|
82
|
+
)
|
|
83
|
+
```
|
|
84
|
+
Now you can open the project `PROJECT_ID` in the Label Studio UI and create annotations for the task.
|
|
85
|
+
|
|
86
|
+
## Export annotations
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
annotations = [
|
|
90
|
+
task.annotations
|
|
91
|
+
for task in ls.tasks.list(project=project.id, fields='all')
|
|
92
|
+
if task.annotations
|
|
93
|
+
]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
## Async client
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
from label_studio_sdk.client import AsyncLabelStudio
|
|
101
|
+
|
|
102
|
+
client = AsyncLabelStudio(
|
|
103
|
+
api_key="YOUR_API_KEY",
|
|
104
|
+
)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
<!-- Begin Status, generated by Fern -->
|
|
108
|
+
# Beta Status
|
|
109
|
+
|
|
110
|
+
This SDK is in beta, and there may be breaking changes between versions without a major
|
|
111
|
+
version update. Therefore, we recommend pinning the package version to a specific version.
|
|
112
|
+
This way, you can install the same version each time without breaking changes.
|
|
113
|
+
<!-- End Status -->
|
|
114
|
+
|
|
115
|
+
<!-- Begin Contributing, generated by Fern -->
|
|
116
|
+
# Contributing
|
|
117
|
+
|
|
118
|
+
While we value open-source contributions to this SDK, this library is generated programmatically.
|
|
119
|
+
Additions made directly to this library would have to be moved over to our generation code,
|
|
120
|
+
otherwise they would be overwritten upon the next generated release. Feel free to open a PR as
|
|
121
|
+
a proof of concept, but know that we will not be able to merge it as-is. We suggest opening
|
|
122
|
+
an issue first to discuss with us!
|
|
123
|
+
|
|
124
|
+
On the other hand, contributions to the README are always very welcome!
|
|
125
|
+
<!-- End Contributing -->
|
|
126
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "label-studio-sdk"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.1"
|
|
4
4
|
description = ""
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = []
|
|
@@ -48,7 +48,7 @@ ujson = ">=5.8.0"
|
|
|
48
48
|
xmljson = "0.2.1"
|
|
49
49
|
|
|
50
50
|
[tool.poetry.dev-dependencies]
|
|
51
|
-
mypy = "1.
|
|
51
|
+
mypy = "1.0.1"
|
|
52
52
|
pytest = "^7.4.0"
|
|
53
53
|
pytest-asyncio = "^0.23.5"
|
|
54
54
|
python-dateutil = "^2.9.0"
|
|
@@ -73,6 +73,18 @@ from . import (
|
|
|
73
73
|
webhooks,
|
|
74
74
|
)
|
|
75
75
|
from ._legacy import Client
|
|
76
|
+
from .actions import (
|
|
77
|
+
ActionsCreateRequestFilters,
|
|
78
|
+
ActionsCreateRequestFiltersConjunction,
|
|
79
|
+
ActionsCreateRequestFiltersItemsItem,
|
|
80
|
+
ActionsCreateRequestFiltersItemsItemFilter,
|
|
81
|
+
ActionsCreateRequestFiltersItemsItemOperator,
|
|
82
|
+
ActionsCreateRequestId,
|
|
83
|
+
ActionsCreateRequestOrderingItem,
|
|
84
|
+
ActionsCreateRequestSelectedItems,
|
|
85
|
+
ActionsCreateRequestSelectedItemsExcluded,
|
|
86
|
+
ActionsCreateRequestSelectedItemsIncluded,
|
|
87
|
+
)
|
|
76
88
|
from .environment import LabelStudioEnvironment
|
|
77
89
|
from .export_storage import ExportStorageListTypesResponseItem
|
|
78
90
|
from .import_storage import ImportStorageListTypesResponseItem
|
|
@@ -93,18 +105,30 @@ from .views import (
|
|
|
93
105
|
ViewsCreateRequestDataFilters,
|
|
94
106
|
ViewsCreateRequestDataFiltersConjunction,
|
|
95
107
|
ViewsCreateRequestDataFiltersItemsItem,
|
|
108
|
+
ViewsCreateRequestDataFiltersItemsItemFilter,
|
|
109
|
+
ViewsCreateRequestDataFiltersItemsItemOperator,
|
|
96
110
|
ViewsCreateRequestDataOrderingItem,
|
|
97
|
-
ViewsCreateRequestDataOrderingItemDirection,
|
|
98
111
|
ViewsUpdateRequestData,
|
|
99
112
|
ViewsUpdateRequestDataFilters,
|
|
100
113
|
ViewsUpdateRequestDataFiltersConjunction,
|
|
101
114
|
ViewsUpdateRequestDataFiltersItemsItem,
|
|
115
|
+
ViewsUpdateRequestDataFiltersItemsItemFilter,
|
|
116
|
+
ViewsUpdateRequestDataFiltersItemsItemOperator,
|
|
102
117
|
ViewsUpdateRequestDataOrderingItem,
|
|
103
|
-
ViewsUpdateRequestDataOrderingItemDirection,
|
|
104
118
|
)
|
|
105
119
|
from .webhooks import WebhooksUpdateRequestActionsItem
|
|
106
120
|
|
|
107
121
|
__all__ = [
|
|
122
|
+
"ActionsCreateRequestFilters",
|
|
123
|
+
"ActionsCreateRequestFiltersConjunction",
|
|
124
|
+
"ActionsCreateRequestFiltersItemsItem",
|
|
125
|
+
"ActionsCreateRequestFiltersItemsItemFilter",
|
|
126
|
+
"ActionsCreateRequestFiltersItemsItemOperator",
|
|
127
|
+
"ActionsCreateRequestId",
|
|
128
|
+
"ActionsCreateRequestOrderingItem",
|
|
129
|
+
"ActionsCreateRequestSelectedItems",
|
|
130
|
+
"ActionsCreateRequestSelectedItemsExcluded",
|
|
131
|
+
"ActionsCreateRequestSelectedItemsIncluded",
|
|
108
132
|
"Annotation",
|
|
109
133
|
"AnnotationFilterOptions",
|
|
110
134
|
"AnnotationLastAction",
|
|
@@ -179,14 +203,16 @@ __all__ = [
|
|
|
179
203
|
"ViewsCreateRequestDataFilters",
|
|
180
204
|
"ViewsCreateRequestDataFiltersConjunction",
|
|
181
205
|
"ViewsCreateRequestDataFiltersItemsItem",
|
|
206
|
+
"ViewsCreateRequestDataFiltersItemsItemFilter",
|
|
207
|
+
"ViewsCreateRequestDataFiltersItemsItemOperator",
|
|
182
208
|
"ViewsCreateRequestDataOrderingItem",
|
|
183
|
-
"ViewsCreateRequestDataOrderingItemDirection",
|
|
184
209
|
"ViewsUpdateRequestData",
|
|
185
210
|
"ViewsUpdateRequestDataFilters",
|
|
186
211
|
"ViewsUpdateRequestDataFiltersConjunction",
|
|
187
212
|
"ViewsUpdateRequestDataFiltersItemsItem",
|
|
213
|
+
"ViewsUpdateRequestDataFiltersItemsItemFilter",
|
|
214
|
+
"ViewsUpdateRequestDataFiltersItemsItemOperator",
|
|
188
215
|
"ViewsUpdateRequestDataOrderingItem",
|
|
189
|
-
"ViewsUpdateRequestDataOrderingItemDirection",
|
|
190
216
|
"Webhook",
|
|
191
217
|
"WebhookActionsItem",
|
|
192
218
|
"WebhookSerializerForUpdate",
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import typing
|
|
2
|
+
from label_studio_sdk.core.pagination import SyncPager, AsyncPager, T
|
|
3
|
+
from label_studio_sdk.core.api_error import ApiError
|
|
4
|
+
|
|
5
|
+
# This is a custom extension of the autogenerated SyncPager and AsyncPager classes
|
|
6
|
+
# that works with the Label Studio SDK's default pagination behavior
|
|
7
|
+
# that throws 404 errors at the end of the pagination.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SyncPagerExt(SyncPager, typing.Generic[T]):
|
|
11
|
+
|
|
12
|
+
@classmethod
|
|
13
|
+
def from_sync_pager(cls, sync_pager: SyncPager) -> 'SyncPagerExt':
|
|
14
|
+
return cls(
|
|
15
|
+
get_next=sync_pager.get_next,
|
|
16
|
+
has_next=sync_pager.has_next,
|
|
17
|
+
items=sync_pager.items
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
def __iter__(self) -> typing.Iterator[T]: # type: ignore
|
|
21
|
+
# Extends the iterator to catch 404 errors at the end of the pagination
|
|
22
|
+
try:
|
|
23
|
+
for item in super().__iter__():
|
|
24
|
+
yield item
|
|
25
|
+
except ApiError as exc:
|
|
26
|
+
if exc.status_code == 404:
|
|
27
|
+
return
|
|
28
|
+
raise
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class AsyncPagerExt(AsyncPager, typing.Generic[T]):
|
|
32
|
+
|
|
33
|
+
@classmethod
|
|
34
|
+
async def from_async_pager(cls, async_pager: AsyncPager) -> 'AsyncPagerExt':
|
|
35
|
+
return cls(
|
|
36
|
+
get_next=async_pager.get_next,
|
|
37
|
+
has_next=async_pager.has_next,
|
|
38
|
+
items=async_pager.items
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
async def __aiter__(self) -> typing.AsyncIterator[T]: # type: ignore
|
|
42
|
+
# Extends the iterator to catch 404 errors at the end of the pagination
|
|
43
|
+
try:
|
|
44
|
+
async for item in super().__aiter__():
|
|
45
|
+
yield item
|
|
46
|
+
except ApiError as exc:
|
|
47
|
+
if exc.status_code == 404:
|
|
48
|
+
return
|
|
49
|
+
raise
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
from typing import Type, Dict, Optional, List, Tuple, Any, Union
|
|
2
|
+
from pydantic import BaseModel, Field, confloat
|
|
3
|
+
|
|
4
|
+
from label_studio_sdk.label_interface.region import Region
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def serialize_regions(result):
|
|
8
|
+
""" """
|
|
9
|
+
res = []
|
|
10
|
+
relations = []
|
|
11
|
+
for r in result:
|
|
12
|
+
if isinstance(r, Region):
|
|
13
|
+
res.append(r._dict())
|
|
14
|
+
if r.has_relations:
|
|
15
|
+
relations.append(r._dict_relations())
|
|
16
|
+
else:
|
|
17
|
+
res.append(r)
|
|
18
|
+
|
|
19
|
+
return res + relations
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class PredictionValue(BaseModel):
|
|
23
|
+
""" """
|
|
24
|
+
|
|
25
|
+
model_version: Optional[Any] = None
|
|
26
|
+
score: Optional[float] = 0.00
|
|
27
|
+
result: Optional[List[Union[Dict[str, Any], Region]]]
|
|
28
|
+
# cluster: Optional[Any] = None
|
|
29
|
+
# neighbors: Optional[Any] = None
|
|
30
|
+
|
|
31
|
+
class Config:
|
|
32
|
+
allow_population_by_field_name = True
|
|
33
|
+
|
|
34
|
+
def serialize(self):
|
|
35
|
+
""" """
|
|
36
|
+
return {
|
|
37
|
+
"model_version": self.model_version,
|
|
38
|
+
"score": self.score,
|
|
39
|
+
"result": serialize_regions(self.result),
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class AnnotationValue(BaseModel):
|
|
44
|
+
""" """
|
|
45
|
+
|
|
46
|
+
was_cancelled: Optional[bool] = False
|
|
47
|
+
ground_truth: Optional[bool] = False
|
|
48
|
+
lead_time: Optional[float] = 0.0
|
|
49
|
+
result_count: Optional[int] = 0
|
|
50
|
+
completed_by: int
|
|
51
|
+
|
|
52
|
+
result: Optional[List[Union[Dict[str, Any], Region]]]
|
|
53
|
+
|
|
54
|
+
class Config:
|
|
55
|
+
allow_population_by_field_name = True
|
|
56
|
+
|
|
57
|
+
def serialize(self):
|
|
58
|
+
""" """
|
|
59
|
+
return {
|
|
60
|
+
"was_cancelled": self.was_cancelled,
|
|
61
|
+
"ground_truth": self.ground_truth,
|
|
62
|
+
"lead_time": self.lead_time,
|
|
63
|
+
"result_count": self.result_count,
|
|
64
|
+
"completed_by": self.completed_by,
|
|
65
|
+
"result": serialize_regions(self.result),
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class TaskValue(BaseModel):
|
|
70
|
+
""" """
|
|
71
|
+
|
|
72
|
+
data: Optional[dict]
|
|
73
|
+
annotations: Optional[List[AnnotationValue]]
|
|
74
|
+
predictions: Optional[List[PredictionValue]]
|
|
@@ -37,19 +37,19 @@
|
|
|
37
37
|
},
|
|
38
38
|
"tag_with_value_required_name": {
|
|
39
39
|
"type": "object",
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
40
|
+
"anyOf": [
|
|
41
|
+
{
|
|
42
|
+
"required": [
|
|
43
|
+
"@name",
|
|
44
|
+
"@valueList"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"required": [
|
|
49
|
+
"@name",
|
|
50
|
+
"@value"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
53
|
],
|
|
54
54
|
"properties": {
|
|
55
55
|
"@value": {
|
|
@@ -223,4 +223,4 @@
|
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
|
-
}
|
|
226
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from .types import (
|
|
4
|
+
ActionsCreateRequestFilters,
|
|
5
|
+
ActionsCreateRequestFiltersConjunction,
|
|
6
|
+
ActionsCreateRequestFiltersItemsItem,
|
|
7
|
+
ActionsCreateRequestFiltersItemsItemFilter,
|
|
8
|
+
ActionsCreateRequestFiltersItemsItemOperator,
|
|
9
|
+
ActionsCreateRequestId,
|
|
10
|
+
ActionsCreateRequestOrderingItem,
|
|
11
|
+
ActionsCreateRequestSelectedItems,
|
|
12
|
+
ActionsCreateRequestSelectedItemsExcluded,
|
|
13
|
+
ActionsCreateRequestSelectedItemsIncluded,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
__all__ = [
|
|
17
|
+
"ActionsCreateRequestFilters",
|
|
18
|
+
"ActionsCreateRequestFiltersConjunction",
|
|
19
|
+
"ActionsCreateRequestFiltersItemsItem",
|
|
20
|
+
"ActionsCreateRequestFiltersItemsItemFilter",
|
|
21
|
+
"ActionsCreateRequestFiltersItemsItemOperator",
|
|
22
|
+
"ActionsCreateRequestId",
|
|
23
|
+
"ActionsCreateRequestOrderingItem",
|
|
24
|
+
"ActionsCreateRequestSelectedItems",
|
|
25
|
+
"ActionsCreateRequestSelectedItemsExcluded",
|
|
26
|
+
"ActionsCreateRequestSelectedItemsIncluded",
|
|
27
|
+
]
|