superb-ai-onprem 0.1.0__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 +74 -0
- spb_onprem/_version.py +21 -0
- spb_onprem/base_model.py +6 -0
- spb_onprem/base_service.py +164 -0
- spb_onprem/base_types.py +11 -0
- spb_onprem/contents/__init__.py +6 -0
- spb_onprem/contents/entities/__init__.py +8 -0
- spb_onprem/contents/entities/base_content.py +13 -0
- spb_onprem/contents/entities/content.py +17 -0
- spb_onprem/contents/queries.py +39 -0
- spb_onprem/contents/service.py +132 -0
- spb_onprem/data/__init__.py +6 -0
- spb_onprem/data/entities/__init__.py +15 -0
- spb_onprem/data/entities/annotation.py +25 -0
- spb_onprem/data/entities/data.py +28 -0
- spb_onprem/data/entities/data_meta.py +31 -0
- spb_onprem/data/entities/prediction.py +13 -0
- spb_onprem/data/entities/scene.py +14 -0
- spb_onprem/data/enums/__init__.py +10 -0
- spb_onprem/data/enums/data_meta_type.py +15 -0
- spb_onprem/data/enums/data_type.py +9 -0
- spb_onprem/data/enums/scene_type.py +10 -0
- spb_onprem/data/params/__init__.py +59 -0
- spb_onprem/data/params/create_data.py +68 -0
- spb_onprem/data/params/data.py +24 -0
- spb_onprem/data/params/data_list.py +96 -0
- spb_onprem/data/params/delete_annotation_version.py +20 -0
- spb_onprem/data/params/delete_data.py +17 -0
- spb_onprem/data/params/delete_prediction.py +22 -0
- spb_onprem/data/params/delete_scene.py +22 -0
- spb_onprem/data/params/insert_annotation_version.py +29 -0
- spb_onprem/data/params/insert_data_to_slice.py +22 -0
- spb_onprem/data/params/insert_prediction.py +25 -0
- spb_onprem/data/params/insert_scene.py +32 -0
- spb_onprem/data/params/remove_data_from_slice.py +22 -0
- spb_onprem/data/params/remove_data_meta.py +64 -0
- spb_onprem/data/params/update_annotation.py +30 -0
- spb_onprem/data/params/update_data.py +72 -0
- spb_onprem/data/params/update_scene.py +37 -0
- spb_onprem/data/params/upsert_data_meta.py +48 -0
- spb_onprem/data/queries.py +360 -0
- spb_onprem/data/service.py +524 -0
- spb_onprem/datasets/__init__.py +6 -0
- spb_onprem/datasets/entities/__init__.py +6 -0
- spb_onprem/datasets/entities/dataset.py +14 -0
- spb_onprem/datasets/params/__init__.py +11 -0
- spb_onprem/datasets/params/create_dataset.py +32 -0
- spb_onprem/datasets/params/dataset.py +26 -0
- spb_onprem/datasets/params/datasets.py +53 -0
- spb_onprem/datasets/params/update_dataset.py +39 -0
- spb_onprem/datasets/queries.py +79 -0
- spb_onprem/datasets/service.py +132 -0
- spb_onprem/exceptions.py +40 -0
- spb_onprem/slices/__init__.py +6 -0
- spb_onprem/slices/entities/__init__.py +5 -0
- spb_onprem/slices/entities/slice.py +17 -0
- spb_onprem/slices/params/__init__.py +23 -0
- spb_onprem/slices/params/create_slice.py +36 -0
- spb_onprem/slices/params/delete_slice.py +0 -0
- spb_onprem/slices/params/slice.py +42 -0
- spb_onprem/slices/params/slices.py +62 -0
- spb_onprem/slices/params/update_slice.py +45 -0
- spb_onprem/slices/queries.py +121 -0
- spb_onprem/slices/service.py +173 -0
- spb_onprem/users/__init__.py +0 -0
- spb_onprem/users/entities/__init__.py +5 -0
- spb_onprem/users/entities/auth.py +86 -0
- superb_ai_onprem-0.1.0.dist-info/METADATA +246 -0
- superb_ai_onprem-0.1.0.dist-info/RECORD +72 -0
- superb_ai_onprem-0.1.0.dist-info/WHEEL +5 -0
- superb_ai_onprem-0.1.0.dist-info/licenses/LICENSE +21 -0
- superb_ai_onprem-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from typing import Union
|
|
2
|
+
|
|
3
|
+
from spb_onprem.base_types import Undefined, UndefinedType
|
|
4
|
+
from spb_onprem.exceptions import BadParameterError
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def update_dataset_params(
|
|
8
|
+
dataset_id: str,
|
|
9
|
+
name: Union[
|
|
10
|
+
str,
|
|
11
|
+
UndefinedType,
|
|
12
|
+
] = Undefined,
|
|
13
|
+
description: Union[
|
|
14
|
+
str,
|
|
15
|
+
UndefinedType,
|
|
16
|
+
] = Undefined,
|
|
17
|
+
):
|
|
18
|
+
"""Update parameters for dataset modification.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
id: ID of the dataset to update
|
|
22
|
+
name: Optional new name for the dataset
|
|
23
|
+
description: Optional new description for the dataset
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
dict: Parameters for dataset update
|
|
27
|
+
"""
|
|
28
|
+
if dataset_id is None:
|
|
29
|
+
raise BadParameterError("Dataset ID is required")
|
|
30
|
+
|
|
31
|
+
params = {
|
|
32
|
+
"id": dataset_id,
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if name is not Undefined:
|
|
36
|
+
params["name"] = name
|
|
37
|
+
if description is not Undefined:
|
|
38
|
+
params["description"] = description
|
|
39
|
+
return params
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from spb_onprem.datasets.params import (
|
|
2
|
+
dataset_params,
|
|
3
|
+
datasets_params,
|
|
4
|
+
create_dataset_params,
|
|
5
|
+
update_dataset_params,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
class Schemas:
|
|
9
|
+
DATASET = '''
|
|
10
|
+
id
|
|
11
|
+
name
|
|
12
|
+
description
|
|
13
|
+
createdAt
|
|
14
|
+
createdBy
|
|
15
|
+
updatedAt
|
|
16
|
+
updatedBy
|
|
17
|
+
'''
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class Queries():
|
|
21
|
+
DATASET = {
|
|
22
|
+
"name": "dataset",
|
|
23
|
+
"query": f'''
|
|
24
|
+
query Dataset(
|
|
25
|
+
$name: String,
|
|
26
|
+
$datasetId: ID
|
|
27
|
+
) {{
|
|
28
|
+
dataset(
|
|
29
|
+
name: $name,
|
|
30
|
+
datasetId: $datasetId
|
|
31
|
+
) {{
|
|
32
|
+
{Schemas.DATASET}
|
|
33
|
+
}}
|
|
34
|
+
}}
|
|
35
|
+
''',
|
|
36
|
+
"variables": dataset_params,
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
DATASETS = {
|
|
40
|
+
"name": "datasets",
|
|
41
|
+
"query": f'''
|
|
42
|
+
query Datasets(
|
|
43
|
+
$name: String,
|
|
44
|
+
$datasetId: ID
|
|
45
|
+
) {{
|
|
46
|
+
datasets(
|
|
47
|
+
name: $name,
|
|
48
|
+
id: $datasetId
|
|
49
|
+
) {{
|
|
50
|
+
{Schemas.DATASET}
|
|
51
|
+
}}
|
|
52
|
+
}}
|
|
53
|
+
''',
|
|
54
|
+
"variables": datasets_params,
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
CREATE_DATASET = {
|
|
58
|
+
"name": "createDataset",
|
|
59
|
+
"query": f'''
|
|
60
|
+
mutation CreateDataset($name: String!, $description: String) {{
|
|
61
|
+
createDataset(name: $name, description: $description) {{
|
|
62
|
+
{Schemas.DATASET}
|
|
63
|
+
}}
|
|
64
|
+
}}
|
|
65
|
+
''',
|
|
66
|
+
"variables": create_dataset_params,
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
UPDATE_DATASET = {
|
|
70
|
+
"name": "updateDataset",
|
|
71
|
+
"query": f'''
|
|
72
|
+
mutation UpdateDataset($updateDatasetId: ID!, $name: String, $description: String) {{
|
|
73
|
+
updateDataset(id: $updateDatasetId, name: $name, description: $description) {{
|
|
74
|
+
{Schemas.DATASET}
|
|
75
|
+
}}
|
|
76
|
+
}}
|
|
77
|
+
''',
|
|
78
|
+
"variables": update_dataset_params,
|
|
79
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
from typing import Optional, Union
|
|
2
|
+
from spb_onprem.base_service import BaseService
|
|
3
|
+
from spb_onprem.exceptions import BadParameterError
|
|
4
|
+
from spb_onprem.base_types import Undefined, UndefinedType
|
|
5
|
+
from .queries import Queries
|
|
6
|
+
from .entities import Dataset
|
|
7
|
+
from .params.datasets import DatasetsFilter
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DatasetService(BaseService):
|
|
11
|
+
"""
|
|
12
|
+
Service class for handling dataset-related operations.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
def get_datasets(
|
|
16
|
+
self,
|
|
17
|
+
datasets_filter: Optional[DatasetsFilter] = None,
|
|
18
|
+
cursor: Optional[str] = None,
|
|
19
|
+
length: Optional[int] = 10
|
|
20
|
+
):
|
|
21
|
+
"""
|
|
22
|
+
Get a list of datasets based on the provided filter and pagination parameters.
|
|
23
|
+
|
|
24
|
+
Args:
|
|
25
|
+
datasets_filter (Union[DatasetsFilter, UndefinedType]): Filter criteria for datasets
|
|
26
|
+
cursor (Optional[str]): Cursor for pagination
|
|
27
|
+
length (Optional[int]): Number of items per page (default: 10)
|
|
28
|
+
|
|
29
|
+
Returns:
|
|
30
|
+
List[Dataset]: A list of Dataset objects
|
|
31
|
+
"""
|
|
32
|
+
if length > 50:
|
|
33
|
+
raise BadParameterError("The maximum length is 50.")
|
|
34
|
+
|
|
35
|
+
response = self.request_gql(
|
|
36
|
+
Queries.DATASETS,
|
|
37
|
+
Queries.DATASETS["variables"](
|
|
38
|
+
datasets_filter=datasets_filter,
|
|
39
|
+
cursor=cursor,
|
|
40
|
+
length=length
|
|
41
|
+
)
|
|
42
|
+
)
|
|
43
|
+
datasets = [Dataset.model_validate(dataset) for dataset in response["datasets"]]
|
|
44
|
+
return (
|
|
45
|
+
datasets,
|
|
46
|
+
response.get("next", None),
|
|
47
|
+
response.get("totalCount", False)
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
def get_dataset(
|
|
51
|
+
self,
|
|
52
|
+
dataset_id: Optional[str] = None,
|
|
53
|
+
name: Optional[str] = None,
|
|
54
|
+
):
|
|
55
|
+
"""
|
|
56
|
+
Retrieve a dataset by its ID or name.
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
dataset_id (Optional[str]): The ID of the dataset to retrieve.
|
|
60
|
+
name (Optional[str]): The name of the dataset to retrieve.
|
|
61
|
+
|
|
62
|
+
Returns:
|
|
63
|
+
Dataset: The retrieved dataset object.
|
|
64
|
+
"""
|
|
65
|
+
response = self.request_gql(
|
|
66
|
+
Queries.DATASET,
|
|
67
|
+
Queries.DATASET["variables"](
|
|
68
|
+
dataset_id=dataset_id,
|
|
69
|
+
name=name
|
|
70
|
+
),
|
|
71
|
+
)
|
|
72
|
+
return Dataset.model_validate(response)
|
|
73
|
+
|
|
74
|
+
def create_dataset(
|
|
75
|
+
self,
|
|
76
|
+
name: str,
|
|
77
|
+
description: Union[
|
|
78
|
+
str,
|
|
79
|
+
UndefinedType,
|
|
80
|
+
] = Undefined,
|
|
81
|
+
):
|
|
82
|
+
"""
|
|
83
|
+
Create a new dataset.
|
|
84
|
+
|
|
85
|
+
Args:
|
|
86
|
+
name (str): The name of the dataset to create.
|
|
87
|
+
description (Optional[str]): The description of the dataset to create.
|
|
88
|
+
|
|
89
|
+
Returns:
|
|
90
|
+
Dataset: The created dataset object.
|
|
91
|
+
"""
|
|
92
|
+
response = self.request_gql(
|
|
93
|
+
Queries.CREATE_DATASET,
|
|
94
|
+
Queries.CREATE_DATASET["variables"](
|
|
95
|
+
name=name,
|
|
96
|
+
description=description,
|
|
97
|
+
),
|
|
98
|
+
)
|
|
99
|
+
return Dataset.model_validate(response)
|
|
100
|
+
|
|
101
|
+
def update_dataset(
|
|
102
|
+
self,
|
|
103
|
+
dataset_id: str,
|
|
104
|
+
name: Union[
|
|
105
|
+
str,
|
|
106
|
+
UndefinedType,
|
|
107
|
+
] = Undefined,
|
|
108
|
+
description: Union[
|
|
109
|
+
str,
|
|
110
|
+
UndefinedType,
|
|
111
|
+
] = Undefined,
|
|
112
|
+
):
|
|
113
|
+
"""
|
|
114
|
+
Update a dataset.
|
|
115
|
+
|
|
116
|
+
Args:
|
|
117
|
+
dataset_id (str): The ID of the dataset to update.
|
|
118
|
+
name (Optional[str]): The name of the dataset to update.
|
|
119
|
+
description (Optional[str]): The description of the dataset to update.
|
|
120
|
+
|
|
121
|
+
Returns:
|
|
122
|
+
Dataset: The updated dataset object.
|
|
123
|
+
"""
|
|
124
|
+
response = self.request_gql(
|
|
125
|
+
Queries.UPDATE_DATASET,
|
|
126
|
+
Queries.UPDATE_DATASET["variables"](
|
|
127
|
+
dataset_id=dataset_id,
|
|
128
|
+
name=name,
|
|
129
|
+
description=description,
|
|
130
|
+
),
|
|
131
|
+
)
|
|
132
|
+
return Dataset.model_validate(response)
|
spb_onprem/exceptions.py
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
class BaseSDKError(Exception):
|
|
4
|
+
pass
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class SDKConfigError(BaseSDKError):
|
|
8
|
+
pass
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class BadParameterError(BaseSDKError):
|
|
12
|
+
pass
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class NotFoundError(BaseSDKError):
|
|
16
|
+
pass
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class RequestError(BaseSDKError):
|
|
20
|
+
pass
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class BadRequestError(RequestError):
|
|
24
|
+
pass
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class BadRequestParameterError(BadRequestError):
|
|
28
|
+
pass
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class ResponseError(BaseSDKError):
|
|
32
|
+
pass
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class BadResponseError(ResponseError):
|
|
36
|
+
pass
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class UnknownError(BaseSDKError):
|
|
40
|
+
pass
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from spb_onprem.base_model import CustomBaseModel, Field
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Slice(CustomBaseModel):
|
|
6
|
+
"""
|
|
7
|
+
THE SLICE.
|
|
8
|
+
"""
|
|
9
|
+
id: Optional[str] = None
|
|
10
|
+
dataset_id: Optional[str] = Field(None, alias="datasetId")
|
|
11
|
+
name: Optional[str] = None
|
|
12
|
+
description: Optional[str] = None
|
|
13
|
+
is_pinned: Optional[bool] = Field(None, alias="isPinned")
|
|
14
|
+
created_at: Optional[str] = Field(None, alias="createdAt")
|
|
15
|
+
created_by: Optional[str] = Field(None, alias="createdBy")
|
|
16
|
+
updated_at: Optional[str] = Field(None, alias="updatedAt")
|
|
17
|
+
updated_by: Optional[str] = Field(None, alias="updatedBy")
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from .slices import (
|
|
2
|
+
SlicesFilter,
|
|
3
|
+
SlicesFilterOptions,
|
|
4
|
+
slices_params,
|
|
5
|
+
)
|
|
6
|
+
from .slice import (
|
|
7
|
+
slice_params,
|
|
8
|
+
)
|
|
9
|
+
from .create_slice import (
|
|
10
|
+
create_slice_params,
|
|
11
|
+
)
|
|
12
|
+
from .update_slice import (
|
|
13
|
+
update_slice_params,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
__all__ = (
|
|
17
|
+
"SlicesFilter",
|
|
18
|
+
"SlicesFilterOptions",
|
|
19
|
+
"slices_params",
|
|
20
|
+
"slice_params",
|
|
21
|
+
"create_slice_params",
|
|
22
|
+
"update_slice_params",
|
|
23
|
+
)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from typing import Union
|
|
2
|
+
|
|
3
|
+
from spb_onprem.base_types import Undefined, UndefinedType
|
|
4
|
+
from spb_onprem.exceptions import BadParameterError
|
|
5
|
+
|
|
6
|
+
def create_slice_params(
|
|
7
|
+
dataset_id: str,
|
|
8
|
+
slice_name: str,
|
|
9
|
+
slice_description: Union[
|
|
10
|
+
UndefinedType,
|
|
11
|
+
str
|
|
12
|
+
] = Undefined,
|
|
13
|
+
):
|
|
14
|
+
"""Create parameters for slice creation.
|
|
15
|
+
|
|
16
|
+
Args:
|
|
17
|
+
dataset_id (str): The ID of the dataset to create the slice for.
|
|
18
|
+
slice_name (str): The name of the slice to create.
|
|
19
|
+
slice_description (Optional[str]): The description of the slice to create.
|
|
20
|
+
|
|
21
|
+
Returns:
|
|
22
|
+
dict: Parameters for slice creation
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
if dataset_id is None:
|
|
26
|
+
raise BadParameterError("Dataset ID is required")
|
|
27
|
+
if slice_name is None:
|
|
28
|
+
raise BadParameterError("Slice name is required")
|
|
29
|
+
|
|
30
|
+
params = {
|
|
31
|
+
"dataset_id": dataset_id,
|
|
32
|
+
"name": slice_name,
|
|
33
|
+
}
|
|
34
|
+
if slice_description is not Undefined:
|
|
35
|
+
params["description"] = slice_description
|
|
36
|
+
return params
|
|
File without changes
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from typing import Union
|
|
2
|
+
|
|
3
|
+
from spb_onprem.base_types import Undefined, UndefinedType
|
|
4
|
+
from spb_onprem.exceptions import BadParameterError
|
|
5
|
+
|
|
6
|
+
def slice_params(
|
|
7
|
+
dataset_id: str,
|
|
8
|
+
slice_id: Union[
|
|
9
|
+
UndefinedType,
|
|
10
|
+
str
|
|
11
|
+
] = Undefined,
|
|
12
|
+
name: Union[
|
|
13
|
+
UndefinedType,
|
|
14
|
+
str
|
|
15
|
+
] = Undefined,
|
|
16
|
+
):
|
|
17
|
+
"""Get parameters for slice lookup.
|
|
18
|
+
|
|
19
|
+
Args:
|
|
20
|
+
dataset_id (str): The ID of the dataset to lookup the slice for.
|
|
21
|
+
slice_id (Optional[str]): The ID of the slice to lookup.
|
|
22
|
+
name (Optional[str]): The name of the slice to lookup.
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
dict: Parameters for slice lookup
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
if dataset_id is None:
|
|
29
|
+
raise BadParameterError("Dataset ID is required")
|
|
30
|
+
|
|
31
|
+
params = {
|
|
32
|
+
"dataset_id": dataset_id,
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if slice_id is not Undefined:
|
|
36
|
+
params["id"] = slice_id
|
|
37
|
+
elif name is not Undefined:
|
|
38
|
+
params["name"] = name
|
|
39
|
+
else:
|
|
40
|
+
raise BadParameterError("Either slice_id or name must be provided.")
|
|
41
|
+
|
|
42
|
+
return params
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
from typing import (
|
|
2
|
+
Union,
|
|
3
|
+
Optional,
|
|
4
|
+
List
|
|
5
|
+
)
|
|
6
|
+
from spb_onprem.base_model import CustomBaseModel, Field
|
|
7
|
+
from spb_onprem.base_types import Undefined, UndefinedType
|
|
8
|
+
from spb_onprem.exceptions import BadParameterError
|
|
9
|
+
|
|
10
|
+
class SlicesFilterOptions(CustomBaseModel):
|
|
11
|
+
"""Options for filtering slices.
|
|
12
|
+
|
|
13
|
+
Attributes:
|
|
14
|
+
name_contains: Filter slices by name containing this string
|
|
15
|
+
id_in: Filter slices by list of IDs
|
|
16
|
+
"""
|
|
17
|
+
name_contains: Optional[str] = Field(None, alias="nameContains")
|
|
18
|
+
id_in: Optional[List[str]] = Field(None, alias="idIn")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class SlicesFilter(CustomBaseModel):
|
|
22
|
+
"""Filter criteria for slice queries.
|
|
23
|
+
|
|
24
|
+
Attributes:
|
|
25
|
+
must_filter: Conditions that must be met
|
|
26
|
+
not_filter: Conditions that must not be met
|
|
27
|
+
"""
|
|
28
|
+
must_filter: Optional[SlicesFilterOptions] = Field(None, alias="must")
|
|
29
|
+
not_filter: Optional[SlicesFilterOptions] = Field(None, alias="not")
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def slices_params(
|
|
33
|
+
dataset_id: str,
|
|
34
|
+
slices_filter: Union[
|
|
35
|
+
UndefinedType,
|
|
36
|
+
SlicesFilter
|
|
37
|
+
],
|
|
38
|
+
cursor: Optional[str] = None,
|
|
39
|
+
length: Optional[int] = 10
|
|
40
|
+
):
|
|
41
|
+
"""Get the params for the slices query.
|
|
42
|
+
|
|
43
|
+
Args:
|
|
44
|
+
dataset_id (str): the dataset id to get the slices for.
|
|
45
|
+
slices_filter (Union[ UndefinedType, SlicesFilter ]): the filter for the slices.
|
|
46
|
+
cursor (Optional[str], optional): The next cursor to get the next page of slices. Defaults to None.
|
|
47
|
+
length (Optional[int], optional): The number of slices to get. Defaults to 10.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
if dataset_id is None:
|
|
51
|
+
raise BadParameterError("Dataset ID is required")
|
|
52
|
+
params = {
|
|
53
|
+
"dataset_id": dataset_id,
|
|
54
|
+
"cursor": cursor,
|
|
55
|
+
"length": length,
|
|
56
|
+
}
|
|
57
|
+
if slices_filter is not Undefined:
|
|
58
|
+
params["filter"] = slices_filter.model_dump(
|
|
59
|
+
by_alias=True, exclude_unset=True
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
return params
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from typing import Union
|
|
2
|
+
|
|
3
|
+
from spb_onprem.base_types import UndefinedType, Undefined
|
|
4
|
+
from spb_onprem.exceptions import BadParameterError
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def update_slice_params(
|
|
8
|
+
dataset_id: str,
|
|
9
|
+
slice_id: str,
|
|
10
|
+
slice_name: Union[
|
|
11
|
+
UndefinedType,
|
|
12
|
+
str
|
|
13
|
+
] = Undefined,
|
|
14
|
+
slice_description: Union[
|
|
15
|
+
UndefinedType,
|
|
16
|
+
str
|
|
17
|
+
] = Undefined
|
|
18
|
+
):
|
|
19
|
+
"""Update slice parameters.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
dataset_id (str): The ID of the dataset to update the slice for.
|
|
23
|
+
slice_id (str): The ID of the slice to update.
|
|
24
|
+
slice_name (Optional[str]): The name of the slice to update.
|
|
25
|
+
slice_description (Optional[str]): The description of the slice to update.
|
|
26
|
+
|
|
27
|
+
Returns:
|
|
28
|
+
dict: Parameters for slice update
|
|
29
|
+
"""
|
|
30
|
+
if dataset_id is None:
|
|
31
|
+
raise BadParameterError("Dataset ID is required")
|
|
32
|
+
if slice_id is None:
|
|
33
|
+
raise BadParameterError("Slice ID is required")
|
|
34
|
+
|
|
35
|
+
variables = {
|
|
36
|
+
"dataset_id": dataset_id,
|
|
37
|
+
"id": slice_id,
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if slice_name is not Undefined:
|
|
41
|
+
variables["name"] = slice_name
|
|
42
|
+
if slice_description is not Undefined:
|
|
43
|
+
variables["description"] = slice_description
|
|
44
|
+
|
|
45
|
+
return variables
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
from spb_onprem.slices.params import (
|
|
2
|
+
slices_params,
|
|
3
|
+
slice_params,
|
|
4
|
+
create_slice_params,
|
|
5
|
+
update_slice_params,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Schemas:
|
|
10
|
+
"""Schemas for slices queries
|
|
11
|
+
"""
|
|
12
|
+
SLICE_PAGE= '''
|
|
13
|
+
slices {
|
|
14
|
+
id
|
|
15
|
+
name
|
|
16
|
+
}
|
|
17
|
+
next
|
|
18
|
+
totalCount
|
|
19
|
+
'''
|
|
20
|
+
|
|
21
|
+
SLICE = '''
|
|
22
|
+
id
|
|
23
|
+
datasetId
|
|
24
|
+
name
|
|
25
|
+
description
|
|
26
|
+
isPinned
|
|
27
|
+
createdAt
|
|
28
|
+
createdBy
|
|
29
|
+
updatedAt
|
|
30
|
+
updatedBy
|
|
31
|
+
'''
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class Queries:
|
|
35
|
+
'''
|
|
36
|
+
Queries for slices
|
|
37
|
+
'''
|
|
38
|
+
|
|
39
|
+
GET_SLICES = {
|
|
40
|
+
"name": "slices",
|
|
41
|
+
"query": f'''
|
|
42
|
+
query slices(
|
|
43
|
+
$dataset_id: String!,
|
|
44
|
+
$filter: SliceFilter,
|
|
45
|
+
$cursor: String,
|
|
46
|
+
$length: Int
|
|
47
|
+
) {{
|
|
48
|
+
slices(
|
|
49
|
+
datasetId: $dataset_id,
|
|
50
|
+
filter: $filter,
|
|
51
|
+
cursor: $cursor,
|
|
52
|
+
length: $length
|
|
53
|
+
) {{
|
|
54
|
+
{Schemas.SLICE_PAGE}
|
|
55
|
+
}}
|
|
56
|
+
}}
|
|
57
|
+
''',
|
|
58
|
+
"variables": slices_params,
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
GET_SLICE = {
|
|
62
|
+
"name": "slice",
|
|
63
|
+
"query": f'''
|
|
64
|
+
query slice(
|
|
65
|
+
$dataset_id: String!,
|
|
66
|
+
$id: ID
|
|
67
|
+
$name: String
|
|
68
|
+
) {{
|
|
69
|
+
slice(
|
|
70
|
+
datasetId: $dataset_id,
|
|
71
|
+
id: $id
|
|
72
|
+
name: $name
|
|
73
|
+
) {{
|
|
74
|
+
{Schemas.SLICE}
|
|
75
|
+
}}
|
|
76
|
+
}}
|
|
77
|
+
''',
|
|
78
|
+
"variables": slice_params,
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
CREATE_SLICE = {
|
|
82
|
+
"name": "createSlice",
|
|
83
|
+
"query": f'''
|
|
84
|
+
mutation createSlice(
|
|
85
|
+
$dataset_id: String!,
|
|
86
|
+
$name: String!,
|
|
87
|
+
$description: String
|
|
88
|
+
) {{
|
|
89
|
+
createSlice(
|
|
90
|
+
datasetId: $dataset_id,
|
|
91
|
+
name: $name,
|
|
92
|
+
description: $description
|
|
93
|
+
) {{
|
|
94
|
+
{Schemas.SLICE}
|
|
95
|
+
}}
|
|
96
|
+
}}
|
|
97
|
+
''',
|
|
98
|
+
"variables": create_slice_params,
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
UPDATE_SLICE = {
|
|
102
|
+
"name": "updateSlice",
|
|
103
|
+
"query": f'''
|
|
104
|
+
mutation updateSlice(
|
|
105
|
+
$dataset_id: String!,
|
|
106
|
+
$id: ID!,
|
|
107
|
+
$name: String,
|
|
108
|
+
$description: String
|
|
109
|
+
) {{
|
|
110
|
+
updateSlice(
|
|
111
|
+
datasetId: $dataset_id,
|
|
112
|
+
id: $id,
|
|
113
|
+
name: $name,
|
|
114
|
+
description: $description
|
|
115
|
+
) {{
|
|
116
|
+
{Schemas.SLICE}
|
|
117
|
+
}}
|
|
118
|
+
}}
|
|
119
|
+
''',
|
|
120
|
+
"variables": update_slice_params,
|
|
121
|
+
}
|