superannotate 4.5.5.dev3__tar.gz → 4.5.6.dev1__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 (141) hide show
  1. {superannotate-4.5.5.dev3/src/superannotate.egg-info → superannotate-4.5.6.dev1}/PKG-INFO +1 -1
  2. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/__init__.py +1 -1
  3. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/interface/sdk_interface.py +1 -3
  4. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/__init__.py +2 -0
  5. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/usecases/annotations.py +4 -11
  6. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/utils.py +10 -0
  7. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/annotation_adapter.py +7 -0
  8. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1/src/superannotate.egg-info}/PKG-INFO +1 -1
  9. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/LICENSE +0 -0
  10. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/MANIFEST.in +0 -0
  11. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/README.rst +0 -0
  12. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/requirements.txt +0 -0
  13. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/setup.cfg +0 -0
  14. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/setup.py +0 -0
  15. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/__init__.py +0 -0
  16. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/__init__.py +0 -0
  17. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/analytics/__init__.py +0 -0
  18. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/analytics/aggregators.py +0 -0
  19. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/analytics/common.py +0 -0
  20. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/bin/__init__.py +0 -0
  21. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/bin/superannotate.py +0 -0
  22. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/common.py +0 -0
  23. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/exceptions.py +0 -0
  24. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/helpers.py +0 -0
  25. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/__init__.py +0 -0
  26. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/conversion.py +0 -0
  27. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/__init__.py +0 -0
  28. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/baseStrategy.py +0 -0
  29. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/coco_converters/__init__.py +0 -0
  30. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_api.py +0 -0
  31. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_converter.py +0 -0
  32. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_strategies.py +0 -0
  33. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_to_sa_vector.py +0 -0
  34. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/coco_converters/sa_vector_to_coco.py +0 -0
  35. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/converters.py +0 -0
  36. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/dataloop_converters/__init__.py +0 -0
  37. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_helper.py +0 -0
  38. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_strategies.py +0 -0
  39. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_to_sa_vector.py +0 -0
  40. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/__init__.py +0 -0
  41. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/googlecloud_strategies.py +0 -0
  42. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/googlecloud_to_sa_vector.py +0 -0
  43. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/labelbox_converters/__init__.py +0 -0
  44. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_helper.py +0 -0
  45. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_to_sa_vector.py +0 -0
  46. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/sa_json_helper.py +0 -0
  47. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/__init__.py +0 -0
  48. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_strategies.py +0 -0
  49. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_to_sa_vector.py +0 -0
  50. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/supervisely_converters/__init__.py +0 -0
  51. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_helper.py +0 -0
  52. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_strategies.py +0 -0
  53. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_to_sa_vector.py +0 -0
  54. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/vgg_converters/__init__.py +0 -0
  55. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_helper.py +0 -0
  56. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_strategies.py +0 -0
  57. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_to_sa_vector.py +0 -0
  58. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/voc_converters/__init__.py +0 -0
  59. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_helper.py +0 -0
  60. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_strategies.py +0 -0
  61. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_pixel.py +0 -0
  62. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_vector.py +0 -0
  63. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/vott_converters/__init__.py +0 -0
  64. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/vott_converters/vott_strategies.py +0 -0
  65. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/vott_converters/vott_to_sa_vector.py +0 -0
  66. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/yolo_converters/__init__.py +0 -0
  67. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/yolo_converters/yolo_strategies.py +0 -0
  68. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/converters/yolo_converters/yolo_to_sa_vector.py +0 -0
  69. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/export_from_sa_conversions.py +0 -0
  70. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/input_converters/import_to_sa_conversions.py +0 -0
  71. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/interface/__init__.py +0 -0
  72. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/interface/base_interface.py +0 -0
  73. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/interface/cli_interface.py +0 -0
  74. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/interface/responses.py +0 -0
  75. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/interface/sdk/__init__.py +0 -0
  76. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/interface/sdk/folders.py +0 -0
  77. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/interface/sdk/project.py +0 -0
  78. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/interface/types.py +0 -0
  79. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/app/serializers.py +0 -0
  80. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/base_usecases.py +0 -0
  81. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/conditions.py +0 -0
  82. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/config.py +0 -0
  83. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/entities/__init__.py +0 -0
  84. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/entities/base.py +0 -0
  85. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/entities/classes.py +0 -0
  86. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/entities/filters.py +0 -0
  87. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/entities/folder.py +0 -0
  88. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/entities/integrations.py +0 -0
  89. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/entities/items.py +0 -0
  90. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/entities/multimodal_form.py +0 -0
  91. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/entities/project.py +0 -0
  92. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/entities/project_entities.py +0 -0
  93. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/entities/work_managament.py +0 -0
  94. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/enums.py +0 -0
  95. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/exceptions.py +0 -0
  96. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/jsx_conditions.py +0 -0
  97. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/plugin.py +0 -0
  98. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/reporter.py +0 -0
  99. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/repositories.py +0 -0
  100. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/response.py +0 -0
  101. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/service_types.py +0 -0
  102. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/serviceproviders.py +0 -0
  103. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/types.py +0 -0
  104. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/usecases/__init__.py +0 -0
  105. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/usecases/base.py +0 -0
  106. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/usecases/classes.py +0 -0
  107. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/usecases/custom_fields.py +0 -0
  108. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/usecases/folders.py +0 -0
  109. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/usecases/images.py +0 -0
  110. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/usecases/integrations.py +0 -0
  111. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/usecases/items.py +0 -0
  112. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/usecases/models.py +0 -0
  113. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/usecases/projects.py +0 -0
  114. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/core/video_convertor.py +0 -0
  115. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/__init__.py +0 -0
  116. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/controller.py +0 -0
  117. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/custom_entities.py +0 -0
  118. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/helpers.py +0 -0
  119. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/query_builder.py +0 -0
  120. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/repositories.py +0 -0
  121. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/serviceprovider.py +0 -0
  122. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/services/__init__.py +0 -0
  123. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/services/annotation.py +0 -0
  124. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/services/annotation_class.py +0 -0
  125. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/services/explore.py +0 -0
  126. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/services/folder.py +0 -0
  127. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/services/http_client.py +0 -0
  128. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/services/integration.py +0 -0
  129. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/services/item.py +0 -0
  130. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/services/item_service.py +0 -0
  131. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/services/project.py +0 -0
  132. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/services/telemetry_scoring.py +0 -0
  133. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/services/work_management.py +0 -0
  134. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/stream_data_handler.py +0 -0
  135. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/utils.py +0 -0
  136. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate/lib/infrastructure/validators.py +0 -0
  137. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate.egg-info/SOURCES.txt +0 -0
  138. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate.egg-info/dependency_links.txt +0 -0
  139. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate.egg-info/entry_points.txt +0 -0
  140. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/src/superannotate.egg-info/requires.txt +0 -0
  141. {superannotate-4.5.5.dev3 → superannotate-4.5.6.dev1}/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.5.dev3
