superb-ai-onprem 0.4.5__tar.gz → 0.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of superb-ai-onprem might be problematic. Click here for more details.

Files changed (135) hide show
  1. {superb_ai_onprem-0.4.5/superb_ai_onprem.egg-info → superb_ai_onprem-0.5.1}/PKG-INFO +1 -1
  2. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/__init__.py +2 -0
  3. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/_version.py +16 -3
  4. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/entities/__init__.py +2 -0
  5. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/entities/annotation.py +1 -1
  6. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/entities/data.py +2 -0
  7. superb_ai_onprem-0.5.1/spb_onprem/data/entities/frame.py +19 -0
  8. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/__init__.py +4 -0
  9. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/insert_annotation_version.py +3 -3
  10. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/insert_slice_annotation_version.py +4 -4
  11. superb_ai_onprem-0.5.1/spb_onprem/data/params/update_frames.py +40 -0
  12. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/update_slice_annotation_version.py +5 -5
  13. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/queries.py +34 -14
  14. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/service.py +34 -3
  15. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/entities.py +2 -0
  16. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1/superb_ai_onprem.egg-info}/PKG-INFO +1 -1
  17. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/superb_ai_onprem.egg-info/SOURCES.txt +2 -0
  18. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/.github/workflows/publish.yml +0 -0
  19. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/.gitignore +0 -0
  20. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/LICENSE +0 -0
  21. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/Pipfile +0 -0
  22. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/Pipfile.lock +0 -0
  23. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/README.md +0 -0
  24. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/pyproject.toml +0 -0
  25. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/setup.cfg +0 -0
  26. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/setup.py +0 -0
  27. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/__init__.py +0 -0
  28. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/entities/__init__.py +0 -0
  29. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/entities/activity.py +0 -0
  30. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/entities/activity_history.py +0 -0
  31. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/params/__init__.py +0 -0
  32. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/params/activities.py +0 -0
  33. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/params/activity.py +0 -0
  34. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/params/create_activity.py +0 -0
  35. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/params/delete_activity.py +0 -0
  36. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/params/get_activity_history.py +0 -0
  37. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/params/start_activity.py +0 -0
  38. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/params/update_activity.py +0 -0
  39. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/params/update_activity_history.py +0 -0
  40. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/queries.py +0 -0
  41. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/activities/service.py +0 -0
  42. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/base_model.py +0 -0
  43. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/base_service.py +0 -0
  44. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/base_types.py +0 -0
  45. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/contents/__init__.py +0 -0
  46. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/contents/entities/__init__.py +0 -0
  47. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/contents/entities/base_content.py +0 -0
  48. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/contents/entities/content.py +0 -0
  49. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/contents/queries.py +0 -0
  50. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/contents/service.py +0 -0
  51. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/__init__.py +0 -0
  52. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/entities/data_meta.py +0 -0
  53. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/entities/data_slice.py +0 -0
  54. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/entities/prediction.py +0 -0
  55. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/entities/scene.py +0 -0
  56. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/enums/__init__.py +0 -0
  57. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/enums/data_meta_type.py +0 -0
  58. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/enums/data_status.py +0 -0
  59. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/enums/data_type.py +0 -0
  60. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/enums/scene_type.py +0 -0
  61. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/change_data_labeler.py +0 -0
  62. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/change_data_reviewer.py +0 -0
  63. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/change_data_status.py +0 -0
  64. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/create_data.py +0 -0
  65. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/data.py +0 -0
  66. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/data_list.py +0 -0
  67. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/delete_annotation_version.py +0 -0
  68. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/delete_data.py +0 -0
  69. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/delete_prediction.py +0 -0
  70. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/delete_scene.py +0 -0
  71. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/delete_slice_annotation_version.py +0 -0
  72. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/insert_data_to_slice.py +0 -0
  73. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/insert_prediction.py +0 -0
  74. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/insert_scene.py +0 -0
  75. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/remove_data_from_slice.py +0 -0
  76. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/remove_data_meta.py +0 -0
  77. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/update_annotation.py +0 -0
  78. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/update_data.py +0 -0
  79. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/update_data_slice.py +0 -0
  80. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/update_scene.py +0 -0
  81. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/update_slice_annotation.py +0 -0
  82. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/data/params/upsert_data_meta.py +0 -0
  83. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/datasets/__init__.py +0 -0
  84. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/datasets/entities/__init__.py +0 -0
  85. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/datasets/entities/dataset.py +0 -0
  86. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/datasets/params/__init__.py +0 -0
  87. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/datasets/params/create_dataset.py +0 -0
  88. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/datasets/params/dataset.py +0 -0
  89. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/datasets/params/datasets.py +0 -0
  90. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/datasets/params/update_dataset.py +0 -0
  91. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/datasets/queries.py +0 -0
  92. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/datasets/service.py +0 -0
  93. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exceptions.py +0 -0
  94. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exports/__init__.py +0 -0
  95. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exports/entities/__init__.py +0 -0
  96. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exports/entities/export.py +0 -0
  97. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exports/params/__init__.py +0 -0
  98. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exports/params/create_export.py +0 -0
  99. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exports/params/delete_export.py +0 -0
  100. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exports/params/export.py +0 -0
  101. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exports/params/exports.py +0 -0
  102. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exports/params/update_export.py +0 -0
  103. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exports/queries/get_exports.py +0 -0
  104. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exports/queries.py +0 -0
  105. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/exports/service.py +0 -0
  106. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/searches.py +0 -0
  107. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/slices/__init__.py +0 -0
  108. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/slices/entities/__init__.py +0 -0
  109. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/slices/entities/slice.py +0 -0
  110. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/slices/params/__init__.py +0 -0
  111. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/slices/params/create_slice.py +0 -0
  112. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/slices/params/delete_slice.py +0 -0
  113. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/slices/params/slice.py +0 -0
  114. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/slices/params/slices.py +0 -0
  115. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/slices/params/update_slice.py +0 -0
  116. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/slices/queries.py +0 -0
  117. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/slices/service.py +0 -0
  118. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/users/__init__.py +0 -0
  119. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/users/entities/__init__.py +0 -0
  120. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/spb_onprem/users/entities/auth.py +0 -0
  121. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/superb_ai_onprem.egg-info/dependency_links.txt +0 -0
  122. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/superb_ai_onprem.egg-info/requires.txt +0 -0
  123. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/superb_ai_onprem.egg-info/top_level.txt +0 -0
  124. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/tests/__init__.py +0 -0
  125. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/tests/activities/__init__.py +0 -0
  126. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/tests/activities/real_test.py +0 -0
  127. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/tests/activities/test_get_activity_history.py +0 -0
  128. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/tests/activities/test_params.py +0 -0
  129. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/tests/activities/test_service.py +0 -0
  130. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/tests/exports/__init__.py +0 -0
  131. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/tests/exports/real_test.py +0 -0
  132. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/tests/exports/test_entities.py +0 -0
  133. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/tests/exports/test_integration.py +0 -0
  134. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/tests/exports/test_params.py +0 -0
  135. {superb_ai_onprem-0.4.5 → superb_ai_onprem-0.5.1}/tests/exports/test_service.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superb-ai-onprem
