superb-ai-onprem 0.5.11__py3-none-any.whl → 0.5.12__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/__init__.py CHANGED
@@ -31,6 +31,7 @@ from .entities import (
31
31
  Export,
32
32
  Content,
33
33
  Frame,
34
+ Model,
34
35
 
35
36
  # Enums
36
37
  DataType,
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.11'
32
- __version_tuple__ = version_tuple = (0, 5, 11)
31
+ __version__ = version = '0.5.12'
32
+ __version_tuple__ = version_tuple = (0, 5, 12)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -624,7 +624,7 @@ class Queries():
624
624
  GET_DETAIL = {
625
625
  "name": "getDataDetail",
626
626
  "query": f'''
627
- query GetDataDetail($datasetId: String!, $id: String!) {{
627
+ query GetDataDetail($datasetId: ID!, $id: ID!) {{
628
628
  data(datasetId: $datasetId, id: $id) {{
629
629
  {Schemas.DATA_DETAIL}
630
630
  }}
@@ -269,7 +269,7 @@ class DataService(BaseService):
269
269
  self,
270
270
  dataset_id: str,
271
271
  data_id: str,
272
- ):
272
+ ) -> bool:
273
273
  """Delete a data.
274
274
 
275
275
  Args:
@@ -277,14 +277,21 @@ class DataService(BaseService):
277
277
  data_id (str): The data id.
278
278
 
279
279
  Returns:
280
- Data: The deleted data.
280
+ bool: True if deletion was successful.
281
+
282
+ Raises:
283
+ BadParameterError: If required parameters are missing.
281
284
  """
285
+ if dataset_id is None:
286
+ raise BadParameterError("dataset_id is required.")
287
+ if data_id is None:
288
+ raise BadParameterError("data_id is required.")
289
+
282
290
  response = self.request_gql(
283
291
  Queries.DELETE,
284
292
  Queries.DELETE["variables"](dataset_id=dataset_id, data_id=data_id)
285
293
  )
286
- data = Data.model_validate(response)
287
- return data
294
+ return response.get("deleteData", False)
288
295
 
289
296
  def insert_prediction(
290
297
  self,
@@ -82,7 +82,7 @@ class Queries():
82
82
  DELETE_DATASET = {
83
83
  "name": "deleteDataset",
84
84
  "query": '''
85
- mutation DeleteDataset($dataset_id: String!) {
85
+ mutation DeleteDataset($dataset_id: ID!) {
86
86
  deleteDataset(datasetId: $dataset_id)
87
87
  }
88
88
  ''',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superb-ai-onprem
3
- Version: 0.5.11
3
+ Version: 0.5.12
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
- spb_onprem/__init__.py,sha256=ugmA-tqXYbVB8OoRYW8SjxRitLTIwHvWQZ-U2KyKjdo,2885
2
- spb_onprem/_version.py,sha256=Sc1qEPGqm9lq7B7gOJTSc6KB6ru5lGdWZqZtirZLNXQ,706
1
+ spb_onprem/__init__.py,sha256=ZldbV-bTUi0Vb3fj_PXSZZEDRsBYn-5UBfWb-uVff6A,2896
2
+ spb_onprem/_version.py,sha256=WXjz7JY5pHmakepyBAnMz7K6J4B5aS4Bqj2ku8SvDoo,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
@@ -32,8 +32,8 @@ spb_onprem/contents/params/create.py,sha256=JLMbNiIecOsVvVSYY6DfUpWjZxZKuO9-NSpu
32
32
  spb_onprem/contents/params/delete_content.py,sha256=_M9d6FJpA47_pcM5YyHbMmTZv1F2wUwPryQTL9RxZwM,298
33
33
  spb_onprem/contents/params/get_download_url.py,sha256=3oaiqmjJRxw0U59SoTxoih1pcU-cuQvcU-g89lCcqtQ,98
34
34
  spb_onprem/data/__init__.py,sha256=5XKxNm2BlKufrX5uRQreUEzJ-nerTrozKpG1RJL5wt8,68
35
- spb_onprem/data/queries.py,sha256=mGnBBDuFNNVMpATid-uNpqVEzeu3R3u0wZnQDe8wR-o,17154
36
- spb_onprem/data/service.py,sha256=nUGw9Scn5FLFLURAXOid5sGrlfQLGH7r59uOCzTHVjk,25799
35
+ spb_onprem/data/queries.py,sha256=qQSSbMsPDSR_q_teEEGHrqEsvLtk3ecbS9xvoxyNPGQ,17146
36
+ spb_onprem/data/service.py,sha256=1YkAvtpqVweUOba79zXk13nx3Q8E3cUrUJm-K8R54AE,26081
37
37
  spb_onprem/data/entities/__init__.py,sha256=ZQ2YWAHIan2ZLa1z5ozPSJwW3pqdlsJCxmAT3NuG89c,376
38
38
  spb_onprem/data/entities/annotation.py,sha256=pS97Nx3TWMBrb-iiBfRct4RXl7hPMy2IOzTIpXkmBJU,751
39
39
  spb_onprem/data/entities/data.py,sha256=TOdnete4bfwROQ7C7oew7vV8bZyewQvFdjccyx4mec8,1217
@@ -77,7 +77,7 @@ spb_onprem/data/params/update_slice_annotation.py,sha256=7eu2DFvznOv0HuvKiZTHDOT
77
77
  spb_onprem/data/params/update_slice_annotation_version.py,sha256=M2STViLDSQDZ0WNYLcenum-NHpKQXUOfGh1XE6An_7c,1318
78
78
  spb_onprem/data/params/upsert_data_meta.py,sha256=faBI9UuH9onOxmEHc4C63nFJXqZ8YMnD2q-HKj_ZMxM,1033
79
79
  spb_onprem/datasets/__init__.py,sha256=Sjrb1tewB3CoODtHjRYOe-w2HpZi9UgbCyE2p8MzHfw,74
80
- spb_onprem/datasets/queries.py,sha256=uJKFD8awmmO6wiltX7fN8ovR0_yewarKkpHAwR7LRXY,2211
80
+ spb_onprem/datasets/queries.py,sha256=-qsAaD19ESZ-qsbBEao19FM4b0LgLWYHQQXlpP5Lbos,2207
81
81
  spb_onprem/datasets/service.py,sha256=r5dim9mQcyb_gwBQ9oG4je0K8iHs1elvcWFLW9wvzYA,4439
82
82
  spb_onprem/datasets/entities/__init__.py,sha256=yx5tsyX4GLYrjqx6-ZEoceJ7jxQzIh15OgyFFCs7vow,59
83
83
  spb_onprem/datasets/entities/dataset.py,sha256=HO7EU5vwSBnILCI9xXhgZb36akIi6AC0ApamQlQczhU,538
@@ -132,7 +132,7 @@ spb_onprem/slices/params/update_slice.py,sha256=kryOmCnRTQ_OU0qDKgugppLrpeUpuLwm
132
132
  spb_onprem/users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
133
  spb_onprem/users/entities/__init__.py,sha256=X8HZsCTlQnuPszok3AwI-i7bsQi0Ehul5L_2jZaol5E,57
134
134
  spb_onprem/users/entities/auth.py,sha256=_KP-7yUErBxhJMm-dE3ObprPEG6e0JI2qNg6g8aK1qM,3371
135
- superb_ai_onprem-0.5.11.dist-info/licenses/LICENSE,sha256=CdinbFiHKGkGl6cPde6WgXhMuzyUXEG6tzy2-7udZ8o,1066
135
+ superb_ai_onprem-0.5.12.dist-info/licenses/LICENSE,sha256=CdinbFiHKGkGl6cPde6WgXhMuzyUXEG6tzy2-7udZ8o,1066
136
136
  tests/__init__.py,sha256=Nqnn8clbgv-5l0PgxcTOldg8mkMKrFn4TvPL-rYUUGg,1
137
137
  tests/activities/__init__.py,sha256=Nqnn8clbgv-5l0PgxcTOldg8mkMKrFn4TvPL-rYUUGg,1
138
138
  tests/activities/real_test.py,sha256=0gQHg7rIEuZndGZyNHMWSD5nUZPMsUGigfCjWFxMthQ,1786
@@ -140,9 +140,9 @@ tests/activities/test_get_activity_history.py,sha256=gNLc4OQLgw9wqToRxV0y5REAHPu
140
140
  tests/activities/test_params.py,sha256=P_k03Ll-We3gyFTeACalErP1UzwS2gB6ayIerKMMLEU,2335
141
141
  tests/activities/test_service.py,sha256=8nijwzJlAFL9S0TqyuAvOJZzBvPPjxJbrj3EyziT_Ng,4407
142
142
  tests/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
- tests/data/test_data_service.py,sha256=JgcNozcwECKN9-LR80FXkH4RslXVWAGJh-FyODcmRCk,13702
143
+ tests/data/test_data_service.py,sha256=Zsxj17-NwjZjxwL2PME29D-jMiPspD8m4h8qRajbz68,16901
144
144
  tests/datasets/__init__.py,sha256=nMsjhPXe9rU87gI_wasqCtz7SsTae2LzpUUnXXzS5zI,23
145
- tests/datasets/test_dataset_service.py,sha256=Sgw0HWZZJaPWVsbEq6w8tG4WlRBA98b1EoXLT8hRz_E,4881
145
+ tests/datasets/test_dataset_service.py,sha256=0BLmg_jslfzA_plm9dElws6eVfeOEQKuOq-nAmKNnqc,4899
146
146
  tests/exports/__init__.py,sha256=iBqr781TtnT1Tm5wLTCsdftpuRgQifIibxWrB_I7tiw,23
147
147
  tests/exports/real_test.py,sha256=KeHWvQP-vHCvFWvD4_7qFmreAX9o_Dd_YowaGFogZu8,3765
148
148
  tests/exports/test_entities.py,sha256=hG7G4kVkyHKT3mv4lvrzUqOW8ILeHiYj87QZjQcmg9E,8836
@@ -153,7 +153,7 @@ tests/models/__init__.py,sha256=Z2naiUgIjI-nHGsldwze1BqpV5JfDKTaBk-vg6_h6t4,21
153
153
  tests/models/test_model_service.py,sha256=6Wm9nmY7nbqImSu62d0q4VtNiCjKpMji6eSIgSi7lfA,7587
154
154
  tests/predictions/__init__.py,sha256=mFAXy0xOEXVYM7quYfIhwSih3kcEDdD4rLPq5G91Igg,26
155
155
  tests/predictions/test_prediction_service.py,sha256=9maX0JGxfUJ1QO_YEdS9OI5-o1tXlMWyeEbvZB8LB48,12679
156
- superb_ai_onprem-0.5.11.dist-info/METADATA,sha256=FK0vXshMvz4-5X8q-xxbJSLXKuvxki54YnRLwrKwEFk,5818
157
- superb_ai_onprem-0.5.11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
158
- superb_ai_onprem-0.5.11.dist-info/top_level.txt,sha256=LbqU6FjWKaxO7FPS5-71e3OIS8VgBi5VrtQMWFOW25Q,17
159
- superb_ai_onprem-0.5.11.dist-info/RECORD,,
156
+ superb_ai_onprem-0.5.12.dist-info/METADATA,sha256=upjQk-uEG-jYRUQ1dip1LGz0WrKmnmreaJp4JWmf9aE,5818
157
+ superb_ai_onprem-0.5.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
158
+ superb_ai_onprem-0.5.12.dist-info/top_level.txt,sha256=LbqU6FjWKaxO7FPS5-71e3OIS8VgBi5VrtQMWFOW25Q,17
159
+ superb_ai_onprem-0.5.12.dist-info/RECORD,,
@@ -126,7 +126,7 @@ class TestDataService:
126
126
 
127
127
  # Assert
128
128
  assert query_structure["name"] == "getDataDetail"
129
- assert "query GetDataDetail($datasetId: String!, $id: String!)" in query_structure["query"]
129
+ assert "query GetDataDetail($datasetId: ID!, $id: ID!)" in query_structure["query"]
130
130
  assert "data(datasetId: $datasetId, id: $id)" in query_structure["query"]
131
131
  assert callable(query_structure["variables"])
132
132
 
@@ -409,4 +409,96 @@ class TestDataService:
409
409
  )
410
410
 
411
411
  # Assert
412
- assert result == 0
412
+ assert result == 0
413
+
414
+ def test_delete_data_query_structure(self):
415
+ """Test DELETE query structure and parameters."""
416
+ # Arrange
417
+ dataset_id = "dataset-123"
418
+ data_id = "data-456"
419
+
420
+ # Act
421
+ query = Queries.DELETE["query"]
422
+ variables = Queries.DELETE["variables"](dataset_id=dataset_id, data_id=data_id)
423
+
424
+ # Assert
425
+ assert "mutation DeleteData(" in query
426
+ assert "$dataset_id: ID!" in query
427
+ assert "$data_id: ID!" in query
428
+ assert "$data_id: ID!," not in query # Ensure no trailing comma
429
+ assert "deleteData(" in query
430
+ assert "datasetId: $dataset_id" in query
431
+ assert "id: $data_id" in query
432
+ assert "id: $data_id," not in query # Ensure no trailing comma
433
+ assert variables == {
434
+ "dataset_id": dataset_id,
435
+ "id": data_id
436
+ }
437
+
438
+ def test_delete_data_success(self):
439
+ """Test successful data deletion."""
440
+ # Arrange
441
+ dataset_id = "dataset-123"
442
+ data_id = "data-456"
443
+ mock_response = {"deleteData": True}
444
+ self.data_service.request_gql.return_value = mock_response
445
+
446
+ # Act
447
+ result = self.data_service.delete_data(dataset_id=dataset_id, data_id=data_id)
448
+
449
+ # Assert
450
+ assert result is True
451
+ self.data_service.request_gql.assert_called_once_with(
452
+ Queries.DELETE,
453
+ Queries.DELETE["variables"](dataset_id=dataset_id, data_id=data_id)
454
+ )
455
+
456
+ def test_delete_data_failure(self):
457
+ """Test data deletion failure."""
458
+ # Arrange
459
+ dataset_id = "dataset-123"
460
+ data_id = "nonexistent-data"
461
+ mock_response = {"deleteData": False}
462
+ self.data_service.request_gql.return_value = mock_response
463
+
464
+ # Act
465
+ result = self.data_service.delete_data(dataset_id=dataset_id, data_id=data_id)
466
+
467
+ # Assert
468
+ assert result is False
469
+ self.data_service.request_gql.assert_called_once_with(
470
+ Queries.DELETE,
471
+ Queries.DELETE["variables"](dataset_id=dataset_id, data_id=data_id)
472
+ )
473
+
474
+ def test_delete_data_missing_response(self):
475
+ """Test data deletion with missing response field."""
476
+ # Arrange
477
+ dataset_id = "dataset-123"
478
+ data_id = "data-456"
479
+ mock_response = {}
480
+ self.data_service.request_gql.return_value = mock_response
481
+
482
+ # Act
483
+ result = self.data_service.delete_data(dataset_id=dataset_id, data_id=data_id)
484
+
485
+ # Assert
486
+ assert result is False
487
+
488
+ def test_delete_data_missing_dataset_id(self):
489
+ """Test delete_data with missing dataset_id."""
490
+ # Arrange
491
+ data_id = "data-456"
492
+
493
+ # Act & Assert
494
+ with pytest.raises(BadParameterError, match="dataset_id is required"):
495
+ self.data_service.delete_data(dataset_id=None, data_id=data_id)
496
+
497
+ def test_delete_data_missing_data_id(self):
498
+ """Test delete_data with missing data_id."""
499
+ # Arrange
500
+ dataset_id = "dataset-123"
501
+
502
+ # Act & Assert
503
+ with pytest.raises(BadParameterError, match="data_id is required"):
504
+ self.data_service.delete_data(dataset_id=dataset_id, data_id=None)
@@ -97,7 +97,7 @@ class TestDatasetService:
97
97
 
98
98
  # Check query contains expected mutation
99
99
  assert query["name"] == "deleteDataset"
100
- assert "mutation DeleteDataset" in query["query"]
100
+ assert "mutation DeleteDataset($dataset_id: ID!)" in query["query"]
101
101
  assert "deleteDataset(datasetId: $dataset_id)" in query["query"]
102
102
 
103
103
  # Check variables function is called correctly