3
+ Version: 4.5.6.dev1
4
4
  Summary: Python SDK to SuperAnnotate platform
5
5
  Home-page: https://github.com/superannotateai/superannotate-python-sdk
6
6
  Author: SuperAnnotate AI
@@ -2,7 +2,7 @@ import logging
2
2
  import os
3
3
  import sys
4
4
 
5
- __version__ = "4.5.5dev3"
5
+ __version__ = "4.5.6dev1"
6
6
 
7
7
 
8
8
  os.environ.update({"sa_version": __version__})
@@ -96,8 +96,6 @@ PROJECT_TYPE = Literal[
96
96
  "Vector",
97
97
  "Video",
98
98
  "Document",
99
- "Tiled",
100
- "PointCloud",
101
99
  "Multimodal",
102
100
  ]
103
101
 
@@ -1409,7 +1407,7 @@ class SAClient(BaseInterfaceFacade, metaclass=TrackableMeta):
1409
1407
  :param project_description: The new project's description.
1410
1408
  :type project_description: str
1411
1409
 
1412
- :param project_type: The project type. Supported types: 'Vector', 'Video', 'Document', 'Tiled', 'PointCloud', 'Multimodal'.
1410
+ :param project_type: The project type. Supported types: 'Vector', 'Video', 'Document', 'Multimodal'.
1413
1411
  :type project_type: str
1414
1412
 
1415
1413
  :param settings: list of settings objects
@@ -184,6 +184,8 @@ PROJECT_SETTINGS_VALID_ATTRIBUTES = [
184
184
  "TemplateState",
185
185
  "CategorizeItems",
186
186
  "MaxIdleDuration",
187
+ "ItemAutoAssignOrder",
188
+ "ImageAutoAssignByCategory",
187
189
  ]
188
190
 