3
- Version: 0.4.5
3
+ Version: 0.5.1
4
4
  Summary: Python SDK for Superb AI On-premise
5
5
  Home-page: https://github.com/Superb-AI-Suite/superb-ai-onprem-python
6
6
  Author: Superb AI
@@ -27,6 +27,7 @@ from .entities import (
27
27
  ActivityHistory,
28
28
  Export,
29
29
  Content,
30
+ Frame,
30
31
 
31
32
  # Enums
32
33
  DataType,
@@ -91,6 +92,7 @@ __all__ = (
91
92
  "ActivityHistory",
92
93
  "Export",
93
94
  "Content",
95
+ "Frame",
94
96
 
95
97
  # Enums
96
98
  "DataType",
@@ -1,7 +1,14 @@
1
1
  # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
3
 
4
- __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
5
12
 
6
13
  TYPE_CHECKING = False
7
14
  if TYPE_CHECKING:
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
9
16
  from typing import Union
10
17
 
11
18
  VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
12
20
  else:
13
21
  VERSION_TUPLE = object
22
+ COMMIT_ID = object
14
23
 
15
24
  version: str
16
25
  __version__: str
17
26
  __version_tuple__: VERSION_TUPLE
18
27
  version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
19
30
 
20
- __version__ = version = '0.4.5'
21
- __version_tuple__ = version_tuple = (0, 4, 5)
31
+ __version__ = version = '0.5.1'
32
+ __version_tuple__ = version_tuple = (0, 5, 1)
33
+
34
+ __commit_id__ = commit_id = 'gba8ec8041'
@@ -4,9 +4,11 @@ from .data import Data
4
4
  from .prediction import Prediction
5
5
  from .scene import Scene
6
6
  from .data_slice import DataSlice
7
+ from .frame import Frame
7
8
 
8
9
 
9
10
  __all__ = (
11
+ "Frame",
10
12
  "Data",
11
13
  "Scene",
12
14
  "Annotation",
@@ -11,7 +11,7 @@ class AnnotationVersion(CustomBaseModel):
11
11
  This has the content of the data annotation.
12
12
  """
13
13
  id: Optional[str] = None
14
- channel: Optional[str] = None
14
+ channels: Optional[List[str]] = None
15
15
  version: Optional[str] = None
16
16
  content: Optional[BaseContent] = None
17
17
  meta: Optional[dict] = None
@@ -6,6 +6,7 @@ from .annotation import Annotation
6
6
  from .prediction import Prediction
7
7
  from .data_meta import DataMeta
8
8
  from .data_slice import DataSlice
9
+ from .frame import Frame
9
10
  from spb_onprem.contents.entities import BaseContent
10
11
 
11
12
  class Data(CustomBaseModel):
@@ -18,6 +19,7 @@ class Data(CustomBaseModel):
18
19
  key: Optional[str] = None
19
20
  type: Optional[DataType] = None
20
21
  scene: Optional[List[Scene]] = None
22
+ frames: Optional[List[Frame]] = None
21
23
  thumbnail: Optional[BaseContent] = None
22
24
  annotation: Optional[Annotation] = None
23
25
  predictions: Optional[List[Prediction]] = None
@@ -0,0 +1,19 @@
1
+ from typing import Optional
2
+ from spb_onprem.base_model import CustomBaseModel, Field
3
+
4
+
5
+ class GeoLocation(CustomBaseModel):
6
+ lat: float
7
+ lon: float
8
+
9
+
10
+ class Frame(CustomBaseModel):
11
+ """
12
+ The frame of the data.
13
+ Frame is the representation of a single frame in a sequence of data, such as a video or time series.
14
+ """
15
+ id: str
16
+ index: Optional[int] = None
17
+ captured_at: Optional[str] = Field(None, alias="capturedAt")
18
+ geo_location: Optional[GeoLocation] = Field(None, alias="geoLocation")
19
+ meta: Optional[dict] = None
@@ -63,6 +63,9 @@ from .change_data_reviewer import (
63
63
  from .update_data_slice import (
64
64
  update_data_slice_params,
65
65
  )
66
+ from .update_frames import (
67
+ update_frames_params,
68
+ )
66
69
 
67
70
  __all__ = [
68
71
  "create_params",
@@ -90,4 +93,5 @@ __all__ = [
90
93
  "change_data_labeler_params",
91
94
  "change_data_reviewer_params",
92
95
  "update_data_slice_params",
96
+ "update_frames_params",
93
97
  ]
@@ -23,9 +23,9 @@ def insert_annotation_version_params(
23
23
  "meta": version.meta
24
24
  }
25
25
 
26
- # channel과 version 필드가 있으면 추가
27
- if version.channel is not None:
28
- version_data["channel"] = version.channel
26
+ # channels과 version 필드가 있으면 추가
27
+ if version.channels is not None:
28
+ version_data["channels"] = version.channels
29
29
  if version.version is not None:
30
30
  version_data["version"] = version.version
31
31
 
@@ -24,10 +24,10 @@ def insert_slice_annotation_version_params(
24
24
  ),
25
25
  "meta": version.meta
26
26
  }
27
-
28
- # channel과 version 필드가 있으면 추가
29
- if version.channel is not None:
30
- version_data["channel"] = version.channel
27
+
28
+ # channels과 version 필드가 있으면 추가
29
+ if version.channels is not None:
30
+ version_data["channels"] = version.channels
31
31
  if version.version is not None:
32
32
  version_data["version"] = version.version
33
33
 
@@ -0,0 +1,40 @@
1
+ import json
2
+ from typing import Union, List
3
+ from spb_onprem.data.entities import Frame
4
+ from spb_onprem.base_types import UndefinedType, Undefined
5
+
6
+
7
+ def update_frames_params(
8
+ dataset_id: str,
9
+ data_id: str,
10
+ frames: Union[List[Frame], UndefinedType, None] = Undefined,
11
+ ):
12
+ """Update frames of selected data.
13
+ Args:
14
+ dataset_id (str): dataset id which the data belongs to
15
+ data_id (str): data id to be updated
16
+ frames (list[Frame]): list of frames to be updated
17
+
18
+ Returns:
19
+ dict: the params for graphql query
20
+ """
21
+ result = {
22
+ "dataset_id": dataset_id,
23
+ "data_id": data_id,
24
+ }
25
+ if frames is not Undefined:
26
+ result["frames"] = []
27
+ for frame in frames:
28
+ frame_data = {
29
+ "index": frame.index,
30
+ "capturedAt": frame.captured_at,
31
+ "meta": json.dumps(frame.meta) if frame.meta else None,
32
+ }
33
+ if frame.geo_location is not None:
34
+ frame_data["geoLocation"] = {
35
+ "lat": frame.geo_location.lat,
36
+ "lon": frame.geo_location.lon
37
+ }
38
+ result["frames"].append(frame_data)
39
+
40
+ return result
@@ -1,4 +1,4 @@
1
- from typing import Union, Optional, Any
1
+ from typing import Union, Optional, Any, List
2
2
  from spb_onprem.base_types import UndefinedType, Undefined
3
3
  from spb_onprem.exceptions import BadParameterError
4
4
 
@@ -8,7 +8,7 @@ def update_slice_annotation_version_params(
8
8
  data_id: str,
9
9
  slice_id: str,
10
10
  id: str,
11
- channel: Union[str, UndefinedType, None] = Undefined,
11
+ channels: Union[List[str], UndefinedType, None] = Undefined,
12
12
  version: Union[str, UndefinedType, None] = Undefined,
13
13
  meta: Union[dict, UndefinedType, None] = Undefined,
14
14
  ):
@@ -19,7 +19,7 @@ def update_slice_annotation_version_params(
19
19
  data_id (str): The ID of the data.
20
20
  slice_id (str): The slice ID.
21
21
  id (str): The annotation version ID.
22
- channel (str, optional): The channel of the annotation version.
22
+ channels (list[str], optional): The channels of the annotation version.
23
23
  version (str, optional): The version string of the annotation version.
24
24
  meta (dict, optional): The meta of the annotation version.
25
25
  """
@@ -30,8 +30,8 @@ def update_slice_annotation_version_params(
30
30
  "id": id,
31
31
  }
32
32
 
33
- if channel is not Undefined:
34
- variables["channel"] = channel
33
+ if channels is not Undefined:
34
+ variables["channels"] = channels
35
35
  if version is not Undefined:
36
36
  variables["version"] = version
37
37
  if meta is not Undefined:
@@ -20,6 +20,7 @@ from .params import (
20
20
  change_data_labeler_params,
21
21
  change_data_reviewer_params,
22
22
  update_data_slice_params,
23
+ update_frames_params,
23
24
  )
24
25
 
25
26
 
@@ -46,10 +47,21 @@ class Schemas:
46
47
  }
47
48
  meta
48
49
  }
50
+ frames {
51
+ id
52
+ index
53
+ capturedAt
54
+ geoLocation {
55
+ lat
56
+ lon
57
+ }
58
+ meta
59
+ }
49
60
  annotation {
61
+ meta
50
62
  versions {
51
63
  id
52
- channel
64
+ channels
53
65
  version
54
66
  content {
55
67
  id
@@ -57,23 +69,11 @@ class Schemas:
57
69
  meta
58
70
  }
59
71
  }
60
- predictions {
61
- setId
62
- content {
63
- id
64
- }
65
- meta
66
- }
67
72
  meta {
68
73
  key
69
74
  type
70
75
  value
71
76
  }
72
- systemMeta {
73
- key
74
- type
75
- value
76
- }
77
77
  slices {
78
78
  id
79
79
  status
@@ -84,7 +84,7 @@ class Schemas:
84
84
  annotation {
85
85
  versions {
86
86
  id
87
- channel
87
+ channels
88
88
  version
89
89
  content {
90
90
  id
@@ -574,3 +574,23 @@ class Queries():
574
574
  ''',
575
575
  "variables": update_data_slice_params,
576
576
  }
577
+
578
+ UPDATE_FRAMES = {
579
+ "name": "updateFrames",
580
+ "query": f'''
581
+ mutation (
582
+ $dataset_id: ID!,
583
+ $data_id: ID!,
584
+ $frames: [DataFrameInput!],
585
+ ) {{
586
+ updateFrames(
587
+ datasetId: $dataset_id,
588
+ dataId: $data_id,
589
+ frames: $frames,
590
+ ) {{
591
+ {Schemas.DATA}
592
+ }}
593
+ }}
594
+ ''',
595
+ "variables": update_frames_params,
596
+ }
@@ -572,7 +572,7 @@ class DataService(BaseService):
572
572
  data_id: str,
573
573
  slice_id: str,
574
574
  id: str,
575
- channel: Union[str, UndefinedType, None] = Undefined,
575
+ channels: Union[List[str], UndefinedType, None] = Undefined,
576
576
  version: Union[str, UndefinedType, None] = Undefined,
577
577
  meta: Union[dict, UndefinedType, None] = Undefined,
578
578
  ):
@@ -583,7 +583,7 @@ class DataService(BaseService):
583
583
  data_id (str): The data id.
584
584
  slice_id (str): The slice id.
585
585
  id (str): The annotation version id.
586
- channel (Union[str, UndefinedType, None], optional): The channel. Defaults to Undefined.
586
+ channels (Union[List[str], UndefinedType, None], optional): The channels. Defaults to Undefined.
587
587
  version (Union[str, UndefinedType, None], optional): The version. Defaults to Undefined.
588
588
  meta (Union[dict, UndefinedType, None], optional): The meta. Defaults to Undefined.
589
589
 
@@ -606,7 +606,7 @@ class DataService(BaseService):
606
606
  data_id=data_id,
607
607
  slice_id=slice_id,
608
608
  id=id,
609
- channel=channel,
609
+ channels=channels,
610
610
  version=version,
611
611
  meta=meta,
612
612
  )
@@ -804,3 +804,34 @@ class DataService(BaseService):
804
804
  )
805
805
  data = Data.model_validate(response)
806
806
  return data
807
+
808
+ def update_frames(
809
+ self,
810
+ dataset_id: str,
811
+ data_id: str,
812
+ frames: Union[List[Frame], UndefinedType, None] = Undefined,
813
+ ):
814
+ """Update frames of selected data.
815
+ Args:
816
+ dataset_id (str): dataset id which the data belongs to
817
+ data_id (str): data id to be updated
818
+ frames (list[Frame]): list of frames to be updated
819
+
820
+ Returns:
821
+ Data: The updated data.
822
+ """
823
+ if dataset_id is None:
824
+ raise BadParameterError("dataset_id is required.")
825
+ if data_id is None:
826
+ raise BadParameterError("data_id is required.")
827
+
828
+ response = self.request_gql(
829
+ Queries.UPDATE_FRAMES,
830
+ Queries.UPDATE_FRAMES["variables"](
831
+ dataset_id=dataset_id,
832
+ data_id=data_id,
833
+ frames=frames,
834
+ )
835
+ )
836
+ data = Data.model_validate(response)
837
+ return data
@@ -6,6 +6,7 @@ from .data.entities import (
6
6
  Prediction,
7
7
  DataMeta,
8
8
  DataSlice,
9
+ Frame,
9
10
  )
10
11
  from .datasets.entities import Dataset
11
12
  from .slices.entities import Slice
@@ -41,6 +42,7 @@ __all__ = [
41
42
  "ActivityHistory",
42
43
  "Export",
43
44
  "Content",
45
+ "Frame",
44
46
 
45
47
  # Enums
46
48
  "DataType",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superb-ai-onprem
3
- Version: 0.4.5
3
+ Version: 0.5.1
4
4
  Summary: Python SDK for Superb AI On-premise
5
5
  Home-page: https://github.com/Superb-AI-Suite/superb-ai-onprem-python
6
6
  Author: Superb AI
@@ -43,6 +43,7 @@ spb_onprem/data/entities/annotation.py
43
43
  spb_onprem/data/entities/data.py
44
44
  spb_onprem/data/entities/data_meta.py
45
45
  spb_onprem/data/entities/data_slice.py
46
+ spb_onprem/data/entities/frame.py
46
47
  spb_onprem/data/entities/prediction.py
47
48
  spb_onprem/data/entities/scene.py
48
49
  spb_onprem/data/enums/__init__.py
@@ -72,6 +73,7 @@ spb_onprem/data/params/remove_data_meta.py
72
73
  spb_onprem/data/params/update_annotation.py
73
74
  spb_onprem/data/params/update_data.py
74
75
  spb_onprem/data/params/update_data_slice.py
76
+ spb_onprem/data/params/update_frames.py
75
77
  spb_onprem/data/params/update_scene.py
76
78
  spb_onprem/data/params/update_slice_annotation.py
77
79
  spb_onprem/data/params/update_slice_annotation_version.py