superb-ai-onprem 0.5.8__py3-none-any.whl → 0.5.10__py3-none-any.whl

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.

spb_onprem/_version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.5.8'
32
- __version_tuple__ = version_tuple = (0, 5, 8)
31
+ __version__ = version = '0.5.10'
32
+ __version_tuple__ = version_tuple = (0, 5, 10)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -24,7 +24,6 @@ class Data(CustomBaseModel):
24
24
  annotation: Optional[Annotation] = None
25
25
  predictions: Optional[List[Prediction]] = None
26
26
  meta: Optional[List[DataMeta]] = None
27
- system_meta: Optional[List[DataMeta]] = Field(None, alias="systemMeta")
28
27
  created_at: Optional[str] = Field(None, alias="createdAt")
29
28
  created_by: Optional[str] = Field(None, alias="createdBy")
30
29
  updated_at: Optional[str] = Field(None, alias="updatedAt")
@@ -36,7 +36,7 @@ def create_params(
36
36
  "meta": version.meta,
37
37
  }
38
38
  for version in data.annotation.versions
39
- ],
39
+ ] if data.annotation.versions is not None else [],
40
40
  "meta": data.annotation.meta
41
41
  } if data.annotation is not None else None,
42
42
  "predictions": [
@@ -56,13 +56,5 @@ def create_params(
56
56
  "value": meta.value,
57
57
  }
58
58
  for meta in data.meta
59
- ] if data.meta is not None else None,
60
- "systemMeta": [
61
- {
62
- "key": meta.key,
63
- "type": meta.type.value,
64
- "value": meta.value,
65
- }
66
- for meta in data.system_meta
67
- ] if data.system_meta is not None else None,
59
+ ] if data.meta is not None else [],
68
60
  }
@@ -23,10 +23,6 @@ def update_params(
23
23
  Optional[List[DataMeta]],
24
24
  UndefinedType
25
25
  ] = Undefined,
26
- system_meta: Union[
27
- Optional[List[DataMeta]],
28
- UndefinedType
29
- ] = Undefined,
30
26
  ):
31
27
  """Make the variables for the updateData query.
32
28
 
@@ -56,17 +52,5 @@ def update_params(
56
52
  }
57
53
  for meta in meta
58
54
  ] if meta is not None else None
59
-
60
- if system_meta is not Undefined:
61
- if system_meta is not None and not isinstance(system_meta, list):
62
- raise ValueError("meta must be a list of DataMeta or None.")
63
- variables["systemMeta"] = [
64
- {
65
- "key": meta.key,
66
- "type": meta.type.value,
67
- "value": meta.value,
68
- }
69
- for meta in system_meta
70
- ] if system_meta is not None else None
71
55
 
72
56
  return variables
@@ -11,10 +11,6 @@ def upsert_data_meta_params(
11
11
  Optional[List[DataMeta]],
12
12
  UndefinedType
13
13
  ] = Undefined,
14
- system_meta: Union[
15
- Optional[List[DataMeta]],
16
- UndefinedType
17
- ] = Undefined,
18
14
  ):
19
15
  """Make the variables for the upsertDataMeta query.
20
16
 
@@ -37,12 +33,4 @@ def upsert_data_meta_params(
37
33
  for item in meta
38
34
  ] if meta is not None else None
39
35
 
40
- if system_meta is not Undefined:
41
- if system_meta is not None and not isinstance(system_meta, list):
42
- raise ValueError("system_meta must be a list of DataMeta or None.")
43
- variables["system_meta"] = [
44
- item.model_dump(by_alias=True, exclude_unset=True)
45
- for item in system_meta
46
- ] if system_meta is not None else None
47
-
48
36
  return variables
@@ -122,7 +122,6 @@ class Queries():
122
122
  $annotation: AnnotationInput,
123
123
  $predictions: [PredictionInput!],
124
124
  $meta: [DataMetaInput!]