189
191
  __alL__ = (
@@ -9,7 +9,6 @@ import logging
9
9
  import os
10
10
  import platform
11
11
  import re
12
- import time
13
12
  import traceback
14
13
  from collections import defaultdict
15
14
  from collections.abc import Callable
@@ -47,6 +46,7 @@ from lib.core.usecases.base import BaseReportableUseCase
47
46
  from lib.core.usecases.folders import CreateFolderUseCase
48
47
  from lib.core.usecases.items import AttachItems
49
48
  from lib.core.utils import run_async
49
+ from lib.core.utils import set_last_action
50
50
  from lib.core.video_convertor import VideoFrameGenerator
51
51
  from lib.infrastructure.utils import divide_to_chunks
52
52
  from pydantic import BaseModel
@@ -876,12 +876,9 @@ class UploadAnnotationUseCase(BaseReportableUseCase):
876
876
  return use_case.execute().data
877
877
 
878
878
  @staticmethod
879
- def set_defaults(team_id, annotation_data: dict, project_type: int):
879
+ def set_defaults(user_email, annotation_data: dict, project_type: int):
880
880
  default_data = {}
881
- annotation_data["metadata"]["lastAction"] = {
882
- "email": team_id,
883
- "timestamp": int(round(time.time() * 1000)),
884
- }
881
+ set_last_action(annotation_data, user_email)
885
882
  instances = annotation_data.get("instances", [])
886
883
  if project_type in constants.ProjectType.images:
887
884
  default_data["probability"] = 100
@@ -1908,11 +1905,7 @@ class UploadMultiModalAnnotationsUseCase(BaseReportableUseCase):
1908
1905
  return self.list_items(folder, attached_item_names)
1909
1906
 
1910
1907
  def set_defaults(self, annotation: dict):
1911
- annotation["metadata"]["lastAction"] = {
1912
- "email": self._project.team_id,
1913
- "timestamp": int(round(time.time() * 1000)),
1914
- }
1915
- return annotation
1908
+ return set_last_action(annotation, self._user.email)
1916
1909
 
1917
1910
  @staticmethod
1918
1911
  def serialize_folder_name(val):
@@ -1,9 +1,19 @@
1
1
  import asyncio
2
2
  import re
3
+ import time
3
4
  import typing
4
5
  from threading import Thread
5
6
 
6
7
 
8
+ def set_last_action(annotation: dict, email: str) -> dict:
9
+ """Set ``metadata.lastAction`` on an annotation JSON in place."""
10
+ annotation.setdefault("metadata", {})["lastAction"] = {
11
+ "email": email,
12
+ "timestamp": int(round(time.time() * 1000)),
13
+ }
14
+ return annotation
15
+
16
+
7
17
  class AsyncThread(Thread):
8
18
  def __init__(
9
19
  self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None
@@ -8,6 +8,7 @@ from lib.core.entities import BaseItemEntity
8
8
  from lib.core.entities import FolderEntity
9
9
  from lib.core.entities import ProjectEntity
10
10
  from lib.core.utils import run_async
11
+ from lib.core.utils import set_last_action
11
12
  from lib.infrastructure.controller import Controller
12
13
 
13
14
 
@@ -57,6 +58,10 @@ class BaseMultimodalAnnotationAdapter(ABC):
57
58
  return annotation.get("value")
58
59
  return None
59
60
 
61
+ def set_last_action(self):
62
+ """Stamp ``metadata.lastAction`` with the current user, called on save."""
63
+ set_last_action(self.annotation, self._controller.current_user.email)
64
+
60
65
  def set_component_value(self, component_id: str, value: Any):
61
66
  data = self.annotation.setdefault("data", {})
62
67
  component_data = data.get(component_id)
@@ -116,6 +121,7 @@ class MultimodalSmallAnnotationAdapter(BaseMultimodalAnnotationAdapter):
116
121
  return self._annotation
117
122
 
118
123
  def save(self):
124
+ self.set_last_action()
119
125
  self._controller.annotations.set_item_annotations(
120
126
  project=self._project,
121
127
  folder=self._folder,
@@ -142,6 +148,7 @@ class MultimodalLargeAnnotationAdapter(BaseMultimodalAnnotationAdapter):
142
148
  return self._annotation
143
149
 
144
150
  def save(self):
151
+ self.set_last_action()
145
152
  run_async(
146
153
  self._controller.service_provider.annotations.upload_big_annotation(
147
154
  project=self._project,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: superannotate
3
- Version: 4.5.5.dev3
3
+ Version: 4.5.6.dev1
4
4
  Summary: Python SDK to SuperAnnotate platform
5
5
  Home-page: https://github.com/superannotateai/superannotate-python-sdk
6
6
  Author: SuperAnnotate AI