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.
Files changed (143) hide show
  1. {superannotate-4.5.8/src/superannotate.egg-info → superannotate-4.6.0}/PKG-INFO +8 -35
  2. {superannotate-4.5.8 → superannotate-4.6.0}/README.rst +4 -31
  3. {superannotate-4.5.8 → superannotate-4.6.0}/requirements.txt +3 -3
  4. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/__init__.py +1 -1
  5. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_converter.py +1 -1
  6. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/base_interface.py +10 -7
  7. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/cli_interface.py +3 -3
  8. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/sdk_interface.py +189 -169
  9. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/__init__.py +34 -0
  10. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/base.py +13 -1
  11. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/serviceproviders.py +69 -39
  12. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/__init__.py +1 -0
  13. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/annotations.py +21 -15
  14. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/projects.py +0 -18
  15. superannotate-4.6.0/src/superannotate/lib/core/usecases/work_management.py +397 -0
  16. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/controller.py +73 -29
  17. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/serviceprovider.py +20 -8
  18. superannotate-4.6.0/src/superannotate/lib/infrastructure/services/auth.py +139 -0
  19. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/http_client.py +11 -7
  20. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/work_management.py +40 -5
  21. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/utils.py +56 -14
  22. {superannotate-4.5.8 → superannotate-4.6.0/src/superannotate.egg-info}/PKG-INFO +8 -35
  23. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate.egg-info/SOURCES.txt +2 -0
  24. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate.egg-info/requires.txt +3 -3
  25. {superannotate-4.5.8 → superannotate-4.6.0}/LICENSE +0 -0
  26. {superannotate-4.5.8 → superannotate-4.6.0}/MANIFEST.in +0 -0
  27. {superannotate-4.5.8 → superannotate-4.6.0}/setup.cfg +0 -0
  28. {superannotate-4.5.8 → superannotate-4.6.0}/setup.py +0 -0
  29. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/__init__.py +0 -0
  30. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/__init__.py +0 -0
  31. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/analytics/__init__.py +0 -0
  32. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/analytics/aggregators.py +0 -0
  33. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/analytics/common.py +0 -0
  34. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/bin/__init__.py +0 -0
  35. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/bin/superannotate.py +0 -0
  36. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/common.py +0 -0
  37. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/exceptions.py +0 -0
  38. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/helpers.py +0 -0
  39. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/__init__.py +0 -0
  40. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/conversion.py +0 -0
  41. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/__init__.py +0 -0
  42. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/baseStrategy.py +0 -0
  43. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/coco_converters/__init__.py +0 -0
  44. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_api.py +0 -0
  45. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_strategies.py +0 -0
  46. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_to_sa_vector.py +0 -0
  47. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/coco_converters/sa_vector_to_coco.py +0 -0
  48. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/converters.py +0 -0
  49. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/dataloop_converters/__init__.py +0 -0
  50. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_helper.py +0 -0
  51. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_strategies.py +0 -0
  52. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_to_sa_vector.py +0 -0
  53. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/__init__.py +0 -0
  54. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/googlecloud_strategies.py +0 -0
  55. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/googlecloud_to_sa_vector.py +0 -0
  56. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/labelbox_converters/__init__.py +0 -0
  57. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_helper.py +0 -0
  58. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_to_sa_vector.py +0 -0
  59. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/sa_json_helper.py +0 -0
  60. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/__init__.py +0 -0
  61. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_strategies.py +0 -0
  62. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_to_sa_vector.py +0 -0
  63. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/supervisely_converters/__init__.py +0 -0
  64. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_helper.py +0 -0
  65. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_strategies.py +0 -0
  66. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_to_sa_vector.py +0 -0
  67. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vgg_converters/__init__.py +0 -0
  68. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_helper.py +0 -0
  69. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_strategies.py +0 -0
  70. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_to_sa_vector.py +0 -0
  71. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/voc_converters/__init__.py +0 -0
  72. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_helper.py +0 -0
  73. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_strategies.py +0 -0
  74. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_pixel.py +0 -0
  75. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_vector.py +0 -0
  76. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vott_converters/__init__.py +0 -0
  77. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vott_converters/vott_strategies.py +0 -0
  78. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/vott_converters/vott_to_sa_vector.py +0 -0
  79. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/yolo_converters/__init__.py +0 -0
  80. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/yolo_converters/yolo_strategies.py +0 -0
  81. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/converters/yolo_converters/yolo_to_sa_vector.py +0 -0
  82. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/export_from_sa_conversions.py +0 -0
  83. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/input_converters/import_to_sa_conversions.py +0 -0
  84. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/__init__.py +0 -0
  85. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/responses.py +0 -0
  86. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/sdk/__init__.py +0 -0
  87. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/sdk/folders.py +0 -0
  88. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/sdk/project.py +0 -0
  89. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/interface/types.py +0 -0
  90. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/app/serializers.py +0 -0
  91. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/base_usecases.py +0 -0
  92. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/conditions.py +0 -0
  93. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/config.py +0 -0
  94. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/__init__.py +0 -0
  95. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/classes.py +0 -0
  96. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/filters.py +0 -0
  97. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/folder.py +0 -0
  98. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/integrations.py +0 -0
  99. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/items.py +0 -0
  100. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/multimodal_form.py +0 -0
  101. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/project.py +0 -0
  102. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/project_entities.py +0 -0
  103. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/entities/work_managament.py +0 -0
  104. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/enums.py +0 -0
  105. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/exceptions.py +0 -0
  106. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/jsx_conditions.py +0 -0
  107. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/plugin.py +0 -0
  108. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/reporter.py +0 -0
  109. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/repositories.py +0 -0
  110. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/response.py +0 -0
  111. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/service_types.py +0 -0
  112. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/types.py +0 -0
  113. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/base.py +0 -0
  114. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/classes.py +0 -0
  115. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/custom_fields.py +0 -0
  116. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/folders.py +0 -0
  117. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/images.py +0 -0
  118. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/integrations.py +0 -0
  119. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/items.py +0 -0
  120. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/usecases/models.py +0 -0
  121. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/utils.py +0 -0
  122. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/core/video_convertor.py +0 -0
  123. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/__init__.py +0 -0
  124. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/annotation_adapter.py +0 -0
  125. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/custom_entities.py +0 -0
  126. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/helpers.py +0 -0
  127. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/query_builder.py +0 -0
  128. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/repositories.py +0 -0
  129. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/__init__.py +0 -0
  130. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/annotation.py +0 -0
  131. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/annotation_class.py +0 -0
  132. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/explore.py +0 -0
  133. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/folder.py +0 -0
  134. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/integration.py +0 -0
  135. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/item.py +0 -0
  136. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/item_service.py +0 -0
  137. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/project.py +0 -0
  138. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/services/telemetry_scoring.py +0 -0
  139. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/stream_data_handler.py +0 -0
  140. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate/lib/infrastructure/validators.py +0 -0
  141. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate.egg-info/dependency_links.txt +0 -0
  142. {superannotate-4.5.8 → superannotate-4.6.0}/src/superannotate.egg-info/entry_points.txt +0 -0
  143. {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.5.8
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.8
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.1
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~=5.1
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='<team 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 = <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='<team 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 = <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.8
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.1
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~=5.1
13
+ mixpanel==5.1.0
14
14
  typing_extensions~=4.15
15
15
  superannotate-schemas==1.0.49
@@ -2,7 +2,7 @@ import logging
2
2
  import os
3
3
  import sys
4
4
 
5
- __version__ = "4.5.8"
5
+ __version__ = "4.6.0"
6
6
 
7
7
 
8
8
  os.environ.update({"sa_version": __version__})
@@ -199,7 +199,7 @@ class CocoBaseStrategy(baseStrategy):
199
199
  else:
200
200
  try:
201
201
  img = Image.open(image_path)
202
- img_width, img_height = img.size()
202
+ img_width, img_height = img.size
203
203
  except Exception as e:
204
204
  raise
205
205
 
@@ -58,12 +58,11 @@ class BaseInterfaceFacade:
58
58
  )
59
59
  else:
60
60
  raise AppException(
61
- f"SuperAnnotate config file {constants.CONFIG_INI_FILE_LOCATION} not found."
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.team_data.name
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,
@@ -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 team token
37
- Input the team SDK token from https://app.superannotate.com/team
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 team token
39
+ :param token: the API key
40
40
  :type token: str
41
41
 
42
42
  :param logging_level: logging level, default is "INFO"