superb-ai-onprem 0.4.3__tar.gz → 0.4.5__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 (134) hide show
  1. {superb_ai_onprem-0.4.3/superb_ai_onprem.egg-info → superb_ai_onprem-0.4.5}/PKG-INFO +1 -1
  2. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/__init__.py +28 -0
  3. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/_version.py +2 -2
  4. superb_ai_onprem-0.4.5/spb_onprem/data/params/data_list.py +226 -0
  5. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/queries.py +1 -1
  6. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/searches.py +28 -0
  7. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5/superb_ai_onprem.egg-info}/PKG-INFO +1 -1
  8. superb_ai_onprem-0.4.3/spb_onprem/data/params/data_list.py +0 -107
  9. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/.github/workflows/publish.yml +0 -0
  10. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/.gitignore +0 -0
  11. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/LICENSE +0 -0
  12. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/Pipfile +0 -0
  13. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/Pipfile.lock +0 -0
  14. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/README.md +0 -0
  15. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/pyproject.toml +0 -0
  16. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/setup.cfg +0 -0
  17. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/setup.py +0 -0
  18. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/__init__.py +0 -0
  19. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/entities/__init__.py +0 -0
  20. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/entities/activity.py +0 -0
  21. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/entities/activity_history.py +0 -0
  22. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/params/__init__.py +0 -0
  23. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/params/activities.py +0 -0
  24. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/params/activity.py +0 -0
  25. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/params/create_activity.py +0 -0
  26. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/params/delete_activity.py +0 -0
  27. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/params/get_activity_history.py +0 -0
  28. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/params/start_activity.py +0 -0
  29. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/params/update_activity.py +0 -0
  30. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/params/update_activity_history.py +0 -0
  31. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/queries.py +0 -0
  32. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/activities/service.py +0 -0
  33. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/base_model.py +0 -0
  34. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/base_service.py +0 -0
  35. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/base_types.py +0 -0
  36. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/contents/__init__.py +0 -0
  37. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/contents/entities/__init__.py +0 -0
  38. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/contents/entities/base_content.py +0 -0
  39. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/contents/entities/content.py +0 -0
  40. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/contents/queries.py +0 -0
  41. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/contents/service.py +0 -0
  42. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/__init__.py +0 -0
  43. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/entities/__init__.py +0 -0
  44. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/entities/annotation.py +0 -0
  45. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/entities/data.py +0 -0
  46. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/entities/data_meta.py +0 -0
  47. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/entities/data_slice.py +0 -0
  48. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/entities/prediction.py +0 -0
  49. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/entities/scene.py +0 -0
  50. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/enums/__init__.py +0 -0
  51. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/enums/data_meta_type.py +0 -0
  52. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/enums/data_status.py +0 -0
  53. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/enums/data_type.py +0 -0
  54. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/enums/scene_type.py +0 -0
  55. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/__init__.py +0 -0
  56. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/change_data_labeler.py +0 -0
  57. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/change_data_reviewer.py +0 -0
  58. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/change_data_status.py +0 -0
  59. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/create_data.py +0 -0
  60. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/data.py +0 -0
  61. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/delete_annotation_version.py +0 -0
  62. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/delete_data.py +0 -0
  63. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/delete_prediction.py +0 -0
  64. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/delete_scene.py +0 -0
  65. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/delete_slice_annotation_version.py +0 -0
  66. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/insert_annotation_version.py +0 -0
  67. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/insert_data_to_slice.py +0 -0
  68. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/insert_prediction.py +0 -0
  69. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/insert_scene.py +0 -0
  70. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/insert_slice_annotation_version.py +0 -0
  71. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/remove_data_from_slice.py +0 -0
  72. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/remove_data_meta.py +0 -0
  73. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/update_annotation.py +0 -0
  74. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/update_data.py +0 -0
  75. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/update_data_slice.py +0 -0
  76. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/update_scene.py +0 -0
  77. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/update_slice_annotation.py +0 -0
  78. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/update_slice_annotation_version.py +0 -0
  79. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/params/upsert_data_meta.py +0 -0
  80. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/data/service.py +0 -0
  81. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/datasets/__init__.py +0 -0
  82. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/datasets/entities/__init__.py +0 -0
  83. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/datasets/entities/dataset.py +0 -0
  84. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/datasets/params/__init__.py +0 -0
  85. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/datasets/params/create_dataset.py +0 -0
  86. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/datasets/params/dataset.py +0 -0
  87. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/datasets/params/datasets.py +0 -0
  88. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/datasets/params/update_dataset.py +0 -0
  89. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/datasets/queries.py +0 -0
  90. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/datasets/service.py +0 -0
  91. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/entities.py +0 -0
  92. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exceptions.py +0 -0
  93. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exports/__init__.py +0 -0
  94. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exports/entities/__init__.py +0 -0
  95. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exports/entities/export.py +0 -0
  96. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exports/params/__init__.py +0 -0
  97. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exports/params/create_export.py +0 -0
  98. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exports/params/delete_export.py +0 -0
  99. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exports/params/export.py +0 -0
  100. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exports/params/exports.py +0 -0
  101. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exports/params/update_export.py +0 -0
  102. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exports/queries/get_exports.py +0 -0
  103. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exports/queries.py +0 -0
  104. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/exports/service.py +0 -0
  105. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/slices/__init__.py +0 -0
  106. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/slices/entities/__init__.py +0 -0
  107. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/slices/entities/slice.py +0 -0
  108. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/slices/params/__init__.py +0 -0
  109. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/slices/params/create_slice.py +0 -0
  110. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/slices/params/delete_slice.py +0 -0
  111. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/slices/params/slice.py +0 -0
  112. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/slices/params/slices.py +0 -0
  113. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/slices/params/update_slice.py +0 -0
  114. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/slices/queries.py +0 -0
  115. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/slices/service.py +0 -0
  116. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/users/__init__.py +0 -0
  117. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/users/entities/__init__.py +0 -0
  118. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/spb_onprem/users/entities/auth.py +0 -0
  119. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/superb_ai_onprem.egg-info/SOURCES.txt +0 -0
  120. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/superb_ai_onprem.egg-info/dependency_links.txt +0 -0
  121. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/superb_ai_onprem.egg-info/requires.txt +0 -0
  122. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/superb_ai_onprem.egg-info/top_level.txt +0 -0
  123. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/tests/__init__.py +0 -0
  124. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/tests/activities/__init__.py +0 -0
  125. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/tests/activities/real_test.py +0 -0
  126. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/tests/activities/test_get_activity_history.py +0 -0
  127. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/tests/activities/test_params.py +0 -0
  128. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/tests/activities/test_service.py +0 -0
  129. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/tests/exports/__init__.py +0 -0
  130. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/tests/exports/real_test.py +0 -0
  131. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/tests/exports/test_entities.py +0 -0
  132. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/tests/exports/test_integration.py +0 -0
  133. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/tests/exports/test_params.py +0 -0
  134. {superb_ai_onprem-0.4.3 → superb_ai_onprem-0.4.5}/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.3
