digitalhub 0.8.0__py3-none-any.whl → 0.8.0b1__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 digitalhub might be problematic. Click here for more details.
- digitalhub/__init__.py +4 -5
- digitalhub/client/builder.py +58 -3
- digitalhub/client/{dhcore/client.py → objects/dhcore.py} +60 -48
- digitalhub/client/{local/client.py → objects/local.py} +2 -2
- digitalhub/context/builder.py +85 -1
- digitalhub/context/context.py +1 -1
- digitalhub/datastores/builder.py +37 -13
- digitalhub/datastores/{_base/datastore.py → objects/base.py} +3 -3
- digitalhub/datastores/{local/datastore.py → objects/local.py} +2 -10
- digitalhub/datastores/{remote/datastore.py → objects/remote.py} +1 -9
- digitalhub/datastores/{s3/datastore.py → objects/s3.py} +2 -10
- digitalhub/datastores/{sql/datastore.py → objects/sql.py} +2 -10
- digitalhub/entities/_base/{_base/entity.py → base.py} +1 -1
- digitalhub/entities/_base/crud.py +389 -247
- digitalhub/entities/_base/entity/{entity.py → base.py} +34 -8
- digitalhub/entities/_base/{context/entity.py → entity/context.py} +6 -6
- digitalhub/entities/_base/{executable/entity.py → entity/executable.py} +36 -61
- digitalhub/entities/_base/{material/entity.py → entity/material.py} +6 -6
- digitalhub/entities/_base/entity/unversioned.py +87 -0
- digitalhub/entities/_base/entity/versioned.py +94 -0
- digitalhub/entities/_base/{entity/metadata.py → metadata.py} +2 -2
- digitalhub/entities/_base/{entity/spec.py → spec/base.py} +11 -11
- digitalhub/entities/_base/{material/spec.py → spec/material.py} +3 -3
- digitalhub/entities/_base/{entity/status.py → status/base.py} +3 -14
- digitalhub/entities/_base/{material/status.py → status/material.py} +1 -1
- digitalhub/entities/_builders/metadata.py +60 -0
- digitalhub/entities/_builders/spec.py +43 -0
- digitalhub/entities/_builders/status.py +62 -0
- digitalhub/entities/{_base/entity/_constructors → _builders}/uuid.py +11 -4
- digitalhub/entities/artifact/builder.py +133 -0
- digitalhub/entities/artifact/crud.py +48 -22
- digitalhub/entities/artifact/{_base/entity.py → entity/_base.py} +5 -5
- digitalhub/entities/artifact/entity/artifact.py +9 -0
- digitalhub/entities/artifact/{artifact/spec.py → spec.py} +16 -4
- digitalhub/entities/artifact/{artifact/status.py → status.py} +1 -1
- digitalhub/entities/dataitem/builder.py +144 -0
- digitalhub/entities/dataitem/crud.py +52 -29
- digitalhub/entities/dataitem/{_base/entity.py → entity/_base.py} +5 -5
- digitalhub/entities/dataitem/entity/dataitem.py +9 -0
- digitalhub/entities/dataitem/entity/iceberg.py +7 -0
- digitalhub/entities/dataitem/{table/entity.py → entity/table.py} +4 -25
- digitalhub/entities/dataitem/spec.py +61 -0
- digitalhub/entities/dataitem/status.py +38 -0
- digitalhub/entities/function/builder.py +86 -0
- digitalhub/entities/function/crud.py +43 -17
- digitalhub/entities/function/{_base/entity.py → entity.py} +12 -9
- digitalhub/entities/function/{_base/models.py → models.py} +1 -1
- digitalhub/entities/function/spec.py +81 -0
- digitalhub/entities/function/status.py +9 -0
- digitalhub/entities/model/builder.py +152 -0
- digitalhub/entities/model/crud.py +48 -21
- digitalhub/entities/model/{_base/entity.py → entity/_base.py} +5 -5
- digitalhub/entities/model/entity/huggingface.py +9 -0
- digitalhub/entities/model/{mlflow/utils.py → entity/mlflow.py} +10 -1
- digitalhub/entities/model/entity/model.py +9 -0
- digitalhub/entities/model/entity/sklearn.py +9 -0
- digitalhub/entities/model/spec.py +146 -0
- digitalhub/entities/model/status.py +33 -0
- digitalhub/entities/project/builder.py +82 -0
- digitalhub/entities/project/crud.py +12 -19
- digitalhub/entities/project/{_base/entity.py → entity.py} +102 -120
- digitalhub/entities/project/{_base/spec.py → spec.py} +4 -4
- digitalhub/entities/project/status.py +9 -0
- digitalhub/entities/registries.py +48 -0
- digitalhub/entities/run/builder.py +77 -0
- digitalhub/entities/run/crud.py +33 -20
- digitalhub/entities/run/{_base/entity.py → entity.py} +189 -35
- digitalhub/entities/run/spec.py +153 -0
- digitalhub/entities/run/status.py +114 -0
- digitalhub/entities/secret/builder.py +93 -0
- digitalhub/entities/secret/crud.py +31 -27
- digitalhub/entities/secret/{_base/entity.py → entity.py} +7 -8
- digitalhub/entities/secret/{_base/spec.py → spec.py} +4 -4
- digitalhub/entities/secret/status.py +9 -0
- digitalhub/entities/task/builder.py +74 -0
- digitalhub/entities/task/crud.py +33 -20
- digitalhub/entities/task/{_base/entity.py → entity.py} +8 -9
- digitalhub/entities/task/{_base/models.py → models.py} +0 -9
- digitalhub/entities/task/{_base/spec.py → spec.py} +7 -9
- digitalhub/entities/task/status.py +9 -0
- digitalhub/entities/{utils/utils.py → utils.py} +2 -20
- digitalhub/entities/workflow/builder.py +91 -0
- digitalhub/entities/workflow/crud.py +43 -17
- digitalhub/entities/workflow/{_base/entity.py → entity.py} +12 -9
- digitalhub/entities/workflow/spec.py +15 -0
- digitalhub/entities/workflow/status.py +9 -0
- digitalhub/readers/builder.py +54 -0
- digitalhub/readers/{pandas/reader.py → objects/pandas.py} +1 -1
- digitalhub/readers/registry.py +15 -0
- digitalhub/registry/models.py +87 -0
- digitalhub/registry/registry.py +74 -0
- digitalhub/registry/utils.py +150 -0
- digitalhub/runtimes/{_base.py → base.py} +65 -3
- digitalhub/runtimes/builder.py +40 -19
- digitalhub/runtimes/kind_registry.py +170 -0
- digitalhub/stores/builder.py +52 -6
- digitalhub/stores/{local/store.py → objects/local.py} +1 -1
- digitalhub/stores/{remote/store.py → objects/remote.py} +1 -1
- digitalhub/stores/{s3/store.py → objects/s3.py} +1 -1
- digitalhub/stores/{sql/store.py → objects/sql.py} +1 -1
- digitalhub/{client/dhcore/utils.py → utils/env_utils.py} +14 -2
- digitalhub/utils/exceptions.py +0 -12
- digitalhub/utils/generic_utils.py +42 -18
- digitalhub/utils/io_utils.py +2 -39
- {digitalhub-0.8.0.dist-info → digitalhub-0.8.0b1.dist-info}/METADATA +2 -3
- digitalhub-0.8.0b1.dist-info/RECORD +161 -0
- {digitalhub-0.8.0.dist-info → digitalhub-0.8.0b1.dist-info}/WHEEL +1 -1
- test/test_crud_artifacts.py +96 -0
- test/test_crud_dataitems.py +96 -0
- test/test_crud_functions.py +1 -1
- test/test_crud_runs.py +1 -1
- test/test_crud_tasks.py +1 -1
- digitalhub/client/api.py +0 -63
- digitalhub/client/dhcore/env.py +0 -21
- digitalhub/client/dhcore/models.py +0 -46
- digitalhub/context/api.py +0 -93
- digitalhub/datastores/api.py +0 -37
- digitalhub/entities/_base/api_utils.py +0 -620
- digitalhub/entities/_base/entity/_constructors/metadata.py +0 -44
- digitalhub/entities/_base/entity/_constructors/spec.py +0 -33
- digitalhub/entities/_base/entity/_constructors/status.py +0 -52
- digitalhub/entities/_base/entity/builder.py +0 -175
- digitalhub/entities/_base/executable/__init__.py +0 -0
- digitalhub/entities/_base/material/__init__.py +0 -0
- digitalhub/entities/_base/runtime_entity/__init__.py +0 -0
- digitalhub/entities/_base/runtime_entity/builder.py +0 -106
- digitalhub/entities/_base/unversioned/__init__.py +0 -0
- digitalhub/entities/_base/unversioned/builder.py +0 -66
- digitalhub/entities/_base/unversioned/entity.py +0 -49
- digitalhub/entities/_base/versioned/__init__.py +0 -0
- digitalhub/entities/_base/versioned/builder.py +0 -68
- digitalhub/entities/_base/versioned/entity.py +0 -53
- digitalhub/entities/artifact/_base/__init__.py +0 -0
- digitalhub/entities/artifact/_base/builder.py +0 -86
- digitalhub/entities/artifact/_base/spec.py +0 -15
- digitalhub/entities/artifact/_base/status.py +0 -9
- digitalhub/entities/artifact/artifact/__init__.py +0 -0
- digitalhub/entities/artifact/artifact/builder.py +0 -18
- digitalhub/entities/artifact/artifact/entity.py +0 -32
- digitalhub/entities/builders.py +0 -63
- digitalhub/entities/dataitem/_base/__init__.py +0 -0
- digitalhub/entities/dataitem/_base/builder.py +0 -86
- digitalhub/entities/dataitem/_base/spec.py +0 -15
- digitalhub/entities/dataitem/_base/status.py +0 -20
- digitalhub/entities/dataitem/dataitem/__init__.py +0 -0
- digitalhub/entities/dataitem/dataitem/builder.py +0 -18
- digitalhub/entities/dataitem/dataitem/entity.py +0 -32
- digitalhub/entities/dataitem/dataitem/spec.py +0 -15
- digitalhub/entities/dataitem/dataitem/status.py +0 -9
- digitalhub/entities/dataitem/iceberg/__init__.py +0 -0
- digitalhub/entities/dataitem/iceberg/builder.py +0 -18
- digitalhub/entities/dataitem/iceberg/entity.py +0 -32
- digitalhub/entities/dataitem/iceberg/spec.py +0 -15
- digitalhub/entities/dataitem/iceberg/status.py +0 -9
- digitalhub/entities/dataitem/table/__init__.py +0 -0
- digitalhub/entities/dataitem/table/builder.py +0 -18
- digitalhub/entities/dataitem/table/spec.py +0 -25
- digitalhub/entities/dataitem/table/status.py +0 -9
- digitalhub/entities/function/_base/__init__.py +0 -0
- digitalhub/entities/function/_base/builder.py +0 -79
- digitalhub/entities/function/_base/spec.py +0 -15
- digitalhub/entities/function/_base/status.py +0 -9
- digitalhub/entities/model/_base/__init__.py +0 -0
- digitalhub/entities/model/_base/builder.py +0 -86
- digitalhub/entities/model/_base/spec.py +0 -49
- digitalhub/entities/model/_base/status.py +0 -9
- digitalhub/entities/model/huggingface/__init__.py +0 -0
- digitalhub/entities/model/huggingface/builder.py +0 -18
- digitalhub/entities/model/huggingface/entity.py +0 -32
- digitalhub/entities/model/huggingface/spec.py +0 -36
- digitalhub/entities/model/huggingface/status.py +0 -9
- digitalhub/entities/model/mlflow/__init__.py +0 -0
- digitalhub/entities/model/mlflow/builder.py +0 -18
- digitalhub/entities/model/mlflow/entity.py +0 -32
- digitalhub/entities/model/mlflow/spec.py +0 -44
- digitalhub/entities/model/mlflow/status.py +0 -9
- digitalhub/entities/model/model/__init__.py +0 -0
- digitalhub/entities/model/model/builder.py +0 -18
- digitalhub/entities/model/model/entity.py +0 -32
- digitalhub/entities/model/model/spec.py +0 -15
- digitalhub/entities/model/model/status.py +0 -9
- digitalhub/entities/model/sklearn/__init__.py +0 -0
- digitalhub/entities/model/sklearn/builder.py +0 -18
- digitalhub/entities/model/sklearn/entity.py +0 -32
- digitalhub/entities/model/sklearn/spec.py +0 -15
- digitalhub/entities/model/sklearn/status.py +0 -9
- digitalhub/entities/project/_base/__init__.py +0 -0
- digitalhub/entities/project/_base/builder.py +0 -128
- digitalhub/entities/project/_base/status.py +0 -9
- digitalhub/entities/run/_base/__init__.py +0 -0
- digitalhub/entities/run/_base/builder.py +0 -94
- digitalhub/entities/run/_base/spec.py +0 -50
- digitalhub/entities/run/_base/status.py +0 -9
- digitalhub/entities/secret/_base/__init__.py +0 -0
- digitalhub/entities/secret/_base/builder.py +0 -81
- digitalhub/entities/secret/_base/status.py +0 -9
- digitalhub/entities/task/_base/__init__.py +0 -0
- digitalhub/entities/task/_base/builder.py +0 -91
- digitalhub/entities/task/_base/status.py +0 -9
- digitalhub/entities/utils/__init__.py +0 -0
- digitalhub/entities/workflow/_base/__init__.py +0 -0
- digitalhub/entities/workflow/_base/builder.py +0 -79
- digitalhub/entities/workflow/_base/spec.py +0 -15
- digitalhub/entities/workflow/_base/status.py +0 -9
- digitalhub/factory/__init__.py +0 -0
- digitalhub/factory/api.py +0 -277
- digitalhub/factory/factory.py +0 -268
- digitalhub/factory/utils.py +0 -90
- digitalhub/readers/_base/__init__.py +0 -0
- digitalhub/readers/_base/builder.py +0 -26
- digitalhub/readers/api.py +0 -80
- digitalhub/readers/factory.py +0 -133
- digitalhub/readers/pandas/__init__.py +0 -0
- digitalhub/readers/pandas/builder.py +0 -29
- digitalhub/stores/_base/__init__.py +0 -0
- digitalhub/stores/api.py +0 -54
- digitalhub/stores/local/__init__.py +0 -0
- digitalhub/stores/remote/__init__.py +0 -0
- digitalhub/stores/s3/__init__.py +0 -0
- digitalhub/stores/sql/__init__.py +0 -0
- digitalhub/utils/s3_utils.py +0 -58
- digitalhub-0.8.0.dist-info/RECORD +0 -231
- test/local/CRUD/test_artifacts.py +0 -96
- test/local/CRUD/test_dataitems.py +0 -96
- test/local/CRUD/test_models.py +0 -95
- /digitalhub/client/{_base → objects}/__init__.py +0 -0
- /digitalhub/client/{_base/client.py → objects/base.py} +0 -0
- /digitalhub/{client/dhcore → datastores/objects}/__init__.py +0 -0
- /digitalhub/entities/{utils → _base}/api.py +0 -0
- /digitalhub/{client/local → entities/_base/spec}/__init__.py +0 -0
- /digitalhub/entities/{utils → _base}/state.py +0 -0
- /digitalhub/{datastores/_base → entities/_base/status}/__init__.py +0 -0
- /digitalhub/{datastores/local → entities/_builders}/__init__.py +0 -0
- /digitalhub/entities/{_base/entity/_constructors → _builders}/name.py +0 -0
- /digitalhub/{datastores/remote → entities/artifact/entity}/__init__.py +0 -0
- /digitalhub/{datastores/s3 → entities/dataitem/entity}/__init__.py +0 -0
- /digitalhub/entities/dataitem/{table/models.py → models.py} +0 -0
- /digitalhub/entities/{utils/entity_types.py → entity_types.py} +0 -0
- /digitalhub/{datastores/sql → entities/model/entity}/__init__.py +0 -0
- /digitalhub/entities/model/{mlflow/models.py → models.py} +0 -0
- /digitalhub/{entities/_base/_base → readers/objects}/__init__.py +0 -0
- /digitalhub/readers/{_base/reader.py → objects/base.py} +0 -0
- /digitalhub/{entities/_base/context → registry}/__init__.py +0 -0
- /digitalhub/{entities/_base/entity/_constructors → stores/objects}/__init__.py +0 -0
- /digitalhub/stores/{_base/store.py → objects/base.py} +0 -0
- {digitalhub-0.8.0.dist-info → digitalhub-0.8.0b1.dist-info}/LICENSE.txt +0 -0
- {digitalhub-0.8.0.dist-info → digitalhub-0.8.0b1.dist-info}/top_level.txt +0 -0
- /test/{local/imports/test_imports.py → test_imports.py} +0 -0
|
@@ -2,118 +2,215 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import typing
|
|
4
4
|
|
|
5
|
-
from digitalhub.
|
|
6
|
-
from digitalhub.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
from digitalhub.context.builder import get_context
|
|
6
|
+
from digitalhub.entities._base.api import (
|
|
7
|
+
api_base_create,
|
|
8
|
+
api_base_delete,
|
|
9
|
+
api_base_list,
|
|
10
|
+
api_base_read,
|
|
11
|
+
api_base_update,
|
|
12
|
+
api_ctx_create,
|
|
13
|
+
api_ctx_data,
|
|
14
|
+
api_ctx_delete,
|
|
15
|
+
api_ctx_files,
|
|
16
|
+
api_ctx_list,
|
|
17
|
+
api_ctx_logs,
|
|
18
|
+
api_ctx_read,
|
|
19
|
+
api_ctx_resume,
|
|
20
|
+
api_ctx_stop,
|
|
21
|
+
api_ctx_update,
|
|
13
22
|
)
|
|
14
|
-
from digitalhub.entities.utils
|
|
15
|
-
from digitalhub.entities.utils.utils import parse_entity_key
|
|
16
|
-
from digitalhub.factory.api import build_entity_from_dict, build_entity_from_params
|
|
17
|
-
from digitalhub.utils.exceptions import ContextError, EntityAlreadyExistsError, EntityError, EntityNotExistsError
|
|
18
|
-
from digitalhub.utils.io_utils import read_yaml
|
|
23
|
+
from digitalhub.entities.utils import parse_entity_key
|
|
19
24
|
|
|
20
25
|
if typing.TYPE_CHECKING:
|
|
21
|
-
from digitalhub.
|
|
22
|
-
from digitalhub.entities._base.executable.entity import ExecutableEntity
|
|
23
|
-
from digitalhub.entities._base.material.entity import MaterialEntity
|
|
24
|
-
from digitalhub.entities._base.unversioned.entity import UnversionedEntity
|
|
25
|
-
from digitalhub.entities._base.versioned.entity import VersionedEntity
|
|
26
|
+
from digitalhub.client.objects.base import Client
|
|
26
27
|
|
|
27
28
|
|
|
28
|
-
def
|
|
29
|
+
def create_entity_api_base(
|
|
30
|
+
client: Client,
|
|
31
|
+
entity_type: str,
|
|
32
|
+
entity_dict: dict,
|
|
33
|
+
**kwargs,
|
|
34
|
+
) -> dict:
|
|
29
35
|
"""
|
|
30
|
-
|
|
31
|
-
Otherwise try to get the project from remote.
|
|
36
|
+
Create object in backend.
|
|
32
37
|
|
|
33
38
|
Parameters
|
|
34
39
|
----------
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
client : Client
|
|
41
|
+
Client instance.
|
|
42
|
+
entity_type : str
|
|
43
|
+
Entity type.
|
|
44
|
+
entity_dict : dict
|
|
45
|
+
Object instance.
|
|
46
|
+
**kwargs : dict
|
|
47
|
+
Parameters to pass to the API call.
|
|
37
48
|
|
|
38
49
|
Returns
|
|
39
50
|
-------
|
|
40
|
-
|
|
51
|
+
dict
|
|
52
|
+
Object instance.
|
|
41
53
|
"""
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
except ContextError:
|
|
45
|
-
try:
|
|
46
|
-
build_client()
|
|
47
|
-
client = get_client()
|
|
48
|
-
obj = read_entity_api_base(client, EntityTypes.PROJECT.value, project)
|
|
49
|
-
build_entity_from_dict(obj)
|
|
50
|
-
except EntityNotExistsError:
|
|
51
|
-
raise ContextError(f"Project '{project}' not found.")
|
|
54
|
+
api = api_base_create(entity_type)
|
|
55
|
+
return client.create_object(api, entity_dict, **kwargs)
|
|
52
56
|
|
|
53
57
|
|
|
54
|
-
def
|
|
58
|
+
def read_entity_api_base(
|
|
59
|
+
client: Client,
|
|
60
|
+
entity_type: str,
|
|
61
|
+
entity_name: str,
|
|
62
|
+
**kwargs,
|
|
63
|
+
) -> dict:
|
|
55
64
|
"""
|
|
56
|
-
|
|
57
|
-
Otherwise try to get the project from remote.
|
|
65
|
+
Read object from backend.
|
|
58
66
|
|
|
59
67
|
Parameters
|
|
60
68
|
----------
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
69
|
+
client : Client
|
|
70
|
+
Client instance.
|
|
71
|
+
entity_type : str
|
|
72
|
+
Entity type.
|
|
73
|
+
entity_name : str
|
|
74
|
+
Entity name.
|
|
75
|
+
**kwargs : dict
|
|
76
|
+
Parameters to pass to the API call.
|
|
65
77
|
|
|
66
78
|
Returns
|
|
67
79
|
-------
|
|
68
|
-
|
|
80
|
+
dict
|
|
81
|
+
Object instance.
|
|
69
82
|
"""
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
raise EntityError("Specify project if you do not specify entity key.")
|
|
83
|
+
api = api_base_read(entity_type, entity_name)
|
|
84
|
+
return client.read_object(api, **kwargs)
|
|
73
85
|
|
|
74
|
-
else:
|
|
75
|
-
project, _, _, _, _ = parse_entity_key(identifier)
|
|
76
86
|
|
|
77
|
-
|
|
87
|
+
def update_entity_api_base(
|
|
88
|
+
client: Client,
|
|
89
|
+
entity_type: str,
|
|
90
|
+
entity_name: str,
|
|
91
|
+
entity_dict: dict,
|
|
92
|
+
**kwargs,
|
|
93
|
+
) -> dict:
|
|
94
|
+
"""
|
|
95
|
+
Update object. Note that object spec are immutable.
|
|
96
|
+
|
|
97
|
+
Parameters
|
|
98
|
+
----------
|
|
99
|
+
client : Client
|
|
100
|
+
Client instance.
|
|
101
|
+
entity_type : str
|
|
102
|
+
Entity type.
|
|
103
|
+
entity_name : str
|
|
104
|
+
Entity name.
|
|
105
|
+
entity_dict : dict
|
|
106
|
+
Object instance.
|
|
107
|
+
**kwargs : dict
|
|
108
|
+
Parameters to pass to the API call.
|
|
109
|
+
|
|
110
|
+
Returns
|
|
111
|
+
-------
|
|
112
|
+
dict
|
|
113
|
+
Object instance.
|
|
114
|
+
"""
|
|
115
|
+
api = api_base_update(entity_type, entity_name)
|
|
116
|
+
return client.update_object(api, entity_dict, **kwargs)
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def delete_entity_api_base(
|
|
120
|
+
client: Client,
|
|
121
|
+
entity_type: str,
|
|
122
|
+
entity_name: str,
|
|
123
|
+
**kwargs,
|
|
124
|
+
) -> dict:
|
|
125
|
+
"""
|
|
126
|
+
Delete object from backend.
|
|
127
|
+
|
|
128
|
+
Parameters
|
|
129
|
+
----------
|
|
130
|
+
client : Client
|
|
131
|
+
Client instance.
|
|
132
|
+
entity_type : str
|
|
133
|
+
Entity type.
|
|
134
|
+
entity_name : str
|
|
135
|
+
Entity name.
|
|
136
|
+
**kwargs : dict
|
|
137
|
+
Parameters to pass to the API call.
|
|
138
|
+
|
|
139
|
+
Returns
|
|
140
|
+
-------
|
|
141
|
+
dict
|
|
142
|
+
Object instance.
|
|
143
|
+
"""
|
|
144
|
+
if "params" not in kwargs:
|
|
145
|
+
kwargs["params"] = {}
|
|
146
|
+
if "cascade" in kwargs["params"]:
|
|
147
|
+
kwargs["params"]["cascade"] = str(kwargs["cascade"]).lower()
|
|
148
|
+
if "cascade" in kwargs:
|
|
149
|
+
kwargs["params"]["cascade"] = str(kwargs.pop("cascade")).lower()
|
|
150
|
+
api = api_base_delete(entity_type, entity_name)
|
|
151
|
+
return client.delete_object(api, **kwargs)
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def list_entity_api_base(
|
|
155
|
+
client: Client,
|
|
156
|
+
entity_type: str,
|
|
157
|
+
**kwargs,
|
|
158
|
+
) -> list[dict]:
|
|
159
|
+
"""
|
|
160
|
+
List objects from backend.
|
|
78
161
|
|
|
162
|
+
Parameters
|
|
163
|
+
----------
|
|
164
|
+
entity_type : str
|
|
165
|
+
Entity type.
|
|
166
|
+
**kwargs : dict
|
|
167
|
+
Parameters to pass to the API call.
|
|
79
168
|
|
|
80
|
-
|
|
169
|
+
Returns
|
|
170
|
+
-------
|
|
171
|
+
list[dict]
|
|
172
|
+
List of objects.
|
|
173
|
+
"""
|
|
174
|
+
api = api_base_list(entity_type)
|
|
175
|
+
return client.list_objects(api, **kwargs)
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
def create_entity_api_ctx(
|
|
179
|
+
project: str,
|
|
180
|
+
entity_type: str,
|
|
181
|
+
entity_dict: dict,
|
|
182
|
+
**kwargs,
|
|
183
|
+
) -> dict:
|
|
81
184
|
"""
|
|
82
|
-
Create
|
|
185
|
+
Create object in backend.
|
|
83
186
|
|
|
84
187
|
Parameters
|
|
85
188
|
----------
|
|
86
189
|
project : str
|
|
87
190
|
Project name.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
labels : list[str]
|
|
95
|
-
List of labels.
|
|
96
|
-
embedded : bool
|
|
97
|
-
Flag to determine if object spec must be embedded in project spec.
|
|
191
|
+
entity_type : str
|
|
192
|
+
Entity type.
|
|
193
|
+
entity_dict : dict
|
|
194
|
+
Object instance.
|
|
195
|
+
**kwargs : dict
|
|
196
|
+
Parameters to pass to the API call.
|
|
98
197
|
|
|
99
198
|
Returns
|
|
100
199
|
-------
|
|
101
|
-
|
|
200
|
+
dict
|
|
102
201
|
Object instance.
|
|
103
202
|
"""
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
obj.save()
|
|
107
|
-
return obj
|
|
203
|
+
api = api_ctx_create(project, entity_type)
|
|
204
|
+
return get_context(project).create_object(api, entity_dict, **kwargs)
|
|
108
205
|
|
|
109
206
|
|
|
110
|
-
def
|
|
207
|
+
def read_entity_api_ctx(
|
|
111
208
|
identifier: str,
|
|
112
209
|
entity_type: str | None = None,
|
|
113
210
|
project: str | None = None,
|
|
114
211
|
entity_id: str | None = None,
|
|
115
212
|
**kwargs,
|
|
116
|
-
) ->
|
|
213
|
+
) -> dict:
|
|
117
214
|
"""
|
|
118
215
|
Get object from backend.
|
|
119
216
|
|
|
@@ -132,105 +229,112 @@ def get_versioned_entity(
|
|
|
132
229
|
|
|
133
230
|
Returns
|
|
134
231
|
-------
|
|
135
|
-
|
|
232
|
+
dict
|
|
136
233
|
Object instance.
|
|
137
234
|
"""
|
|
138
|
-
_check_project_from_identifier(identifier, project)
|
|
139
|
-
obj = read_entity_api_ctx(
|
|
140
|
-
identifier,
|
|
141
|
-
entity_type=entity_type,
|
|
142
|
-
project=project,
|
|
143
|
-
entity_id=entity_id,
|
|
144
|
-
**kwargs,
|
|
145
|
-
)
|
|
146
|
-
return build_entity_from_dict(obj)
|
|
147
235
|
|
|
236
|
+
if identifier.startswith("store://"):
|
|
237
|
+
project, entity_type, _, _, entity_id = parse_entity_key(identifier)
|
|
238
|
+
api = api_ctx_read(project, entity_type, entity_id)
|
|
239
|
+
return get_context(project).read_object(api, **kwargs)
|
|
240
|
+
|
|
241
|
+
if project is None or entity_type is None:
|
|
242
|
+
raise ValueError("Project and entity type must be specified.")
|
|
243
|
+
|
|
244
|
+
if "params" not in kwargs:
|
|
245
|
+
kwargs["params"] = {}
|
|
246
|
+
|
|
247
|
+
if entity_id is None:
|
|
248
|
+
kwargs["params"]["name"] = identifier
|
|
249
|
+
api = api_ctx_list(project, entity_type)
|
|
250
|
+
return get_context(project).list_first_object(api, **kwargs)
|
|
148
251
|
|
|
149
|
-
|
|
252
|
+
api = api_ctx_read(project, entity_type, entity_id)
|
|
253
|
+
return get_context(project).read_object(api, **kwargs)
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
def read_entity_api_ctx_versions(
|
|
150
257
|
identifier: str,
|
|
151
258
|
entity_type: str | None = None,
|
|
152
259
|
project: str | None = None,
|
|
153
260
|
**kwargs,
|
|
154
|
-
) ->
|
|
261
|
+
) -> list[dict]:
|
|
155
262
|
"""
|
|
156
|
-
Get object from backend.
|
|
263
|
+
Get all versions object from backend.
|
|
157
264
|
|
|
158
265
|
Parameters
|
|
159
266
|
----------
|
|
160
|
-
entity_type : str
|
|
161
|
-
Entity type.
|
|
162
267
|
identifier : str
|
|
163
268
|
Entity key (store://...) or entity name.
|
|
269
|
+
entity_type : str
|
|
270
|
+
Entity type.
|
|
164
271
|
project : str
|
|
165
272
|
Project name.
|
|
166
|
-
entity_id : str
|
|
167
|
-
Entity ID.
|
|
168
273
|
**kwargs : dict
|
|
169
274
|
Parameters to pass to the API call.
|
|
170
275
|
|
|
171
276
|
Returns
|
|
172
277
|
-------
|
|
173
|
-
|
|
174
|
-
Object
|
|
278
|
+
list[dict]
|
|
279
|
+
Object instances.
|
|
175
280
|
"""
|
|
176
|
-
|
|
281
|
+
if not identifier.startswith("store://"):
|
|
282
|
+
if project is None or entity_type is None:
|
|
283
|
+
raise ValueError("Project and entity type must be specified.")
|
|
284
|
+
entity_name = identifier
|
|
285
|
+
else:
|
|
286
|
+
project, entity_type, _, entity_name, _ = parse_entity_key(identifier)
|
|
177
287
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
**kwargs,
|
|
183
|
-
)
|
|
184
|
-
return build_entity_from_dict(obj)
|
|
288
|
+
if "params" not in kwargs:
|
|
289
|
+
kwargs["params"] = {}
|
|
290
|
+
kwargs["params"]["name"] = entity_name
|
|
291
|
+
kwargs["params"]["versions"] = "all"
|
|
185
292
|
|
|
293
|
+
api = api_ctx_list(project, entity_type)
|
|
294
|
+
return get_context(project).list_objects(api, **kwargs)
|
|
186
295
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
entity_id: str
|
|
296
|
+
|
|
297
|
+
def update_entity_api_ctx(
|
|
298
|
+
project: str,
|
|
299
|
+
entity_type: str,
|
|
300
|
+
entity_id: str,
|
|
301
|
+
entity_dict: dict,
|
|
192
302
|
**kwargs,
|
|
193
|
-
) ->
|
|
303
|
+
) -> dict:
|
|
194
304
|
"""
|
|
195
|
-
|
|
305
|
+
Update object. Note that object spec are immutable.
|
|
196
306
|
|
|
197
307
|
Parameters
|
|
198
308
|
----------
|
|
199
|
-
identifier : str
|
|
200
|
-
Entity key (store://...) or entity name.
|
|
201
|
-
entity_type : str
|
|
202
|
-
Entity type.
|
|
203
309
|
project : str
|
|
204
310
|
Project name.
|
|
311
|
+
entity_type : str
|
|
312
|
+
Entity type.
|
|
205
313
|
entity_id : str
|
|
206
314
|
Entity ID.
|
|
315
|
+
entity_dict : dict
|
|
316
|
+
Entity dictionary.
|
|
207
317
|
**kwargs : dict
|
|
208
318
|
Parameters to pass to the API call.
|
|
209
319
|
|
|
210
320
|
Returns
|
|
211
321
|
-------
|
|
212
|
-
|
|
213
|
-
|
|
322
|
+
dict
|
|
323
|
+
Response from backend.
|
|
214
324
|
"""
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
entity_type=entity_type,
|
|
218
|
-
project=project,
|
|
219
|
-
entity_id=entity_id,
|
|
220
|
-
**kwargs,
|
|
221
|
-
)
|
|
222
|
-
obj._get_files_info()
|
|
223
|
-
return obj
|
|
325
|
+
api = api_ctx_update(project, entity_type, entity_id=entity_id)
|
|
326
|
+
return get_context(project).update_object(api, entity_dict, **kwargs)
|
|
224
327
|
|
|
225
328
|
|
|
226
|
-
def
|
|
329
|
+
def delete_entity_api_ctx(
|
|
227
330
|
identifier: str,
|
|
228
|
-
entity_type: str
|
|
331
|
+
entity_type: str,
|
|
229
332
|
project: str | None = None,
|
|
333
|
+
entity_id: str | None = None,
|
|
230
334
|
**kwargs,
|
|
231
|
-
) ->
|
|
335
|
+
) -> dict:
|
|
232
336
|
"""
|
|
233
|
-
|
|
337
|
+
Delete object from backend.
|
|
234
338
|
|
|
235
339
|
Parameters
|
|
236
340
|
----------
|
|
@@ -240,67 +344,81 @@ def get_context_entity_versions(
|
|
|
240
344
|
Entity type.
|
|
241
345
|
project : str
|
|
242
346
|
Project name.
|
|
347
|
+
entity_id : str
|
|
348
|
+
Entity ID.
|
|
243
349
|
**kwargs : dict
|
|
244
350
|
Parameters to pass to the API call.
|
|
245
351
|
|
|
246
352
|
Returns
|
|
247
353
|
-------
|
|
248
|
-
|
|
249
|
-
|
|
354
|
+
dict
|
|
355
|
+
Response from backend.
|
|
250
356
|
"""
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
)
|
|
258
|
-
return [build_entity_from_dict(o) for o in obj]
|
|
357
|
+
if "params" not in kwargs:
|
|
358
|
+
kwargs["params"] = {}
|
|
359
|
+
if "cascade" in kwargs["params"]:
|
|
360
|
+
kwargs["params"]["cascade"] = str(kwargs["cascade"]).lower()
|
|
361
|
+
if "cascade" in kwargs:
|
|
362
|
+
kwargs["params"]["cascade"] = str(kwargs.pop("cascade")).lower()
|
|
259
363
|
|
|
364
|
+
delete_all_versions: bool = kwargs.pop("delete_all_versions", False)
|
|
260
365
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
366
|
+
if identifier.startswith("store://"):
|
|
367
|
+
project, _, _, _, entity_id = parse_entity_key(identifier)
|
|
368
|
+
api = api_ctx_delete(project, entity_type, entity_id)
|
|
369
|
+
return get_context(project).delete_object(api, **kwargs)
|
|
370
|
+
|
|
371
|
+
if project is None:
|
|
372
|
+
raise ValueError("Project must be provided.")
|
|
373
|
+
|
|
374
|
+
if entity_id is not None:
|
|
375
|
+
api = api_ctx_delete(project, entity_type, entity_id)
|
|
376
|
+
else:
|
|
377
|
+
kwargs["params"]["name"] = identifier
|
|
378
|
+
api = api_ctx_list(project, entity_type)
|
|
379
|
+
if delete_all_versions:
|
|
380
|
+
return get_context(project).delete_object(api, **kwargs)
|
|
381
|
+
obj = get_context(project).list_first_object(api, **kwargs)
|
|
382
|
+
entity_id = obj["id"]
|
|
383
|
+
|
|
384
|
+
api = api_ctx_delete(project, entity_type, entity_id)
|
|
385
|
+
return get_context(project).delete_object(api, **kwargs)
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
def list_entity_api_ctx(
|
|
389
|
+
project: str,
|
|
390
|
+
entity_type: str,
|
|
265
391
|
**kwargs,
|
|
266
|
-
) -> list[
|
|
392
|
+
) -> list[dict]:
|
|
267
393
|
"""
|
|
268
|
-
|
|
394
|
+
List objects from backend.
|
|
269
395
|
|
|
270
396
|
Parameters
|
|
271
397
|
----------
|
|
272
|
-
identifier : str
|
|
273
|
-
Entity key (store://...) or entity name.
|
|
274
|
-
entity_type : str
|
|
275
|
-
Entity type.
|
|
276
398
|
project : str
|
|
277
399
|
Project name.
|
|
400
|
+
entity_type : str
|
|
401
|
+
Entity type.
|
|
278
402
|
**kwargs : dict
|
|
279
403
|
Parameters to pass to the API call.
|
|
280
404
|
|
|
281
405
|
Returns
|
|
282
406
|
-------
|
|
283
|
-
list[
|
|
284
|
-
List of
|
|
407
|
+
list[dict]
|
|
408
|
+
List of objects.
|
|
285
409
|
"""
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
identifier,
|
|
289
|
-
entity_type=entity_type,
|
|
290
|
-
project=project,
|
|
291
|
-
**kwargs,
|
|
292
|
-
)
|
|
293
|
-
objects = []
|
|
294
|
-
for o in objs:
|
|
295
|
-
entity: MaterialEntity = build_entity_from_dict(o)
|
|
296
|
-
entity._get_files_info()
|
|
297
|
-
objects.append(entity)
|
|
298
|
-
return objects
|
|
410
|
+
api = api_ctx_list(project, entity_type)
|
|
411
|
+
return get_context(project).list_objects(api, **kwargs)
|
|
299
412
|
|
|
300
413
|
|
|
301
|
-
def
|
|
414
|
+
def set_data_api(
|
|
415
|
+
project: str,
|
|
416
|
+
entity_type: str,
|
|
417
|
+
data: dict,
|
|
418
|
+
**kwargs,
|
|
419
|
+
) -> None:
|
|
302
420
|
"""
|
|
303
|
-
|
|
421
|
+
Set data in backend.
|
|
304
422
|
|
|
305
423
|
Parameters
|
|
306
424
|
----------
|
|
@@ -308,30 +426,26 @@ def list_context_entities(project: str, entity_type: str, **kwargs) -> list[Cont
|
|
|
308
426
|
Project name.
|
|
309
427
|
entity_type : str
|
|
310
428
|
Entity type.
|
|
429
|
+
data : dict
|
|
430
|
+
Data dictionary.
|
|
311
431
|
**kwargs : dict
|
|
312
432
|
Parameters to pass to the API call.
|
|
313
433
|
|
|
314
434
|
Returns
|
|
315
435
|
-------
|
|
316
|
-
|
|
317
|
-
List of object instances.
|
|
436
|
+
None
|
|
318
437
|
"""
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
project=project,
|
|
322
|
-
entity_type=entity_type,
|
|
323
|
-
**kwargs,
|
|
324
|
-
)
|
|
325
|
-
return [build_entity_from_dict(obj) for obj in objs]
|
|
438
|
+
api = api_ctx_data(project, entity_type)
|
|
439
|
+
get_context(project).update_object(api, data, **kwargs)
|
|
326
440
|
|
|
327
441
|
|
|
328
|
-
def
|
|
442
|
+
def get_data_api(
|
|
329
443
|
project: str,
|
|
330
444
|
entity_type: str,
|
|
331
445
|
**kwargs,
|
|
332
|
-
) ->
|
|
446
|
+
) -> dict:
|
|
333
447
|
"""
|
|
334
|
-
|
|
448
|
+
Read data from backend.
|
|
335
449
|
|
|
336
450
|
Parameters
|
|
337
451
|
----------
|
|
@@ -344,125 +458,153 @@ def list_material_entities(
|
|
|
344
458
|
|
|
345
459
|
Returns
|
|
346
460
|
-------
|
|
347
|
-
|
|
348
|
-
|
|
461
|
+
dict
|
|
462
|
+
Response from backend.
|
|
349
463
|
"""
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
project=project,
|
|
353
|
-
entity_type=entity_type,
|
|
354
|
-
**kwargs,
|
|
355
|
-
)
|
|
356
|
-
objects = []
|
|
357
|
-
for o in objs:
|
|
358
|
-
entity: MaterialEntity = build_entity_from_dict(o)
|
|
359
|
-
entity._get_files_info()
|
|
360
|
-
objects.append(entity)
|
|
361
|
-
return objects
|
|
464
|
+
api = api_ctx_data(project, entity_type)
|
|
465
|
+
return get_context(project).read_object(api, **kwargs)
|
|
362
466
|
|
|
363
467
|
|
|
364
|
-
def
|
|
468
|
+
def logs_api(
|
|
469
|
+
project: str,
|
|
470
|
+
entity_type: str,
|
|
471
|
+
entity_id: str,
|
|
472
|
+
**kwargs,
|
|
473
|
+
) -> dict:
|
|
365
474
|
"""
|
|
366
|
-
|
|
475
|
+
Read logs from backend.
|
|
367
476
|
|
|
368
477
|
Parameters
|
|
369
478
|
----------
|
|
370
|
-
|
|
371
|
-
|
|
479
|
+
project : str
|
|
480
|
+
Project name.
|
|
481
|
+
entity_type : str
|
|
482
|
+
Entity type.
|
|
483
|
+
entity_id : str
|
|
484
|
+
Entity ID.
|
|
485
|
+
**kwargs : dict
|
|
486
|
+
Parameters to pass to the API call.
|
|
372
487
|
|
|
373
488
|
Returns
|
|
374
489
|
-------
|
|
375
|
-
|
|
376
|
-
|
|
490
|
+
dict
|
|
491
|
+
Response from backend.
|
|
377
492
|
"""
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
_check_context(dict_obj["project"])
|
|
381
|
-
|
|
382
|
-
obj = build_entity_from_dict(dict_obj)
|
|
383
|
-
try:
|
|
384
|
-
obj.save()
|
|
385
|
-
except EntityAlreadyExistsError:
|
|
386
|
-
pass
|
|
387
|
-
return obj
|
|
493
|
+
api = api_ctx_logs(project, entity_type, entity_id)
|
|
494
|
+
return get_context(project).read_object(api, **kwargs)
|
|
388
495
|
|
|
389
496
|
|
|
390
|
-
def
|
|
497
|
+
def stop_api(
|
|
498
|
+
project: str,
|
|
499
|
+
entity_type: str,
|
|
500
|
+
entity_id: str,
|
|
501
|
+
**kwargs,
|
|
502
|
+
) -> None:
|
|
391
503
|
"""
|
|
392
|
-
|
|
504
|
+
Stop object in backend.
|
|
393
505
|
|
|
394
506
|
Parameters
|
|
395
507
|
----------
|
|
396
|
-
|
|
397
|
-
|
|
508
|
+
project : str
|
|
509
|
+
Project name.
|
|
510
|
+
entity_type : str
|
|
511
|
+
Entity type.
|
|
512
|
+
entity_id : str
|
|
513
|
+
Entity ID.
|
|
514
|
+
**kwargs : dict
|
|
515
|
+
Parameters to pass to the API call.
|
|
398
516
|
|
|
399
517
|
Returns
|
|
400
518
|
-------
|
|
401
|
-
|
|
402
|
-
Object instance.
|
|
519
|
+
None
|
|
403
520
|
"""
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
exec_dict = dict_obj[0]
|
|
407
|
-
tsk_dicts = dict_obj[1:]
|
|
408
|
-
else:
|
|
409
|
-
exec_dict = dict_obj
|
|
410
|
-
tsk_dicts = []
|
|
521
|
+
api = api_ctx_stop(project, entity_type, entity_id)
|
|
522
|
+
get_context(project).create_object(api, obj={}, **kwargs)
|
|
411
523
|
|
|
412
|
-
_check_context(exec_dict["project"])
|
|
413
524
|
|
|
414
|
-
|
|
525
|
+
def resume_api(
|
|
526
|
+
project: str,
|
|
527
|
+
entity_type: str,
|
|
528
|
+
entity_id: str,
|
|
529
|
+
**kwargs,
|
|
530
|
+
) -> None:
|
|
531
|
+
"""
|
|
532
|
+
Resume object in backend.
|
|
415
533
|
|
|
416
|
-
|
|
534
|
+
Parameters
|
|
535
|
+
----------
|
|
536
|
+
project : str
|
|
537
|
+
Project name.
|
|
538
|
+
entity_type : str
|
|
539
|
+
Entity type.
|
|
540
|
+
entity_id : str
|
|
541
|
+
Entity ID.
|
|
542
|
+
**kwargs : dict
|
|
543
|
+
Parameters to pass to the API call.
|
|
417
544
|
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
545
|
+
Returns
|
|
546
|
+
-------
|
|
547
|
+
None
|
|
548
|
+
"""
|
|
549
|
+
api = api_ctx_resume(project, entity_type, entity_id)
|
|
550
|
+
get_context(project).create_object(api, obj={}, **kwargs)
|
|
423
551
|
|
|
424
552
|
|
|
425
|
-
def
|
|
426
|
-
|
|
427
|
-
entity_type: str
|
|
428
|
-
|
|
429
|
-
entity_id: str | None = None,
|
|
430
|
-
delete_all_versions: bool = False,
|
|
431
|
-
cascade: bool = True,
|
|
553
|
+
def files_info_get_api(
|
|
554
|
+
project: str,
|
|
555
|
+
entity_type: str,
|
|
556
|
+
entity_id: str,
|
|
432
557
|
**kwargs,
|
|
433
|
-
) -> dict:
|
|
558
|
+
) -> list[dict]:
|
|
434
559
|
"""
|
|
435
|
-
|
|
560
|
+
Get files info from backend.
|
|
436
561
|
|
|
437
562
|
Parameters
|
|
438
563
|
----------
|
|
439
|
-
|
|
440
|
-
|
|
564
|
+
project : str
|
|
565
|
+
Project name.
|
|
441
566
|
entity_type : str
|
|
442
567
|
Entity type.
|
|
568
|
+
entity_id : str
|
|
569
|
+
Entity ID.
|
|
570
|
+
**kwargs : dict
|
|
571
|
+
Parameters to pass to the API call.
|
|
572
|
+
|
|
573
|
+
Returns
|
|
574
|
+
-------
|
|
575
|
+
list[dict]
|
|
576
|
+
Response from backend.
|
|
577
|
+
"""
|
|
578
|
+
api = api_ctx_files(project, entity_type, entity_id)
|
|
579
|
+
return get_context(project).read_object(api, **kwargs)
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
def files_info_put_api(
|
|
583
|
+
project: str,
|
|
584
|
+
entity_type: str,
|
|
585
|
+
entity_id: str,
|
|
586
|
+
entity_list: list[dict],
|
|
587
|
+
**kwargs,
|
|
588
|
+
) -> None:
|
|
589
|
+
"""
|
|
590
|
+
Get files info from backend.
|
|
591
|
+
|
|
592
|
+
Parameters
|
|
593
|
+
----------
|
|
443
594
|
project : str
|
|
444
595
|
Project name.
|
|
596
|
+
entity_type : str
|
|
597
|
+
Entity type.
|
|
445
598
|
entity_id : str
|
|
446
599
|
Entity ID.
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
cascade : bool
|
|
450
|
-
Cascade delete.
|
|
600
|
+
entity_list : list[dict]
|
|
601
|
+
Entity list.
|
|
451
602
|
**kwargs : dict
|
|
452
603
|
Parameters to pass to the API call.
|
|
453
604
|
|
|
454
605
|
Returns
|
|
455
606
|
-------
|
|
456
|
-
|
|
457
|
-
Response from backend.
|
|
607
|
+
None
|
|
458
608
|
"""
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
identifier=identifier,
|
|
462
|
-
entity_type=entity_type,
|
|
463
|
-
project=project,
|
|
464
|
-
entity_id=entity_id,
|
|
465
|
-
delete_all_versions=delete_all_versions,
|
|
466
|
-
cascade=cascade,
|
|
467
|
-
**kwargs,
|
|
468
|
-
)
|
|
609
|
+
api = api_ctx_files(project, entity_type, entity_id)
|
|
610
|
+
get_context(project).update_object(api, entity_list, **kwargs)
|