label-studio-sdk 1.0.0__tar.gz → 1.0.2__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.
Potentially problematic release.
This version of label-studio-sdk might be problematic. Click here for more details.
- label_studio_sdk-1.0.2/PKG-INFO +195 -0
- label_studio_sdk-1.0.2/README.md +158 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/pyproject.toml +2 -2
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/__init__.py +46 -4
- label_studio_sdk-1.0.2/src/label_studio_sdk/_extensions/pager_ext.py +49 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_legacy/schema/label_config_schema.json +14 -14
- label_studio_sdk-1.0.2/src/label_studio_sdk/actions/__init__.py +29 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/actions/client.py +271 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/actions/types/__init__.py +27 -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.2/src/label_studio_sdk/actions/types/actions_create_request_filters.py +8 -12
- label_studio_sdk-1.0.2/src/label_studio_sdk/actions/types/actions_create_request_filters_conjunction.py +5 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +50 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_filter.py +31 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_operator.py +23 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +5 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/actions/types/actions_create_request_id.py +19 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/actions/types/actions_create_request_ordering_item.py +31 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/actions/types/actions_create_request_selected_items.py +10 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +39 -0
- label_studio_sdk-1.0.2/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.2/src/label_studio_sdk/base_client.py +2 -2
- label_studio_sdk-1.0.2/src/label_studio_sdk/client.py +25 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/core/client_wrapper.py +1 -1
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/core/http_client.py +5 -1
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/errors/bad_request_error.py +3 -1
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/azure/client.py +176 -10
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/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.2}/src/label_studio_sdk/export_storage/gcs/client.py +180 -14
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/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.2}/src/label_studio_sdk/export_storage/local/client.py +168 -22
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/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.2}/src/label_studio_sdk/export_storage/redis/client.py +234 -30
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/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.2}/src/label_studio_sdk/export_storage/s3/client.py +214 -26
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/s3/types/s3create_response.py +15 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/s3/types/s3update_response.py +15 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/azure/client.py +266 -90
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/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.2}/src/label_studio_sdk/import_storage/gcs/client.py +270 -94
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/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.2}/src/label_studio_sdk/import_storage/local/client.py +168 -22
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/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.2}/src/label_studio_sdk/import_storage/redis/client.py +206 -50
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/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.2}/src/label_studio_sdk/import_storage/s3/client.py +336 -110
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/s3/types/s3create_response.py +35 -25
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2/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.2/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.2/src/label_studio_sdk}/label_interface/interface.py +97 -51
- {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.2/src/label_studio_sdk}/label_interface/object_tags.py +8 -13
- label_studio_sdk-1.0.2/src/label_studio_sdk/label_interface/objects.py +60 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/label_interface/region.py +75 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/projects/client.py +6 -4
- label_studio_sdk-1.0.2/src/label_studio_sdk/projects/client_ext.py +19 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/tasks/client.py +35 -8
- label_studio_sdk-1.0.2/src/label_studio_sdk/tasks/client_ext.py +18 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/__init__.py +10 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/annotation.py +5 -5
- label_studio_sdk-1.0.2/src/label_studio_sdk/types/annotations_dm_field.py +120 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/types/annotations_dm_field_last_action.py +19 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/types/data_manager_task_serializer.py +123 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +31 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +37 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/task.py +1 -1
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/views/__init__.py +12 -4
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/views/types/__init__.py +12 -4
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/views/types/views_create_request_data.py +2 -2
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/src/label_studio_sdk/views/types/views_create_request_data_filters_conjunction.py +1 -1
- label_studio_sdk-1.0.2/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +50 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_filter.py +31 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_operator.py +23 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +5 -0
- label_studio_sdk-1.0.2/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.2}/src/label_studio_sdk/views/types/views_update_request_data.py +2 -2
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/src/label_studio_sdk/views/types/views_update_request_data_filters_conjunction.py +1 -1
- label_studio_sdk-1.0.2/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +50 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_filter.py +31 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_operator.py +23 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +5 -0
- label_studio_sdk-1.0.2/src/label_studio_sdk/views/types/views_update_request_data_ordering_item.py +31 -0
- label_studio_sdk-1.0.0/PKG-INFO +0 -307
- 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.2}/src/label_studio_sdk/_extensions/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_extensions/label_studio_tools/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_extensions/label_studio_tools/core/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/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.2}/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.2}/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.2}/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.2}/src/label_studio_sdk/_extensions/label_studio_tools/etl/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_extensions/label_studio_tools/etl/beam.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_extensions/label_studio_tools/etl/example.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_extensions/label_studio_tools/etl/registry.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/video.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_legacy/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_legacy/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_legacy/exceptions.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_legacy/project.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_legacy/users.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/_legacy/utils.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2/src/label_studio_sdk/annotations}/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/annotations/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/audio.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/brush.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/converter.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/exports/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/exports/csv.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/exports/csv2.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/funsd.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/imports/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/imports/coco.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/imports/colors.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/imports/label_config.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/imports/pathtrack.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/imports/yolo.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/main.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/converter/utils.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/core/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/core/api_error.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/core/datetime_utils.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/core/file.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/core/jsonable_encoder.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/core/pagination.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/core/pydantic_utilities.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/core/query_encoder.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/core/remove_none_from_dict.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/core/request_options.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/data_manager.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/environment.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/errors/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/errors/internal_server_error.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/azure/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/azure/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/gcs/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/gcs/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/local/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/local/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/redis/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/redis/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/s3/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/s3/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/export_storage/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2/src/label_studio_sdk/files}/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/files/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/azure/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/azure/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/gcs/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/gcs/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/local/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/local/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/redis/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/redis/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/s3/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/s3/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/import_storage/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2/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.2/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.2/src/label_studio_sdk}/label_interface/label_tags.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/ml/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/ml/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/ml/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/src/label_studio_sdk/ml/types/ml_create_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/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.2}/src/label_studio_sdk/ml/types/ml_update_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2/src/label_studio_sdk/predictions}/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/predictions/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2/src/label_studio_sdk/projects/exports}/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/projects/exports/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/projects/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/projects/types/projects_create_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/projects/types/projects_import_tasks_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/projects/types/projects_list_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/py.typed +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/tasks/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/tasks/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/tasks/types/tasks_list_request_fields.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/tasks/types/tasks_list_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/annotation_filter_options.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/annotation_last_action.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/azure_blob_export_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/azure_blob_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/azure_blob_import_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/azure_blob_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/base_task.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/base_user.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/converted_format.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/converted_format_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/export.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/export_convert.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/export_create.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/export_create_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/export_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/file_upload.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/filter.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/filter_group.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/gcs_export_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/gcs_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/gcs_import_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/gcs_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/local_files_export_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/local_files_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/local_files_import_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/local_files_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/ml_backend.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/ml_backend_auth_method.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/ml_backend_state.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/prediction.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/project.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/project_import.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/project_import_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/project_label_config.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/project_sampling.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/project_skip_queue.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/redis_export_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/redis_export_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/redis_import_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/redis_import_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/s3export_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/s3export_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/s3import_storage.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/s3import_storage_status.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/serialization_option.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/serialization_options.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/task_filter_options.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/user_simple.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/view.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/webhook.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/webhook_actions_item.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/types/webhook_serializer_for_update.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/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.2}/src/label_studio_sdk/users/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/users/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/users/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/users/types/users_get_token_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/users/types/users_reset_token_response.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/version.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/views/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/webhooks/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/webhooks/client.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/webhooks/types/__init__.py +0 -0
- {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.2}/src/label_studio_sdk/webhooks/types/webhooks_update_request_actions_item.py +0 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: label-studio-sdk
|
|
3
|
+
Version: 1.0.2
|
|
4
|
+
Summary:
|
|
5
|
+
Requires-Python: >=3.8,<4.0
|
|
6
|
+
Classifier: Intended Audience :: Developers
|
|
7
|
+
Classifier: Operating System :: MacOS
|
|
8
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: Operating System :: POSIX
|
|
11
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
12
|
+
Classifier: Programming Language :: Python
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Classifier: Typing :: Typed
|
|
21
|
+
Requires-Dist: Pillow (>=10.0.1)
|
|
22
|
+
Requires-Dist: appdirs (>=1.4.3)
|
|
23
|
+
Requires-Dist: httpx (>=0.21.2)
|
|
24
|
+
Requires-Dist: ijson (>=3.2.3)
|
|
25
|
+
Requires-Dist: jsonschema (==3.2.0)
|
|
26
|
+
Requires-Dist: lxml (>=4.2.5)
|
|
27
|
+
Requires-Dist: nltk (==3.6.7)
|
|
28
|
+
Requires-Dist: pandas (>=0.24.0)
|
|
29
|
+
Requires-Dist: pydantic (>=1.9.2)
|
|
30
|
+
Requires-Dist: requests (>=2.22.0)
|
|
31
|
+
Requires-Dist: requests-mock (==1.12.1)
|
|
32
|
+
Requires-Dist: typing_extensions (>=4.0.0)
|
|
33
|
+
Requires-Dist: ujson (>=5.8.0)
|
|
34
|
+
Requires-Dist: xmljson (==0.2.1)
|
|
35
|
+
Description-Content-Type: text/markdown
|
|
36
|
+
|
|
37
|
+
# Label Studio Python Library
|
|
38
|
+
|
|
39
|
+
<!-- Note about deprecated version <1 -->
|
|
40
|
+
---
|
|
41
|
+
> :warning: **Note**<br/>
|
|
42
|
+
>
|
|
43
|
+
> The version of `label-studio-sdk<1` is deprecated and no longer supported. We recommend updating to the latest version.
|
|
44
|
+
> If you still want to use the old version, you can install it with `pip install "label-studio-sdk<1"`.
|
|
45
|
+
> OR You can find the branch with the old version by cloning the repository and checking out the branch as follows:
|
|
46
|
+
>
|
|
47
|
+
> ```sh
|
|
48
|
+
> git clone https://github.com/HumanSignal/label-studio-sdk.git
|
|
49
|
+
> cd label-studio-sdk
|
|
50
|
+
> git checkout previous-version
|
|
51
|
+
> ```
|
|
52
|
+
>
|
|
53
|
+
> OR you can change your import statements as follows:
|
|
54
|
+
> ```python
|
|
55
|
+
> from label_studio_sdk import Client
|
|
56
|
+
> from label_studio_sdk.data_manager import Filters, Column, Operator, Type
|
|
57
|
+
> from label_studio_sdk._legacy import Project
|
|
58
|
+
> ```
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
[](https://github.com/fern-api/fern)
|
|
62
|
+
[](https://pypi.python.org/pypi/label-studio-sdk)
|
|
63
|
+
|
|
64
|
+
The Label Studio Python Library provides convenient access to the Label Studio API from applications written in Python.
|
|
65
|
+
<!-- End Title -->
|
|
66
|
+
|
|
67
|
+
<!-- Outline -->
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
# Documentation
|
|
71
|
+
Explore the Label Studio API documentation [here](https://api.labelstud.io/).
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
# Installation
|
|
75
|
+
|
|
76
|
+
```sh
|
|
77
|
+
pip install --upgrade label-studio-sdk
|
|
78
|
+
# or
|
|
79
|
+
poetry add label-studio-sdk
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
# Usage
|
|
83
|
+
|
|
84
|
+
```python
|
|
85
|
+
from label_studio_sdk.client import LabelStudio
|
|
86
|
+
|
|
87
|
+
ls = LabelStudio(
|
|
88
|
+
base_url='YOUR_LABEL_STUDIO_URL',
|
|
89
|
+
api_key="YOUR_API_KEY",
|
|
90
|
+
)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
# Examples
|
|
94
|
+
|
|
95
|
+
Check more examples [here](https://api.labelstud.io/).
|
|
96
|
+
|
|
97
|
+
## Create a new project
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
project = ls.projects.create(
|
|
101
|
+
name="Project name",
|
|
102
|
+
description="Project description",
|
|
103
|
+
label_config="""
|
|
104
|
+
<View>
|
|
105
|
+
<Image name="image" value="$image" />
|
|
106
|
+
<RectangleLabels name="label" toName="image">
|
|
107
|
+
<Label value="cat" />
|
|
108
|
+
<Label value="dog" />
|
|
109
|
+
</RectangleLabels>
|
|
110
|
+
</View>
|
|
111
|
+
"""
|
|
112
|
+
)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Create a new task
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
task = ls.tasks.create(
|
|
119
|
+
project=project.id,
|
|
120
|
+
data={"image": "https://example.com/image.jpg"}
|
|
121
|
+
)
|
|
122
|
+
```
|
|
123
|
+
Now you can open the project `PROJECT_ID` in the Label Studio UI and create annotations for the task.
|
|
124
|
+
|
|
125
|
+
## Export annotations
|
|
126
|
+
|
|
127
|
+
```python
|
|
128
|
+
annotations = [
|
|
129
|
+
task.annotations
|
|
130
|
+
for task in ls.tasks.list(project=project.id, fields='all')
|
|
131
|
+
if task.annotations
|
|
132
|
+
]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
## Async client
|
|
137
|
+
|
|
138
|
+
```python
|
|
139
|
+
from label_studio_sdk.client import AsyncLabelStudio
|
|
140
|
+
|
|
141
|
+
client = AsyncLabelStudio(
|
|
142
|
+
api_key="YOUR_API_KEY",
|
|
143
|
+
)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Advanced
|
|
147
|
+
|
|
148
|
+
### Timeouts
|
|
149
|
+
By default, requests time out after 60 seconds. You can configure this with a
|
|
150
|
+
timeout option at the client or request level.
|
|
151
|
+
|
|
152
|
+
```python
|
|
153
|
+
from label_studio_sdk.client import LabelStudio
|
|
154
|
+
|
|
155
|
+
ls = LabelStudio(
|
|
156
|
+
# All timeouts set to 20 seconds
|
|
157
|
+
timeout=20.0
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
ls.projects.create(..., {
|
|
161
|
+
# Override timeout for a specific method
|
|
162
|
+
timeout=20.0
|
|
163
|
+
})
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Custom HTTP client
|
|
167
|
+
You can override the httpx client to customize it for your use-case. Some common use-cases
|
|
168
|
+
include support for proxies and transports.
|
|
169
|
+
|
|
170
|
+
```python
|
|
171
|
+
import httpx
|
|
172
|
+
|
|
173
|
+
from label_studio_sdk.client import LabelStudio
|
|
174
|
+
|
|
175
|
+
ls = LabelStudio(
|
|
176
|
+
http_client=httpx.Client(
|
|
177
|
+
proxies="http://my.test.proxy.example.com",
|
|
178
|
+
transport=httpx.HTTPTransport(local_address="0.0.0.0"),
|
|
179
|
+
),
|
|
180
|
+
)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
<!-- Begin Contributing, generated by Fern -->
|
|
184
|
+
# Contributing
|
|
185
|
+
|
|
186
|
+
While we value open-source contributions to this SDK, this library is generated programmatically.
|
|
187
|
+
Additions made directly to this library would have to be moved over to our generation code,
|
|
188
|
+
otherwise they would be overwritten upon the next generated release. Feel free to open a PR as
|
|
189
|
+
a proof of concept, but know that we will not be able to merge it as-is. We suggest opening
|
|
190
|
+
an issue first to discuss with us!
|
|
191
|
+
|
|
192
|
+
On the other hand, contributions to the README are always very welcome!
|
|
193
|
+
<!-- End Contributing -->
|
|
194
|
+
|
|
195
|
+
|
|
@@ -0,0 +1,158 @@
|
|
|
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
|
+
[](https://pypi.python.org/pypi/label-studio-sdk)
|
|
27
|
+
|
|
28
|
+
The Label Studio Python Library provides convenient access to the Label Studio API from applications written in Python.
|
|
29
|
+
<!-- End Title -->
|
|
30
|
+
|
|
31
|
+
<!-- Outline -->
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
# Documentation
|
|
35
|
+
Explore the Label Studio API documentation [here](https://api.labelstud.io/).
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# Installation
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
pip install --upgrade label-studio-sdk
|
|
42
|
+
# or
|
|
43
|
+
poetry add label-studio-sdk
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
# Usage
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
from label_studio_sdk.client import LabelStudio
|
|
50
|
+
|
|
51
|
+
ls = LabelStudio(
|
|
52
|
+
base_url='YOUR_LABEL_STUDIO_URL',
|
|
53
|
+
api_key="YOUR_API_KEY",
|
|
54
|
+
)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
# Examples
|
|
58
|
+
|
|
59
|
+
Check more examples [here](https://api.labelstud.io/).
|
|
60
|
+
|
|
61
|
+
## Create a new project
|
|
62
|
+
|
|
63
|
+
```python
|
|
64
|
+
project = ls.projects.create(
|
|
65
|
+
name="Project name",
|
|
66
|
+
description="Project description",
|
|
67
|
+
label_config="""
|
|
68
|
+
<View>
|
|
69
|
+
<Image name="image" value="$image" />
|
|
70
|
+
<RectangleLabels name="label" toName="image">
|
|
71
|
+
<Label value="cat" />
|
|
72
|
+
<Label value="dog" />
|
|
73
|
+
</RectangleLabels>
|
|
74
|
+
</View>
|
|
75
|
+
"""
|
|
76
|
+
)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Create a new task
|
|
80
|
+
|
|
81
|
+
```python
|
|
82
|
+
task = ls.tasks.create(
|
|
83
|
+
project=project.id,
|
|
84
|
+
data={"image": "https://example.com/image.jpg"}
|
|
85
|
+
)
|
|
86
|
+
```
|
|
87
|
+
Now you can open the project `PROJECT_ID` in the Label Studio UI and create annotations for the task.
|
|
88
|
+
|
|
89
|
+
## Export annotations
|
|
90
|
+
|
|
91
|
+
```python
|
|
92
|
+
annotations = [
|
|
93
|
+
task.annotations
|
|
94
|
+
for task in ls.tasks.list(project=project.id, fields='all')
|
|
95
|
+
if task.annotations
|
|
96
|
+
]
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
## Async client
|
|
101
|
+
|
|
102
|
+
```python
|
|
103
|
+
from label_studio_sdk.client import AsyncLabelStudio
|
|
104
|
+
|
|
105
|
+
client = AsyncLabelStudio(
|
|
106
|
+
api_key="YOUR_API_KEY",
|
|
107
|
+
)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Advanced
|
|
111
|
+
|
|
112
|
+
### Timeouts
|
|
113
|
+
By default, requests time out after 60 seconds. You can configure this with a
|
|
114
|
+
timeout option at the client or request level.
|
|
115
|
+
|
|
116
|
+
```python
|
|
117
|
+
from label_studio_sdk.client import LabelStudio
|
|
118
|
+
|
|
119
|
+
ls = LabelStudio(
|
|
120
|
+
# All timeouts set to 20 seconds
|
|
121
|
+
timeout=20.0
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
ls.projects.create(..., {
|
|
125
|
+
# Override timeout for a specific method
|
|
126
|
+
timeout=20.0
|
|
127
|
+
})
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Custom HTTP client
|
|
131
|
+
You can override the httpx client to customize it for your use-case. Some common use-cases
|
|
132
|
+
include support for proxies and transports.
|
|
133
|
+
|
|
134
|
+
```python
|
|
135
|
+
import httpx
|
|
136
|
+
|
|
137
|
+
from label_studio_sdk.client import LabelStudio
|
|
138
|
+
|
|
139
|
+
ls = LabelStudio(
|
|
140
|
+
http_client=httpx.Client(
|
|
141
|
+
proxies="http://my.test.proxy.example.com",
|
|
142
|
+
transport=httpx.HTTPTransport(local_address="0.0.0.0"),
|
|
143
|
+
),
|
|
144
|
+
)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
<!-- Begin Contributing, generated by Fern -->
|
|
148
|
+
# Contributing
|
|
149
|
+
|
|
150
|
+
While we value open-source contributions to this SDK, this library is generated programmatically.
|
|
151
|
+
Additions made directly to this library would have to be moved over to our generation code,
|
|
152
|
+
otherwise they would be overwritten upon the next generated release. Feel free to open a PR as
|
|
153
|
+
a proof of concept, but know that we will not be able to merge it as-is. We suggest opening
|
|
154
|
+
an issue first to discuss with us!
|
|
155
|
+
|
|
156
|
+
On the other hand, contributions to the README are always very welcome!
|
|
157
|
+
<!-- End Contributing -->
|
|
158
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "label-studio-sdk"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.2"
|
|
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"
|
|
@@ -4,6 +4,8 @@ from .types import (
|
|
|
4
4
|
Annotation,
|
|
5
5
|
AnnotationFilterOptions,
|
|
6
6
|
AnnotationLastAction,
|
|
7
|
+
AnnotationsDmField,
|
|
8
|
+
AnnotationsDmFieldLastAction,
|
|
7
9
|
AzureBlobExportStorage,
|
|
8
10
|
AzureBlobExportStorageStatus,
|
|
9
11
|
AzureBlobImportStorage,
|
|
@@ -12,6 +14,9 @@ from .types import (
|
|
|
12
14
|
BaseUser,
|
|
13
15
|
ConvertedFormat,
|
|
14
16
|
ConvertedFormatStatus,
|
|
17
|
+
DataManagerTaskSerializer,
|
|
18
|
+
DataManagerTaskSerializerDraftsItem,
|
|
19
|
+
DataManagerTaskSerializerPredictionsItem,
|
|
15
20
|
Export,
|
|
16
21
|
ExportConvert,
|
|
17
22
|
ExportCreate,
|
|
@@ -73,6 +78,19 @@ from . import (
|
|
|
73
78
|
webhooks,
|
|
74
79
|
)
|
|
75
80
|
from ._legacy import Client
|
|
81
|
+
from .actions import (
|
|
82
|
+
ActionsCreateRequestFilters,
|
|
83
|
+
ActionsCreateRequestFiltersConjunction,
|
|
84
|
+
ActionsCreateRequestFiltersItemsItem,
|
|
85
|
+
ActionsCreateRequestFiltersItemsItemFilter,
|
|
86
|
+
ActionsCreateRequestFiltersItemsItemOperator,
|
|
87
|
+
ActionsCreateRequestFiltersItemsItemValue,
|
|
88
|
+
ActionsCreateRequestId,
|
|
89
|
+
ActionsCreateRequestOrderingItem,
|
|
90
|
+
ActionsCreateRequestSelectedItems,
|
|
91
|
+
ActionsCreateRequestSelectedItemsExcluded,
|
|
92
|
+
ActionsCreateRequestSelectedItemsIncluded,
|
|
93
|
+
)
|
|
76
94
|
from .environment import LabelStudioEnvironment
|
|
77
95
|
from .export_storage import ExportStorageListTypesResponseItem
|
|
78
96
|
from .import_storage import ImportStorageListTypesResponseItem
|
|
@@ -93,21 +111,38 @@ from .views import (
|
|
|
93
111
|
ViewsCreateRequestDataFilters,
|
|
94
112
|
ViewsCreateRequestDataFiltersConjunction,
|
|
95
113
|
ViewsCreateRequestDataFiltersItemsItem,
|
|
114
|
+
ViewsCreateRequestDataFiltersItemsItemFilter,
|
|
115
|
+
ViewsCreateRequestDataFiltersItemsItemOperator,
|
|
116
|
+
ViewsCreateRequestDataFiltersItemsItemValue,
|
|
96
117
|
ViewsCreateRequestDataOrderingItem,
|
|
97
|
-
ViewsCreateRequestDataOrderingItemDirection,
|
|
98
118
|
ViewsUpdateRequestData,
|
|
99
119
|
ViewsUpdateRequestDataFilters,
|
|
100
120
|
ViewsUpdateRequestDataFiltersConjunction,
|
|
101
121
|
ViewsUpdateRequestDataFiltersItemsItem,
|
|
122
|
+
ViewsUpdateRequestDataFiltersItemsItemFilter,
|
|
123
|
+
ViewsUpdateRequestDataFiltersItemsItemOperator,
|
|
124
|
+
ViewsUpdateRequestDataFiltersItemsItemValue,
|
|
102
125
|
ViewsUpdateRequestDataOrderingItem,
|
|
103
|
-
ViewsUpdateRequestDataOrderingItemDirection,
|
|
104
126
|
)
|
|
105
127
|
from .webhooks import WebhooksUpdateRequestActionsItem
|
|
106
128
|
|
|
107
129
|
__all__ = [
|
|
130
|
+
"ActionsCreateRequestFilters",
|
|
131
|
+
"ActionsCreateRequestFiltersConjunction",
|
|
132
|
+
"ActionsCreateRequestFiltersItemsItem",
|
|
133
|
+
"ActionsCreateRequestFiltersItemsItemFilter",
|
|
134
|
+
"ActionsCreateRequestFiltersItemsItemOperator",
|
|
135
|
+
"ActionsCreateRequestFiltersItemsItemValue",
|
|
136
|
+
"ActionsCreateRequestId",
|
|
137
|
+
"ActionsCreateRequestOrderingItem",
|
|
138
|
+
"ActionsCreateRequestSelectedItems",
|
|
139
|
+
"ActionsCreateRequestSelectedItemsExcluded",
|
|
140
|
+
"ActionsCreateRequestSelectedItemsIncluded",
|
|
108
141
|
"Annotation",
|
|
109
142
|
"AnnotationFilterOptions",
|
|
110
143
|
"AnnotationLastAction",
|
|
144
|
+
"AnnotationsDmField",
|
|
145
|
+
"AnnotationsDmFieldLastAction",
|
|
111
146
|
"AzureBlobExportStorage",
|
|
112
147
|
"AzureBlobExportStorageStatus",
|
|
113
148
|
"AzureBlobImportStorage",
|
|
@@ -118,6 +153,9 @@ __all__ = [
|
|
|
118
153
|
"Client",
|
|
119
154
|
"ConvertedFormat",
|
|
120
155
|
"ConvertedFormatStatus",
|
|
156
|
+
"DataManagerTaskSerializer",
|
|
157
|
+
"DataManagerTaskSerializerDraftsItem",
|
|
158
|
+
"DataManagerTaskSerializerPredictionsItem",
|
|
121
159
|
"Export",
|
|
122
160
|
"ExportConvert",
|
|
123
161
|
"ExportCreate",
|
|
@@ -179,14 +217,18 @@ __all__ = [
|
|
|
179
217
|
"ViewsCreateRequestDataFilters",
|
|
180
218
|
"ViewsCreateRequestDataFiltersConjunction",
|
|
181
219
|
"ViewsCreateRequestDataFiltersItemsItem",
|
|
220
|
+
"ViewsCreateRequestDataFiltersItemsItemFilter",
|
|
221
|
+
"ViewsCreateRequestDataFiltersItemsItemOperator",
|
|
222
|
+
"ViewsCreateRequestDataFiltersItemsItemValue",
|
|
182
223
|
"ViewsCreateRequestDataOrderingItem",
|
|
183
|
-
"ViewsCreateRequestDataOrderingItemDirection",
|
|
184
224
|
"ViewsUpdateRequestData",
|
|
185
225
|
"ViewsUpdateRequestDataFilters",
|
|
186
226
|
"ViewsUpdateRequestDataFiltersConjunction",
|
|
187
227
|
"ViewsUpdateRequestDataFiltersItemsItem",
|
|
228
|
+
"ViewsUpdateRequestDataFiltersItemsItemFilter",
|
|
229
|
+
"ViewsUpdateRequestDataFiltersItemsItemOperator",
|
|
230
|
+
"ViewsUpdateRequestDataFiltersItemsItemValue",
|
|
188
231
|
"ViewsUpdateRequestDataOrderingItem",
|
|
189
|
-
"ViewsUpdateRequestDataOrderingItemDirection",
|
|
190
232
|
"Webhook",
|
|
191
233
|
"WebhookActionsItem",
|
|
192
234
|
"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
|
|
@@ -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,29 @@
|
|
|
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
|
+
ActionsCreateRequestFiltersItemsItemValue,
|
|
10
|
+
ActionsCreateRequestId,
|
|
11
|
+
ActionsCreateRequestOrderingItem,
|
|
12
|
+
ActionsCreateRequestSelectedItems,
|
|
13
|
+
ActionsCreateRequestSelectedItemsExcluded,
|
|
14
|
+
ActionsCreateRequestSelectedItemsIncluded,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
__all__ = [
|
|
18
|
+
"ActionsCreateRequestFilters",
|
|
19
|
+
"ActionsCreateRequestFiltersConjunction",
|
|
20
|
+
"ActionsCreateRequestFiltersItemsItem",
|
|
21
|
+
"ActionsCreateRequestFiltersItemsItemFilter",
|
|
22
|
+
"ActionsCreateRequestFiltersItemsItemOperator",
|
|
23
|
+
"ActionsCreateRequestFiltersItemsItemValue",
|
|
24
|
+
"ActionsCreateRequestId",
|
|
25
|
+
"ActionsCreateRequestOrderingItem",
|
|
26
|
+
"ActionsCreateRequestSelectedItems",
|
|
27
|
+
"ActionsCreateRequestSelectedItemsExcluded",
|
|
28
|
+
"ActionsCreateRequestSelectedItemsIncluded",
|
|
29
|
+
]
|