superannotate 4.5.8__tar.gz → 4.6.0__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.
- {superannotate-4.5.8/src/superannotate.egg-info → superannotate-4.6.0}/PKG-INFO +8 -35
- {superannotate-4.5.8 → superannotate-4.6.0}/README.rst +4 -31
- {superannotate-4.5.8 → superannotate-4.6.0}/requirements.txt +3 -3
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/__init__.py +1 -1
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_converter.py +1 -1
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/base_interface.py +10 -7
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/cli_interface.py +3 -3
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/sdk_interface.py +189 -169
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/__init__.py +34 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/base.py +13 -1
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/serviceproviders.py +69 -39
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/__init__.py +1 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/annotations.py +21 -15
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/projects.py +0 -18
- superannotate-4.6.0/src/superannotate/lib/core/usecases/work_management.py +397 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/controller.py +73 -29
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/serviceprovider.py +20 -8
- superannotate-4.6.0/src/superannotate/lib/infrastructure/services/auth.py +139 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/http_client.py +11 -7
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/work_management.py +40 -5
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/utils.py +56 -14
- {superannotate-4.5.8 → superannotate-4.6.0/src/superannotate.egg-info}/PKG-INFO +8 -35
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate.egg-info/SOURCES.txt +2 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate.egg-info/requires.txt +3 -3
- {superannotate-4.5.8 → superannotate-4.6.0}/LICENSE +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/MANIFEST.in +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/setup.cfg +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/setup.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/analytics/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/analytics/aggregators.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/analytics/common.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/bin/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/bin/superannotate.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/common.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/exceptions.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/helpers.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/conversion.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/baseStrategy.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/coco_converters/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_api.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_strategies.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_to_sa_vector.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/coco_converters/sa_vector_to_coco.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/converters.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/dataloop_converters/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_helper.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_strategies.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_to_sa_vector.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/googlecloud_strategies.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/googlecloud_to_sa_vector.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/labelbox_converters/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_helper.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_to_sa_vector.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/sa_json_helper.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_strategies.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_to_sa_vector.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/supervisely_converters/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_helper.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_strategies.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_to_sa_vector.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vgg_converters/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_helper.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_strategies.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_to_sa_vector.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/voc_converters/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_helper.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_strategies.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_pixel.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_vector.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vott_converters/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vott_converters/vott_strategies.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vott_converters/vott_to_sa_vector.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/yolo_converters/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/yolo_converters/yolo_strategies.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/yolo_converters/yolo_to_sa_vector.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/export_from_sa_conversions.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/import_to_sa_conversions.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/responses.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/sdk/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/sdk/folders.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/sdk/project.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/types.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/serializers.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/base_usecases.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/conditions.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/config.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/classes.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/filters.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/folder.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/integrations.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/items.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/multimodal_form.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/project.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/project_entities.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/work_managament.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/enums.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/exceptions.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/jsx_conditions.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/plugin.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/reporter.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/repositories.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/response.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/service_types.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/types.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/base.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/classes.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/custom_fields.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/folders.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/images.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/integrations.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/items.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/models.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/utils.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/video_convertor.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/annotation_adapter.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/custom_entities.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/helpers.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/query_builder.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/repositories.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/__init__.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/annotation.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/annotation_class.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/explore.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/folder.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/integration.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/item.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/item_service.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/project.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/telemetry_scoring.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/stream_data_handler.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/validators.py +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate.egg-info/dependency_links.txt +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate.egg-info/entry_points.txt +0 -0
- {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: superannotate
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.6.0
|
|
4
4
|
Summary: Python SDK to SuperAnnotate platform
|
|
5
5
|
Home-page: https://github.com/superannotateai/superannotate-python-sdk
|
|
6
6
|
Author: SuperAnnotate AI
|
|
@@ -19,17 +19,17 @@ Description-Content-Type: text/x-rst
|
|
|
19
19
|
License-File: LICENSE
|
|
20
20
|
Requires-Dist: pydantic~=2.5
|
|
21
21
|
Requires-Dist: pydantic-extra-types~=2.11
|
|
22
|
-
Requires-Dist: aiohttp~=3.
|
|
22
|
+
Requires-Dist: aiohttp~=3.14
|
|
23
23
|
Requires-Dist: boto3~=1.42
|
|
24
24
|
Requires-Dist: opencv-python-headless~=4.7
|
|
25
25
|
Requires-Dist: plotly~=6.5
|
|
26
26
|
Requires-Dist: pandas~=2.0
|
|
27
|
-
Requires-Dist: pillow~=12.
|
|
27
|
+
Requires-Dist: pillow~=12.3
|
|
28
28
|
Requires-Dist: tqdm~=4.66
|
|
29
29
|
Requires-Dist: requests~=2.33
|
|
30
30
|
Requires-Dist: aiofiles~=25.1
|
|
31
31
|
Requires-Dist: fire~=0.7
|
|
32
|
-
Requires-Dist: mixpanel
|
|
32
|
+
Requires-Dist: mixpanel==5.1.0
|
|
33
33
|
Requires-Dist: typing_extensions~=4.15
|
|
34
34
|
Requires-Dist: superannotate-schemas==1.0.49
|
|
35
35
|
|
|
@@ -66,7 +66,7 @@ Authentication
|
|
|
66
66
|
# by environment variable SA_TOKEN
|
|
67
67
|
sa_client = SAClient()
|
|
68
68
|
# by token
|
|
69
|
-
sa_client = SAClient(token='<
|
|
69
|
+
sa_client = SAClient(token='<API key>')
|
|
70
70
|
# by config file
|
|
71
71
|
# default path is ~/.superannotate/config.ini
|
|
72
72
|
sa_client = SAClient(config_path='~/.superannotate/dev_config.ini')
|
|
@@ -77,8 +77,9 @@ config.ini example
|
|
|
77
77
|
.. code-block:: python
|
|
78
78
|
|
|
79
79
|
[DEFAULT]
|
|
80
|
-
SA_TOKEN = <
|
|
80
|
+
SA_TOKEN = <API key>
|
|
81
81
|
LOGGING_LEVEL = INFO
|
|
82
|
+
LOGGING_PATH = /Users/username/data/superannotate_logs
|
|
82
83
|
|
|
83
84
|
|
|
84
85
|
Using superannotate
|
|
@@ -89,7 +90,7 @@ Using superannotate
|
|
|
89
90
|
from superannotate import SAClient
|
|
90
91
|
|
|
91
92
|
|
|
92
|
-
sa_client =SAClient()
|
|
93
|
+
sa_client = SAClient()
|
|
93
94
|
|
|
94
95
|
project = 'Dogs'
|
|
95
96
|
|
|
@@ -145,34 +146,6 @@ Windows (`Anaconda <https://www.anaconda.com/products/individual#windows>`__
|
|
|
145
146
|
) platforms.
|
|
146
147
|
|
|
147
148
|
|
|
148
|
-
Supported Features
|
|
149
|
-
------------------
|
|
150
|
-
|
|
151
|
-
- search/get/create/clone/update/delete projects
|
|
152
|
-
- search/get/create/delete folders
|
|
153
|
-
- assign folders to project contributors
|
|
154
|
-
- upload items to a project from a local or AWS S3 folder
|
|
155
|
-
- attach items by URL or from an integrated storage, meanwhile keeping them secure in your cloud provider
|
|
156
|
-
- get integrated cloud storages
|
|
157
|
-
- upload annotations (also from local or AWS S3 folder)
|
|
158
|
-
- delete annotations
|
|
159
|
-
- set items annotations statuses
|
|
160
|
-
- get/download/export annotations from a project (also to a local or AWS S3 folder)
|
|
161
|
-
- invite/search team contributors or add contributors to a specific project
|
|
162
|
-
- search/get/copy/move items in a project
|
|
163
|
-
- query items using SA Query Language
|
|
164
|
-
- define custom metadata for items and upload custom values (query based on your custom metadata)
|
|
165
|
-
- upload priority scores
|
|
166
|
-
- get available subsets (sets of segregated items), query items in a subset or add items to a subset
|
|
167
|
-
- assign or anassign items to project contributors
|
|
168
|
-
- download an image that has been uploaded to project
|
|
169
|
-
- search/create/download/delete project annotation classes
|
|
170
|
-
- search/download models
|
|
171
|
-
- run predictions
|
|
172
|
-
- convert annotations from/to COCO format
|
|
173
|
-
- convert annotation from VOC, SuperVisely, LabelBox, DataLoop, VGG, VoTT, SageMaker, GoogleCloud, YOLO formats
|
|
174
|
-
- CLI commands for simple tasks
|
|
175
|
-
|
|
176
149
|
Questions and Issues
|
|
177
150
|
--------------------
|
|
178
151
|
|
|
@@ -31,7 +31,7 @@ Authentication
|
|
|
31
31
|
# by environment variable SA_TOKEN
|
|
32
32
|
sa_client = SAClient()
|
|
33
33
|
# by token
|
|
34
|
-
sa_client = SAClient(token='<
|
|
34
|
+
sa_client = SAClient(token='<API key>')
|
|
35
35
|
# by config file
|
|
36
36
|
# default path is ~/.superannotate/config.ini
|
|
37
37
|
sa_client = SAClient(config_path='~/.superannotate/dev_config.ini')
|
|
@@ -42,8 +42,9 @@ config.ini example
|
|
|
42
42
|
.. code-block:: python
|
|
43
43
|
|
|
44
44
|
[DEFAULT]
|
|
45
|
-
SA_TOKEN = <
|
|
45
|
+
SA_TOKEN = <API key>
|
|
46
46
|
LOGGING_LEVEL = INFO
|
|
47
|
+
LOGGING_PATH = /Users/username/data/superannotate_logs
|
|
47
48
|
|
|
48
49
|
|
|
49
50
|
Using superannotate
|
|
@@ -54,7 +55,7 @@ Using superannotate
|
|
|
54
55
|
from superannotate import SAClient
|
|
55
56
|
|
|
56
57
|
|
|
57
|
-
sa_client =SAClient()
|
|
58
|
+
sa_client = SAClient()
|
|
58
59
|
|
|
59
60
|
project = 'Dogs'
|
|
60
61
|
|
|
@@ -110,34 +111,6 @@ Windows (`Anaconda <https://www.anaconda.com/products/individual#windows>`__
|
|
|
110
111
|
) platforms.
|
|
111
112
|
|
|
112
113
|
|
|
113
|
-
Supported Features
|
|
114
|
-
------------------
|
|
115
|
-
|
|
116
|
-
- search/get/create/clone/update/delete projects
|
|
117
|
-
- search/get/create/delete folders
|
|
118
|
-
- assign folders to project contributors
|
|
119
|
-
- upload items to a project from a local or AWS S3 folder
|
|
120
|
-
- attach items by URL or from an integrated storage, meanwhile keeping them secure in your cloud provider
|
|
121
|
-
- get integrated cloud storages
|
|
122
|
-
- upload annotations (also from local or AWS S3 folder)
|
|
123
|
-
- delete annotations
|
|
124
|
-
- set items annotations statuses
|
|
125
|
-
- get/download/export annotations from a project (also to a local or AWS S3 folder)
|
|
126
|
-
- invite/search team contributors or add contributors to a specific project
|
|
127
|
-
- search/get/copy/move items in a project
|
|
128
|
-
- query items using SA Query Language
|
|
129
|
-
- define custom metadata for items and upload custom values (query based on your custom metadata)
|
|
130
|
-
- upload priority scores
|
|
131
|
-
- get available subsets (sets of segregated items), query items in a subset or add items to a subset
|
|
132
|
-
- assign or anassign items to project contributors
|
|
133
|
-
- download an image that has been uploaded to project
|
|
134
|
-
- search/create/download/delete project annotation classes
|
|
135
|
-
- search/download models
|
|
136
|
-
- run predictions
|
|
137
|
-
- convert annotations from/to COCO format
|
|
138
|
-
- convert annotation from VOC, SuperVisely, LabelBox, DataLoop, VGG, VoTT, SageMaker, GoogleCloud, YOLO formats
|
|
139
|
-
- CLI commands for simple tasks
|
|
140
|
-
|
|
141
114
|
Questions and Issues
|
|
142
115
|
--------------------
|
|
143
116
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
pydantic~=2.5
|
|
2
2
|
pydantic-extra-types~=2.11
|
|
3
|
-
aiohttp~=3.
|
|
3
|
+
aiohttp~=3.14
|
|
4
4
|
boto3~=1.42
|
|
5
5
|
opencv-python-headless~=4.7
|
|
6
6
|
plotly~=6.5
|
|
7
7
|
pandas~=2.0
|
|
8
|
-
pillow~=12.
|
|
8
|
+
pillow~=12.3
|
|
9
9
|
tqdm~=4.66
|
|
10
10
|
requests~=2.33
|
|
11
11
|
aiofiles~=25.1
|
|
12
12
|
fire~=0.7
|
|
13
|
-
mixpanel
|
|
13
|
+
mixpanel==5.1.0
|
|
14
14
|
typing_extensions~=4.15
|
|
15
15
|
superannotate-schemas==1.0.49
|
{superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/base_interface.py
RENAMED
|
@@ -58,12 +58,11 @@ class BaseInterfaceFacade:
|
|
|
58
58
|
)
|
|
59
59
|
else:
|
|
60
60
|
raise AppException(
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
"Credentials not found: SA_TOKEN environment variable is not set and "
|
|
62
|
+
f"config file '{constants.CONFIG_INI_FILE_LOCATION}' was not found."
|
|
63
|
+
) from None
|
|
63
64
|
except ValidationError as e:
|
|
64
65
|
raise AppException(wrap_error(e))
|
|
65
|
-
except KeyError:
|
|
66
|
-
raise
|
|
67
66
|
if not config:
|
|
68
67
|
raise AppException("Credentials not provided.")
|
|
69
68
|
setup_logging(config.LOGGING_LEVEL, config.LOGGING_PATH)
|
|
@@ -125,11 +124,14 @@ class Tracker:
|
|
|
125
124
|
|
|
126
125
|
@staticmethod
|
|
127
126
|
@lru_cache
|
|
128
|
-
def get_default_payload(team_name, user_email):
|
|
127
|
+
def get_default_payload(team_name, user_email, auth_type):
|
|
129
128
|
return {
|
|
130
129
|
"SDK": True,
|
|
131
130
|
"Team": team_name,
|
|
132
131
|
"User Email": user_email,
|
|
132
|
+
# How the client authenticated: "sdk" for a legacy team token,
|
|
133
|
+
# "api_key" for a scoped API key.
|
|
134
|
+
"Auth Type": auth_type,
|
|
133
135
|
"Version": os.environ["sa_version"],
|
|
134
136
|
"Python version": platform.python_version(),
|
|
135
137
|
"Python interpreter type": platform.python_implementation(),
|
|
@@ -206,11 +208,12 @@ class Tracker:
|
|
|
206
208
|
arguments = self.extract_arguments(self.function, *args, **kwargs)
|
|
207
209
|
event_name, properties = self.default_parser(function_name, arguments)
|
|
208
210
|
user_email = client.controller.current_user.email
|
|
209
|
-
team_name = client.controller.
|
|
211
|
+
team_name = client.controller.team_name
|
|
212
|
+
auth_type = client.controller.token_context.auth_type
|
|
210
213
|
|
|
211
214
|
properties["Success"] = success
|
|
212
215
|
default = self.get_default_payload(
|
|
213
|
-
team_name=team_name, user_email=user_email
|
|
216
|
+
team_name=team_name, user_email=user_email, auth_type=auth_type
|
|
214
217
|
)
|
|
215
218
|
self._track(
|
|
216
219
|
user_email,
|
{superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/cli_interface.py
RENAMED
|
@@ -33,10 +33,10 @@ class CLIFacade:
|
|
|
33
33
|
logging_path: str = constances.LOG_FILE_LOCATION,
|
|
34
34
|
):
|
|
35
35
|
"""
|
|
36
|
-
To initialize CLI (and SDK) with
|
|
37
|
-
|
|
36
|
+
To initialize CLI (and SDK) with API key.
|
|
37
|
+
The API key is available on the team setup page, for more details please visit our documentation at https://doc.superannotate.com/docs/api-keys.
|
|
38
38
|
|
|
39
|
-
:param token: the
|
|
39
|
+
:param token: the API key
|
|
40
40
|
:type token: str
|
|
41
41
|
|
|
42
42
|
:param logging_level: logging level, default is "INFO"
|