125
- $systemMeta: [DataMetaInput!]
126
125
  ) {{
127
126
  createData(
128
127
  datasetId: $datasetId,
@@ -134,7 +133,6 @@ class Queries():
134
133
  annotation: $annotation,
135
134
  predictions: $predictions,
136
135
  meta: $meta,
137
- systemMeta: $systemMeta
138
136
  )
139
137
  {{
140
138
  {Schemas.DATA}
@@ -151,15 +149,13 @@ class Queries():
151
149
  $dataset_id: ID!,
152
150
  $data_id: ID!,
153
151
  $key: String,
154
- $meta: [DataMetaInput!],
155
- $systemMeta: [DataMetaInput!]
152
+ $meta: [DataMetaInput!]
156
153
  ) {{
157
154
  updateData(
158
155
  datasetId: $dataset_id,
159
156
  id: $data_id,
160
157
  key: $key,
161
- meta: $meta,
162
- systemMeta: $systemMeta
158
+ meta: $meta
163
159
  )
164
160
  {{
165
161
  {Schemas.DATA}
@@ -1,19 +1,13 @@
1
1
  """
2
- base_service.py
3
-
4
- This module defines the BaseService class, which serves as an abstract base class for services that handle data operations.
2
+ This module defines the DataService class for handling data-related operations.
5
3
 
6
4
  Classes:
7
- BaseService: An abstract base class that requires the implementation of the create_data method.
5
+ DataService: A service class that provides methods for data management operations.
8
6
  """
9
- from io import BytesIO
10
7
  from typing import (
11
8
  Optional, List, Union,
12
9
  )
13
10
 
14
- from spb_onprem.contents.service import (
15
- ContentService
16
- )
17
11
  from spb_onprem.base_service import BaseService
18
12
  from spb_onprem.base_types import (
19
13
  Undefined,
@@ -22,17 +16,11 @@ from spb_onprem.base_types import (
22
16
  from .queries import Queries
23
17
  from .entities import (
24
18
  Data,
25
- Scene,
26
19
  AnnotationVersion,
27
- Annotation,
28
- DataMeta,
29
20
  Prediction,
30
21
  Frame,
31
22
  )
32
23
  from .enums import (
33
- DataType,
34
- SceneType,
35
- DataMetaValue,
36
24
  DataStatus,
37
25
  )
38
26
  from .params import (
@@ -177,102 +165,23 @@ class DataService(BaseService):
177
165
  response.get("totalCount", 0)
178
166
  )
179
167
 
180
- def _detect_image_type(self, file_data: BytesIO) -> str:
181
- """Detect image type from BytesIO data using magic numbers.
182
-
183
- Args:
184
- file_data (BytesIO): The image data.
185
-
186
- Returns:
187
- str: The MIME type of the image.
188
-
189
- Raises:
190
- BadParameterError: If the file format is not a supported image type.
191
- """
192
- current_pos = file_data.tell()
193
- file_data.seek(0)
194
- header = file_data.read(12)
195
- file_data.seek(current_pos)
196
-
197
- if header.startswith(b'\xff\xd8\xff'):
198
- return 'image/jpeg'
199
- elif header.startswith(b'\x89PNG\r\n\x1a\n'):
200
- return 'image/png'
201
- elif header.startswith(b'GIF8'):
202
- return 'image/gif'
203
- elif header.startswith(b'RIFF') and header[8:12] == b'WEBP':
204
- return 'image/webp'
205
- else:
206
- raise BadParameterError(
207
- "Unsupported image format. Only JPEG, PNG, GIF, and WebP formats are supported."
208
- )
209
-
210
- def create_image_data(
168
+ def create_data(
211
169
  self,
212
- dataset_id: str,
213
- key: str,
214
- image_content: Union[
215
- BytesIO,
216
- str,
217
- ],
218
- slices: Optional[List[str]] = None,
219
- annotation: Optional[dict] = None,
220
- predictions: Optional[List[dict]] = None,
221
- meta: Optional[List[dict]] = None,
222
- system_meta: Optional[List[dict]] = None,
170
+ data: Data,
223
171
  ):
224
- """Create an image data.
172
+ """Create data in the dataset.
225
173
 
226
174
  Args:
227
- dataset_id (str): The dataset id.
228
- key (str): The key of the data.
229
- image_content (Union[BytesIO, str]): The image content. If str, it is considered as a file path.
230
- slices (Optional[List[str]]): The slices to add the data to.
231
- annotation (Optional[dict]): The annotation data.
232
- predictions (Optional[List[dict]]): The predictions data.
233
- meta (Optional[List[dict]]): The meta data.
234
- system_meta (Optional[List[dict]]): The system meta data.
175
+ data (Data): The data object to create.
235
176
 
236
177
  Returns:
237
178
  Data: The created data.
238
179
  """
239
- content_service = ContentService()
240
- if isinstance(image_content, str):
241
- content = content_service.upload_content(
242
- image_content,
243
- key,
244
- )
245
- else:
246
- # Detect the image type from BytesIO data
247
- content_type = self._detect_image_type(image_content)
248
- content = content_service.upload_content_with_data(
249
- image_content,
250
- content_type,
251
- key,
252
- )
253
-
254
180
  response = self.request_gql(
255
181
  Queries.CREATE,
256
- Queries.CREATE["variables"](
257
- dataset_id=dataset_id,
258
- key=key,
259
- type=DataType.SUPERB_IMAGE,
260
- slices=slices,
261
- scene=[{
262
- "id": f"{key}_scene_0",
263
- "type": SceneType.IMAGE,
264
- "content": content.model_dump(by_alias=True),
265
- "meta": {}
266
- }],
267
- thumbnail=content.model_dump(by_alias=True),
268
- annotation=annotation,
269
- predictions=predictions,
270
- meta=meta,
271
- system_meta=system_meta,
272
- )
182
+ Queries.CREATE["variables"](data)
273
183
  )
274
- data = Data.model_validate(response)
275
- return data
184
+ return Data.model_validate(response)
276
185
 
277
186
  def update_data(
278
187
  self,
@@ -286,10 +195,6 @@ class DataService(BaseService):
286
195
  List[dict],
287
196
  UndefinedType,
288
197
  ] = Undefined,
289
- system_meta: Union[
290
- List[dict],
291
- UndefinedType,
292
- ] = Undefined,
293
198
  ):
294
199
  """Update a data.
295
200
 
@@ -298,7 +203,6 @@ class DataService(BaseService):
298
203
  data_id (str): The data id.
299
204
  key (Union[str, UndefinedType], optional): The key of the data. Defaults to Undefined.
300
205
  meta (Union[List[dict], UndefinedType], optional): The meta data. Defaults to Undefined.
301
- system_meta (Union[List[dict], UndefinedType], optional): The system meta data. Defaults to Undefined.
302
206
 
303
207
  Returns:
304
208
  Data: The updated data.
@@ -310,7 +214,6 @@ class DataService(BaseService):
310
214
  data_id=data_id,
311
215
  key=key,
312
216
  meta=meta,
313
- system_meta=system_meta,
314
217
  )
315
218
  )
316
219
  data = Data.model_validate(response)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superb-ai-onprem
3
- Version: 0.5.8
3
+ Version: 0.5.10
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,5 +1,5 @@
1
1
  spb_onprem/__init__.py,sha256=lGZRdgpRdBFM97SawPJIC-a5uRzrd5jdb9i5yHDeveQ,2649
2
- spb_onprem/_version.py,sha256=94GfHP_pnw8tNHpsnH9lv-lFOG6x-yD9RalL7Ee8XUA,704
2
+ spb_onprem/_version.py,sha256=ssU-HhfV0VSycUpIh7CbiGRJhaZLd00QnDLLKR6dd90,706
3
3
  spb_onprem/base_model.py,sha256=XLtyoxRBs68LrvbFH8V4EvQGPc2W17koC310MnS37jc,442
4
4
  spb_onprem/base_service.py,sha256=dPfr3mGXYlqadOXycu6RBFX1HcZ1qzEsskLoOxERLOU,5737
5
5
  spb_onprem/base_types.py,sha256=5HO6uy6qf08b4KSElwIaGy7UkoQG2KqVO6gcHbsqqSo,269
@@ -31,11 +31,11 @@ spb_onprem/contents/params/__init__.py,sha256=TYVs27fn47eTjnXGL6SQvkbWQqWaGwY6hJ
31
31
  spb_onprem/contents/params/create.py,sha256=JLMbNiIecOsVvVSYY6DfUpWjZxZKuO9-NSpuRlSIxS0,408
32
32
  spb_onprem/contents/params/get_download_url.py,sha256=3oaiqmjJRxw0U59SoTxoih1pcU-cuQvcU-g89lCcqtQ,98
33
33
  spb_onprem/data/__init__.py,sha256=5XKxNm2BlKufrX5uRQreUEzJ-nerTrozKpG1RJL5wt8,68
34
- spb_onprem/data/queries.py,sha256=B5vd_8Q8ziwtz44GozbZ-yEN5zKAgMY8wKex-YJJJSs,15607
35
- spb_onprem/data/service.py,sha256=Nt6kO64pZVy_pVVmoGgCPl_1cf6-VHb9fsiD7iigiiU,25876
34
+ spb_onprem/data/queries.py,sha256=FgmTnTL1LeIyOW7WZNT6djpW5hIE7gx-f-a1QJZ43T8,15433
35
+ spb_onprem/data/service.py,sha256=EWKRCVW4XCrC1F-DUSj3IK-8xoFE3LzMUD5oZVbWDjA,22402
36
36
  spb_onprem/data/entities/__init__.py,sha256=ZQ2YWAHIan2ZLa1z5ozPSJwW3pqdlsJCxmAT3NuG89c,376
37
37
  spb_onprem/data/entities/annotation.py,sha256=pS97Nx3TWMBrb-iiBfRct4RXl7hPMy2IOzTIpXkmBJU,751
38
- spb_onprem/data/entities/data.py,sha256=9wD6fk6K-GDaCesWhxA4vW8IyrlG2Tn7xqR1ZB7VN6k,1293
38
+ spb_onprem/data/entities/data.py,sha256=TOdnete4bfwROQ7C7oew7vV8bZyewQvFdjccyx4mec8,1217
39
39
  spb_onprem/data/entities/data_meta.py,sha256=zh5Cw_5F5c9f0Ixp-rHDe6P4PceSdIHHwTqcaMoW9Yk,1064
40
40
  spb_onprem/data/entities/data_slice.py,sha256=5ElQvOJE6Ivo9mWeNS3JlUV3EUtw8LAejPkfdLRq2aE,633
41
41
  spb_onprem/data/entities/frame.py,sha256=pnJ3rVzduvi_pZdJR_IJp2wRhexZspSDMUhY6CsY5Io,566
@@ -50,7 +50,7 @@ spb_onprem/data/params/__init__.py,sha256=G83X-qgnWnuOMuMpsDKO0NZ9xWqQtmk6bdaT47
50
50
  spb_onprem/data/params/change_data_labeler.py,sha256=jUG6bm0uheR1jVCy-RwFY97C9K93fdDdf3KDHJIelM4,570
51
51
  spb_onprem/data/params/change_data_reviewer.py,sha256=dFix3NfS2_8lpaoWxz6anLEJWMLdmRKM34ib8XwQiVQ,577
52
52
  spb_onprem/data/params/change_data_status.py,sha256=34gGtmTJT8wiDDpHOgQYvgP0-ziuYEBDFlpfY8SAZtI,593
53
- spb_onprem/data/params/create_data.py,sha256=8DOfbEchf9GSybiYY1cZoNzNYwILokoAkxXRFybJUAU,2038
53
+ spb_onprem/data/params/create_data.py,sha256=aL6Bwd9talB2rnmdHbR9QkUx1Msni07-6aoBkhGoivM,1827
54
54
  spb_onprem/data/params/data.py,sha256=ZPJRjCbkjOCV73NxlGm5DxbSaNOAztVBRZRE8FFQ9mw,779
55
55
  spb_onprem/data/params/data_list.py,sha256=sxMBaK3n2YgbUQ9yNmcRkcngbClnkEJFAeeX07umS2M,8645
56
56
  spb_onprem/data/params/delete_annotation_version.py,sha256=R_jBVujor-09VS1Aa8yGP14R8nJ2Aa9OmmKezC4gz4c,457
@@ -66,13 +66,13 @@ spb_onprem/data/params/insert_slice_annotation_version.py,sha256=KinI05UaaQWcv-1
66
66
  spb_onprem/data/params/remove_data_from_slice.py,sha256=UjoQH0gTdm1nE1DafUmq3CP1nzHiCwDUnytQ6oBcZAA,478
67
67
  spb_onprem/data/params/remove_data_meta.py,sha256=nlj2Ln9CtdS4Si8TmETZlQoAU62nCTCLbZR2_yE3yB8,1847
68
68
  spb_onprem/data/params/update_annotation.py,sha256=zEmXYlBBYeC8A9eNyGidSw2XbgLd-pgvRZK5eui2plA,787
69
- spb_onprem/data/params/update_data.py,sha256=zlIqvUzMrEh-6eRUZ35lKmG2Ep6pYCPEl9dWvXz2rdM,1861
69
+ spb_onprem/data/params/update_data.py,sha256=159Mx-5gmKQZKSAZlpTNiE4_EHVNwkEbjyeOZLs9SuM,1315
70
70
  spb_onprem/data/params/update_data_slice.py,sha256=xjxUs0y4koFtW1uW84ARKsepK8FwhGVjMkSMS6A1eFU,523
71
71
  spb_onprem/data/params/update_frames.py,sha256=AluCJDUJelq_yrXR3DjkwWF-82qQukvERkIE-qNjO8I,1226
72
72
  spb_onprem/data/params/update_scene.py,sha256=zMJFUHF3vz_hVSkkVEwHwdZBjWRbRxgTQFtsBowAg-k,930
73
73
  spb_onprem/data/params/update_slice_annotation.py,sha256=7eu2DFvznOv0HuvKiZTHDOTS2UijyTjbEiqLBbUncfE,607
74
74
  spb_onprem/data/params/update_slice_annotation_version.py,sha256=M2STViLDSQDZ0WNYLcenum-NHpKQXUOfGh1XE6An_7c,1318
75
- spb_onprem/data/params/upsert_data_meta.py,sha256=gVj-IY4V8DDbQQI9kEIwnwz7Pg4ObwUzyBhFoDNE-v4,1507
75
+ spb_onprem/data/params/upsert_data_meta.py,sha256=faBI9UuH9onOxmEHc4C63nFJXqZ8YMnD2q-HKj_ZMxM,1033
76
76
  spb_onprem/datasets/__init__.py,sha256=Sjrb1tewB3CoODtHjRYOe-w2HpZi9UgbCyE2p8MzHfw,74
77
77
  spb_onprem/datasets/queries.py,sha256=PSj-3tOJfWUw8YXsv682LbcZoGbGHGgSQbWQGXjLePY,1912
78
78
  spb_onprem/datasets/service.py,sha256=ehc3IMYCN72pWZXvSs-j5jeYWQ6CxkU-0AA1-OwmtIk,3872
@@ -108,7 +108,7 @@ spb_onprem/slices/params/update_slice.py,sha256=kryOmCnRTQ_OU0qDKgugppLrpeUpuLwm
108
108
  spb_onprem/users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
109
  spb_onprem/users/entities/__init__.py,sha256=X8HZsCTlQnuPszok3AwI-i7bsQi0Ehul5L_2jZaol5E,57
110
110
  spb_onprem/users/entities/auth.py,sha256=_KP-7yUErBxhJMm-dE3ObprPEG6e0JI2qNg6g8aK1qM,3371
111
- superb_ai_onprem-0.5.8.dist-info/licenses/LICENSE,sha256=CdinbFiHKGkGl6cPde6WgXhMuzyUXEG6tzy2-7udZ8o,1066
111
+ superb_ai_onprem-0.5.10.dist-info/licenses/LICENSE,sha256=CdinbFiHKGkGl6cPde6WgXhMuzyUXEG6tzy2-7udZ8o,1066
112
112
  tests/__init__.py,sha256=Nqnn8clbgv-5l0PgxcTOldg8mkMKrFn4TvPL-rYUUGg,1
113
113
  tests/activities/__init__.py,sha256=Nqnn8clbgv-5l0PgxcTOldg8mkMKrFn4TvPL-rYUUGg,1
114
114
  tests/activities/real_test.py,sha256=0gQHg7rIEuZndGZyNHMWSD5nUZPMsUGigfCjWFxMthQ,1786
@@ -121,7 +121,7 @@ tests/exports/test_entities.py,sha256=hG7G4kVkyHKT3mv4lvrzUqOW8ILeHiYj87QZjQcmg9
121
121
  tests/exports/test_integration.py,sha256=cCcEgwIIHyQRlc04EAXSKz7RcblQvhI2GBR3uVaOOq8,6201
122
122
  tests/exports/test_params.py,sha256=oRRa6nEru_FImlB3TrmFiBidz6ZstCx4rVaCK-EMGfQ,11070
123
123
  tests/exports/test_service.py,sha256=IDcKxrmByh00jk9142P2ThuGureMoijTHNdU0rERGG8,14628
124
- superb_ai_onprem-0.5.8.dist-info/METADATA,sha256=uuwPhCI6hNstRsrePMgkC2O3caJVLUeChVb8r6do8sI,5817
125
- superb_ai_onprem-0.5.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
126
- superb_ai_onprem-0.5.8.dist-info/top_level.txt,sha256=LbqU6FjWKaxO7FPS5-71e3OIS8VgBi5VrtQMWFOW25Q,17
127
- superb_ai_onprem-0.5.8.dist-info/RECORD,,
124
+ superb_ai_onprem-0.5.10.dist-info/METADATA,sha256=JJIfex7sDBjoqRwth4WEEkTyMzsu1qALX9arBRqbd0g,5818
125
+ superb_ai_onprem-0.5.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
126
+ superb_ai_onprem-0.5.10.dist-info/top_level.txt,sha256=LbqU6FjWKaxO7FPS5-71e3OIS8VgBi5VrtQMWFOW25Q,17
127
+ superb_ai_onprem-0.5.10.dist-info/RECORD,,