3
+ Version: 0.4.5
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
@@ -44,6 +44,20 @@ from .searches import (
44
44
  AnnotationFilter,
45
45
  DataListFilter,
46
46
  DataFilterOptions,
47
+ AnnotationRangeFilter,
48
+ DateTimeRangeFilter,
49
+ UserFilter,
50
+ StringMetaFilter,
51
+ NumberMetaFilter,
52
+ DateTimeMetaFilter,
53
+ MetaFilterOptions,
54
+ DataSliceStatusFilter,
55
+ DataSliceUserFilter,
56
+ DataSliceTagsFilter,
57
+ DataSliceCommentFilter,
58
+ DataSlicePropertiesFilter,
59
+ DataSliceFilter,
60
+ CommentStatus,
47
61
  DatasetsFilter,
48
62
  DatasetsFilterOptions,
49
63
  SlicesFilter,
@@ -87,11 +101,25 @@ __all__ = (
87
101
  "ActivityStatus",
88
102
  "ActivitySchema",
89
103
  "SchemaType",
104
+ "CommentStatus",
90
105
 
91
106
  # Filters
92
107
  "AnnotationFilter",
93
108
  "DataListFilter",
94
109
  "DataFilterOptions",
110
+ "AnnotationRangeFilter",
111
+ "DateTimeRangeFilter",
112
+ "UserFilter",
113
+ "StringMetaFilter",
114
+ "NumberMetaFilter",
115
+ "DateTimeMetaFilter",
116
+ "MetaFilterOptions",
117
+ "DataSliceStatusFilter",
118
+ "DataSliceUserFilter",
119
+ "DataSliceTagsFilter",
120
+ "DataSliceCommentFilter",
121
+ "DataSlicePropertiesFilter",
122
+ "DataSliceFilter",
95
123
  "DatasetsFilter",
96
124
  "DatasetsFilterOptions",
97
125
  "SlicesFilter",
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.4.3'
21
- __version_tuple__ = version_tuple = (0, 4, 3)
20
+ __version__ = version = '0.4.5'
21
+ __version_tuple__ = version_tuple = (0, 4, 5)
@@ -0,0 +1,226 @@
1
+ from typing import (
2
+ Optional,
3
+ List,
4
+ Union,
5
+ Any
6
+ )
7
+ from enum import Enum
8
+ from spb_onprem.base_model import CustomBaseModel, Field
9
+ from spb_onprem.data.enums import DataType, DataStatus
10
+ from spb_onprem.exceptions import BadParameterError
11
+
12
+
13
+ class CommentStatus(str, Enum):
14
+ """댓글 상태를 나타내는 열거형"""
15
+ RESOLVED = "RESOLVED"
16
+ UNRESOLVED = "UNRESOLVED"
17
+
18
+
19
+ class AnnotationFilter(CustomBaseModel):
20
+ type: Optional[str] = None
21
+ name: Optional[str] = None
22
+
23
+
24
+ class AnnotationRangeFilter(CustomBaseModel):
25
+ annotation_type: Optional[str] = Field(None, alias="annotationType")
26
+ class_name: Optional[str] = Field(None, alias="className")
27
+ class_count_equals: Optional[int] = Field(None, alias="classCountEquals")
28
+ class_count_in: Optional[List[int]] = Field(None, alias="classCountIn")
29
+ class_count_max: Optional[int] = Field(None, alias="classCountMax")
30
+ class_count_min: Optional[int] = Field(None, alias="classCountMin")
31
+
32
+
33
+ class DateTimeRangeFilter(CustomBaseModel):
34
+ """날짜/시간 범위 필터"""
35
+ from_date: Optional[str] = Field(None, alias="from")
36
+ to_date: Optional[str] = Field(None, alias="to")
37
+ equals: Optional[str] = None
38
+
39
+
40
+ class UserFilter(CustomBaseModel):
41
+ """사용자 필터 옵션"""
42
+ equals: Optional[str] = None
43
+ contains: Optional[str] = None
44
+ in_list: Optional[List[str]] = Field(None, alias="in")
45
+ exists: Optional[bool] = None
46
+
47
+
48
+ class StringMetaFilter(CustomBaseModel):
49
+ """문자열 메타 데이터 필터"""
50
+ key: str
51
+ contains: Optional[str] = None
52
+ equals: Optional[str] = None
53
+ in_list: Optional[List[str]] = Field(None, alias="in")
54
+
55
+
56
+ class NumberMetaFilter(CustomBaseModel):
57
+ """숫자 메타 데이터 필터"""
58
+ key: str
59
+ min_value: Optional[float] = Field(None, alias="min")
60
+ max_value: Optional[float] = Field(None, alias="max")
61
+ equals: Optional[float] = None
62
+ in_list: Optional[List[float]] = Field(None, alias="in")
63
+
64
+
65
+ class DateTimeMetaFilter(CustomBaseModel):
66
+ """날짜/시간 메타 데이터 필터"""
67
+ key: str
68
+ from_date: Optional[str] = Field(None, alias="from")
69
+ to_date: Optional[str] = Field(None, alias="to")
70
+ equals: Optional[str] = None
71
+
72
+
73
+ class MetaFilterOptions(CustomBaseModel):
74
+ """메타 데이터 필터 옵션들"""
75
+ string_meta: Optional[List[StringMetaFilter]] = Field(None, alias="stringMeta")
76
+ number_meta: Optional[List[NumberMetaFilter]] = Field(None, alias="numberMeta")
77
+ date_time_meta: Optional[List[DateTimeMetaFilter]] = Field(None, alias="dateTimeMeta")
78
+
79
+
80
+ class DataSliceStatusFilter(CustomBaseModel):
81
+ """데이터 슬라이스 상태 필터"""
82
+ in_list: Optional[List[DataStatus]] = Field(None, alias="in")
83
+ equals: Optional[DataStatus] = None
84
+ not_in: Optional[List[DataStatus]] = Field(None, alias="notIn")
85
+
86
+
87
+ class DataSliceUserFilter(CustomBaseModel):
88
+ """데이터 슬라이스 사용자 필터 (labeler, reviewer용)"""
89
+ equals: Optional[str] = None
90
+ in_list: Optional[List[str]] = Field(None, alias="in")
91
+ exists: Optional[bool] = None
92
+
93
+
94
+ class DataSliceTagsFilter(CustomBaseModel):
95
+ """데이터 슬라이스 태그 필터"""
96
+ contains: Optional[str] = None
97
+ has_any: Optional[List[str]] = Field(None, alias="hasAny")
98
+ has_all: Optional[List[str]] = Field(None, alias="hasAll")
99
+ exists: Optional[bool] = None
100
+
101
+
102
+ class DataSliceCommentFilter(CustomBaseModel):
103
+ """데이터 슬라이스 댓글 필터"""
104
+ comment_contains: Optional[str] = Field(None, alias="commentContains")
105
+ category: Optional[str] = None
106
+ status: Optional[CommentStatus] = None
107
+ created_by: Optional[UserFilter] = Field(None, alias="createdBy")
108
+ created_at: Optional[DateTimeRangeFilter] = Field(None, alias="createdAt")
109
+ exists: Optional[bool] = None
110
+
111
+
112
+ class DataSlicePropertiesFilter(CustomBaseModel):
113
+ """슬라이스 속성 필터 (ID 제외)"""
114
+ status: Optional[DataSliceStatusFilter] = None
115
+ labeler: Optional[DataSliceUserFilter] = None
116
+ reviewer: Optional[DataSliceUserFilter] = None
117
+ tags: Optional[DataSliceTagsFilter] = None
118
+ status_changed_at: Optional[DateTimeRangeFilter] = Field(None, alias="statusChangedAt")
119
+ comments: Optional[DataSliceCommentFilter] = None
120
+ meta: Optional[MetaFilterOptions] = None
121
+
122
+
123
+ class DataSliceFilter(CustomBaseModel):
124
+ """슬라이스 필터 (ID + must/not 구조)"""
125
+ id: str # 검색할 슬라이스 ID (필수)
126
+ must: Optional[DataSlicePropertiesFilter] = None # 만족해야 하는 조건
127
+ not_filter: Optional[DataSlicePropertiesFilter] = Field(None, alias="not") # 만족하지 않아야 하는 조건
128
+
129
+
130
+ class DataFilterOptions(CustomBaseModel):
131
+ id_in: Optional[List[str]] = Field(None, alias="idIn")
132
+ slice_id: Optional[str] = Field(None, alias="sliceId")
133
+ slice_id_in: Optional[List[str]] = Field(None, alias="sliceIdIn")
134
+ slice_id_any: Optional[List[str]] = Field(None, alias="sliceIdAny") # 추가된 필드
135
+ slice_id_exists: Optional[bool] = Field(None, alias="sliceIdExists") # 추가된 필드
136
+ key_contains: Optional[str] = Field(None, alias="keyContains")
137
+ key_matches: Optional[str] = Field(None, alias="keyMatches")
138
+ sub_type_contains: Optional[str] = Field(None, alias="subTypeContains") # 추가된 필드
139
+ sub_type_matches: Optional[str] = Field(None, alias="subTypeMatches") # 추가된 필드
140
+ type_in: Optional[List[DataType]] = Field(None, alias="typeIn")
141
+ annotation_any: Optional[List[AnnotationFilter]] = Field(None, alias="annotationAny")
142
+ annotation_in: Optional[List[AnnotationFilter]] = Field(None, alias="annotationIn")
143
+ annotation_exists: Optional[bool] = Field(None, alias="annotationExists")
144
+ annotation_range: Optional[List[AnnotationRangeFilter]] = Field(None, alias="annotationRange")
145
+ prediction_set_id_in: Optional[List[str]] = Field(None, alias="predictionSetIdIn")
146
+ prediction_set_id_exists: Optional[bool] = Field(None, alias="predictionSetIdExists")
147
+
148
+ # 추가된 필드들 (GraphQL과 매칭)
149
+ created_at: Optional[DateTimeRangeFilter] = Field(None, alias="createdAt")
150
+ updated_at: Optional[DateTimeRangeFilter] = Field(None, alias="updatedAt")
151
+ created_by: Optional[UserFilter] = Field(None, alias="createdBy")
152
+ updated_by: Optional[UserFilter] = Field(None, alias="updatedBy")
153
+ meta: Optional[MetaFilterOptions] = None
154
+
155
+
156
+ class DataListFilter(CustomBaseModel):
157
+ must_filter: Optional[DataFilterOptions] = Field(None, alias="must")
158
+ not_filter: Optional[DataFilterOptions] = Field(None, alias="not")
159
+ slice: Optional[DataSliceFilter] = Field(None, alias="slice")
160
+
161
+
162
+ def get_data_id_list_params(
163
+ dataset_id: str,
164
+ data_filter: Optional[DataListFilter] = None,
165
+ cursor: Optional[str] = None,
166
+ length: Optional[int] = 50,
167
+ ):
168
+ """Make the variables for the dataIdList query.
169
+
170
+ Args:
171
+ dataset_id (str): The dataset id.
172
+ data_filter (Optional[DataListFilter], optional): The filter for the data list. Defaults to None.
173
+ cursor (Optional[str], optional): The cursor for the data list. Defaults to None.
174
+ length (Optional[int], optional): The length of the data list. Defaults to 50.
175
+
176
+ Raises:
177
+ BadParameterError: The maximum length is 200.
178
+
179
+ Returns:
180
+ dict: The variables for the dataIdList query.
181
+ """
182
+ if length > 200:
183
+ raise BadParameterError("The maximum length is 200.")
184
+
185
+ return {
186
+ "dataset_id": dataset_id,
187
+ "filter": data_filter.model_dump(
188
+ by_alias=True, exclude_unset=True
189
+ ) if data_filter else None,
190
+ "cursor": cursor,
191
+ "length": length
192
+ }
193
+
194
+
195
+ def get_data_list_params(
196
+ dataset_id: str,
197
+ data_filter: Optional[DataListFilter] = None,
198
+ cursor: Optional[str] = None,
199
+ length: Optional[int] = 10,
200
+ ):
201
+ """Make the variables for the dataList query.
202
+
203
+ Args:
204
+ dataset_id (str): The dataset id.
205
+ data_filter (Optional[DataListFilter], optional): The filter for the data list. Defaults to None.
206
+ cursor (Optional[str], optional): The cursor for the data list. Defaults to None.
207
+ length (Optional[int], optional): The length of the data list. Defaults to 10.
208
+
209
+ Raises:
210
+ BadParameterError: The maximum length is 50.
211
+
212
+ Returns:
213
+ dict: The variables for the dataList query.
214
+ """
215
+
216
+ if length > 50:
217
+ raise BadParameterError("The maximum length is 50.")
218
+
219
+ return {
220
+ "dataset_id": dataset_id,
221
+ "filter": data_filter.model_dump(
222
+ by_alias=True, exclude_unset=True
223
+ ) if data_filter else None,
224
+ "cursor": cursor,
225
+ "length": length
226
+ }
@@ -494,7 +494,7 @@ class Queries():
494
494
  $dataset_id: ID!,
495
495
  $data_id: ID!,
496
496
  $slice_id: ID!,
497
- $status: DataStatus!,
497
+ $status: DataSliceStatus!,
498
498
  ) {{
499
499
  changeDataStatus(
500
500
  datasetId: $dataset_id,
@@ -3,6 +3,20 @@ from .data.params.data_list import (
3
3
  AnnotationFilter,
4
4
  DataListFilter,
5
5
  DataFilterOptions,
6
+ AnnotationRangeFilter,
7
+ DateTimeRangeFilter,
8
+ UserFilter,
9
+ StringMetaFilter,
10
+ NumberMetaFilter,
11
+ DateTimeMetaFilter,
12
+ MetaFilterOptions,
13
+ DataSliceStatusFilter,
14
+ DataSliceUserFilter,
15
+ DataSliceTagsFilter,
16
+ DataSliceCommentFilter,
17
+ DataSlicePropertiesFilter,
18
+ DataSliceFilter,
19
+ CommentStatus,
6
20
  )
7
21
  from .datasets.params.datasets import (
8
22
  DatasetsFilter,
@@ -25,6 +39,20 @@ __all__ = [
25
39
  "AnnotationFilter",
26
40
  "DataListFilter",
27
41
  "DataFilterOptions",
42
+ "AnnotationRangeFilter",
43
+ "DateTimeRangeFilter",
44
+ "UserFilter",
45
+ "StringMetaFilter",
46
+ "NumberMetaFilter",
47
+ "DateTimeMetaFilter",
48
+ "MetaFilterOptions",
49
+ "DataSliceStatusFilter",
50
+ "DataSliceUserFilter",
51
+ "DataSliceTagsFilter",
52
+ "DataSliceCommentFilter",
53
+ "DataSlicePropertiesFilter",
54
+ "DataSliceFilter",
55
+ "CommentStatus",
28
56
  "DatasetsFilter",
29
57
  "DatasetsFilterOptions",
30
58
  "SlicesFilter",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superb-ai-onprem
3
- Version: 0.4.3
3
+ Version: 0.4.5
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
@@ -1,107 +0,0 @@
1
- from typing import (
2
- Optional,
3
- List
4
- )
5
- from spb_onprem.base_model import CustomBaseModel, Field
6
- from spb_onprem.data.enums import DataType
7
- from spb_onprem.exceptions import BadParameterError
8
-
9
- class AnnotationFilter(CustomBaseModel):
10
- type: Optional[str] = None
11
- name: Optional[str] = None
12
-
13
-
14
- class AnnotationRangeFilter(CustomBaseModel):
15
- annotation_type: Optional[str] = Field(None, alias="annotationType")
16
- class_name: Optional[str] = Field(None, alias="className")
17
- class_count_equals: Optional[int] = Field(None, alias="classCountEquals")
18
- class_count_in: Optional[List[int]] = Field(None, alias="classCountIn")
19
- class_count_max: Optional[int] = Field(None, alias="classCountMax")
20
- class_count_min: Optional[int] = Field(None, alias="classCountMin")
21
-
22
-
23
- class DataFilterOptions(CustomBaseModel):
24
- id_in: Optional[List[str]] = Field(None, alias="idIn")
25
- slice_id: Optional[str] = Field(None, alias="sliceId")
26
- slice_id_in: Optional[List[str]] = Field(None, alias="sliceIdIn")
27
- key_contains: Optional[str] = Field(None, alias="keyContains")
28
- key_matches: Optional[str] = Field(None, alias="keyMatches")
29
- type_in: Optional[List[DataType]] = Field(None, alias="typeIn")
30
- annotation_any: Optional[List[AnnotationFilter]] = Field(None, alias="annotationAny")
31
- annotation_in: Optional[List[AnnotationFilter]] = Field(None, alias="annotationIn")
32
- annotation_exists: Optional[bool] = Field(None, alias="annotationExists")
33
- annotation_range: Optional[List[AnnotationRangeFilter]] = Field(None, alias="annotationRange")
34
- prediction_set_id_in: Optional[List[str]] = Field(None, alias="predictionSetIdIn")
35
- prediction_set_id_exists: Optional[bool] = Field(None, alias="predictionSetIdExists")
36
-
37
-
38
- class DataListFilter(CustomBaseModel):
39
- must_filter: Optional[DataFilterOptions] = Field(None, alias="must")
40
- not_filter: Optional[DataFilterOptions] = Field(None, alias="not")
41
-
42
-
43
- def get_data_id_list_params(
44
- dataset_id: str,
45
- data_filter: Optional[DataListFilter] = None,
46
- cursor: Optional[str] = None,
47
- length: Optional[int] = 50,
48
- ):
49
- """Make the variables for the dataIdList query.
50
-
51
- Args:
52
- dataset_id (str): The dataset id.
53
- data_filter (Optional[DataListFilter], optional): The filter for the data list. Defaults to None.
54
- cursor (Optional[str], optional): The cursor for the data list. Defaults to None.
55
- length (Optional[int], optional): The length of the data list. Defaults to 50.
56
-
57
- Raises:
58
- BadParameterError: The maximum length is 200.
59
-
60
- Returns:
61
- dict: The variables for the dataIdList query.
62
- """
63
- if length > 200:
64
- raise BadParameterError("The maximum length is 200.")
65
-
66
- return {
67
- "dataset_id": dataset_id,
68
- "filter": data_filter.model_dump(
69
- by_alias=True, exclude_unset=True
70
- ) if data_filter else None,
71
- "cursor": cursor,
72
- "length": length
73
- }
74
-
75
-
76
- def get_data_list_params(
77
- dataset_id: str,
78
- data_filter: Optional[DataListFilter] = None,
79
- cursor: Optional[str] = None,
80
- length: Optional[int] = 10,
81
- ):
82
- """Make the variables for the dataList query.
83
-
84
- Args:
85
- dataset_id (str): The dataset id.
86
- data_filter (Optional[DataListFilter], optional): The filter for the data list. Defaults to None.
87
- cursor (Optional[str], optional): The cursor for the data list. Defaults to None.
88
- length (Optional[int], optional): The length of the data list. Defaults to 10.
89
-
90
- Raises:
91
- BadParameterError: The maximum length is 50.
92
-
93
- Returns:
94
- dict: The variables for the dataList query.
95
- """
96
-
97
- if length > 50:
98
- raise BadParameterError("The maximum length is 50.")
99
-
100
- return {
101
- "dataset_id": dataset_id,
102
- "filter": data_filter.model_dump(
103
- by_alias=True, exclude_unset=True
104
- ) if data_filter else None,
105
- "cursor": cursor,
106
- "length": length
107
- }