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
digitalhub/factory/factory.py
DELETED
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import typing
|
|
4
|
-
|
|
5
|
-
from digitalhub.utils.exceptions import BuilderError
|
|
6
|
-
|
|
7
|
-
if typing.TYPE_CHECKING:
|
|
8
|
-
from digitalhub.entities._base.entity.builder import EntityBuilder
|
|
9
|
-
from digitalhub.entities._base.entity.entity import Entity
|
|
10
|
-
from digitalhub.entities._base.entity.metadata import Metadata
|
|
11
|
-
from digitalhub.entities._base.entity.spec import Spec
|
|
12
|
-
from digitalhub.entities._base.entity.status import Status
|
|
13
|
-
from digitalhub.entities._base.runtime_entity.builder import RuntimeEntityBuilder
|
|
14
|
-
from digitalhub.runtimes._base import Runtime
|
|
15
|
-
from digitalhub.runtimes.builder import RuntimeBuilder
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class Factory:
|
|
19
|
-
"""
|
|
20
|
-
Factory class for building entities and runtimes.
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
|
-
def __init__(self):
|
|
24
|
-
self._entity_builders: dict[str, EntityBuilder | RuntimeEntityBuilder] = {}
|
|
25
|
-
self._runtime_builders: dict[str, RuntimeBuilder] = {}
|
|
26
|
-
|
|
27
|
-
def add_entity_builder(self, name: str, builder: EntityBuilder | RuntimeEntityBuilder) -> None:
|
|
28
|
-
"""
|
|
29
|
-
Add a builder to the factory.
|
|
30
|
-
|
|
31
|
-
Parameters
|
|
32
|
-
----------
|
|
33
|
-
name : str
|
|
34
|
-
Builder name.
|
|
35
|
-
builder : EntityBuilder
|
|
36
|
-
Builder object.
|
|
37
|
-
|
|
38
|
-
Returns
|
|
39
|
-
-------
|
|
40
|
-
None
|
|
41
|
-
"""
|
|
42
|
-
if name in self._entity_builders:
|
|
43
|
-
raise BuilderError(f"Builder {name} already exists.")
|
|
44
|
-
self._entity_builders[name] = builder()
|
|
45
|
-
|
|
46
|
-
def add_runtime_builder(self, name: str, builder: RuntimeBuilder) -> None:
|
|
47
|
-
"""
|
|
48
|
-
Add a builder to the factory.
|
|
49
|
-
|
|
50
|
-
Parameters
|
|
51
|
-
----------
|
|
52
|
-
name : str
|
|
53
|
-
Builder name.
|
|
54
|
-
builder : RuntimeBuilder
|
|
55
|
-
Builder object.
|
|
56
|
-
|
|
57
|
-
Returns
|
|
58
|
-
-------
|
|
59
|
-
None
|
|
60
|
-
"""
|
|
61
|
-
if name in self._runtime_builders:
|
|
62
|
-
raise BuilderError(f"Builder {name} already exists.")
|
|
63
|
-
self._runtime_builders[name] = builder()
|
|
64
|
-
|
|
65
|
-
def build_entity_from_params(self, kind_to_build_from: str, **kwargs) -> Entity:
|
|
66
|
-
"""
|
|
67
|
-
Build an entity from parameters.
|
|
68
|
-
|
|
69
|
-
Parameters
|
|
70
|
-
----------
|
|
71
|
-
kind_to_build_from : str
|
|
72
|
-
Entity type.
|
|
73
|
-
**kwargs
|
|
74
|
-
Entity parameters.
|
|
75
|
-
|
|
76
|
-
Returns
|
|
77
|
-
-------
|
|
78
|
-
Entity
|
|
79
|
-
Entity object.
|
|
80
|
-
"""
|
|
81
|
-
return self._entity_builders[kind_to_build_from].build(**kwargs)
|
|
82
|
-
|
|
83
|
-
def build_entity_from_dict(self, kind_to_build_from: str, obj: dict) -> Entity:
|
|
84
|
-
"""
|
|
85
|
-
Build an entity from a dictionary.
|
|
86
|
-
|
|
87
|
-
Parameters
|
|
88
|
-
----------
|
|
89
|
-
kind_to_build_from : str
|
|
90
|
-
Entity type.
|
|
91
|
-
dict_data : dict
|
|
92
|
-
Dictionary with entity data.
|
|
93
|
-
|
|
94
|
-
Returns
|
|
95
|
-
-------
|
|
96
|
-
Entity
|
|
97
|
-
Entity object.
|
|
98
|
-
"""
|
|
99
|
-
return self._entity_builders[kind_to_build_from].from_dict(obj)
|
|
100
|
-
|
|
101
|
-
def build_spec(self, kind_to_build_from: str, **kwargs) -> Spec:
|
|
102
|
-
"""
|
|
103
|
-
Build an entity spec.
|
|
104
|
-
|
|
105
|
-
Parameters
|
|
106
|
-
----------
|
|
107
|
-
kind_to_build_from : str
|
|
108
|
-
Entity type.
|
|
109
|
-
|
|
110
|
-
Returns
|
|
111
|
-
-------
|
|
112
|
-
Spec
|
|
113
|
-
Spec object.
|
|
114
|
-
"""
|
|
115
|
-
return self._entity_builders[kind_to_build_from].build_spec(**kwargs)
|
|
116
|
-
|
|
117
|
-
def build_metadata(self, kind_to_build_from: str, **kwargs) -> Metadata:
|
|
118
|
-
"""
|
|
119
|
-
Build an entity metadata.
|
|
120
|
-
|
|
121
|
-
Parameters
|
|
122
|
-
----------
|
|
123
|
-
kind_to_build_from : str
|
|
124
|
-
Entity type.
|
|
125
|
-
|
|
126
|
-
Returns
|
|
127
|
-
-------
|
|
128
|
-
Metadata
|
|
129
|
-
Metadata object.
|
|
130
|
-
"""
|
|
131
|
-
return self._entity_builders[kind_to_build_from].build_metadata(**kwargs)
|
|
132
|
-
|
|
133
|
-
def build_status(self, kind_to_build_from: str, **kwargs) -> Status:
|
|
134
|
-
"""
|
|
135
|
-
Build an entity status.
|
|
136
|
-
|
|
137
|
-
Parameters
|
|
138
|
-
----------
|
|
139
|
-
kind_to_build_from : str
|
|
140
|
-
Entity type.
|
|
141
|
-
|
|
142
|
-
Returns
|
|
143
|
-
-------
|
|
144
|
-
Status
|
|
145
|
-
Status object.
|
|
146
|
-
"""
|
|
147
|
-
return self._entity_builders[kind_to_build_from].build_status(**kwargs)
|
|
148
|
-
|
|
149
|
-
def build_runtime(self, kind_to_build_from: str, project: str) -> Runtime:
|
|
150
|
-
"""
|
|
151
|
-
Build a runtime.
|
|
152
|
-
|
|
153
|
-
Parameters
|
|
154
|
-
----------
|
|
155
|
-
kind_to_build_from : str
|
|
156
|
-
Runtime type.
|
|
157
|
-
project : str
|
|
158
|
-
Project name.
|
|
159
|
-
|
|
160
|
-
Returns
|
|
161
|
-
-------
|
|
162
|
-
Runtime
|
|
163
|
-
Runtime object.
|
|
164
|
-
"""
|
|
165
|
-
return self._runtime_builders[kind_to_build_from].build(project=project)
|
|
166
|
-
|
|
167
|
-
def get_entity_type_from_kind(self, kind: str) -> str:
|
|
168
|
-
"""
|
|
169
|
-
Get entity type from builder.
|
|
170
|
-
|
|
171
|
-
Parameters
|
|
172
|
-
----------
|
|
173
|
-
kind : str
|
|
174
|
-
Entity type.
|
|
175
|
-
|
|
176
|
-
Returns
|
|
177
|
-
-------
|
|
178
|
-
str
|
|
179
|
-
Entity type.
|
|
180
|
-
"""
|
|
181
|
-
return self._entity_builders[kind].get_entity_type()
|
|
182
|
-
|
|
183
|
-
def get_executable_kind(self, kind: str) -> str:
|
|
184
|
-
"""
|
|
185
|
-
Get executable kind.
|
|
186
|
-
|
|
187
|
-
Parameters
|
|
188
|
-
----------
|
|
189
|
-
kind : str
|
|
190
|
-
Kind.
|
|
191
|
-
|
|
192
|
-
Returns
|
|
193
|
-
-------
|
|
194
|
-
str
|
|
195
|
-
Executable kind.
|
|
196
|
-
"""
|
|
197
|
-
return self._entity_builders[kind].get_executable_kind()
|
|
198
|
-
|
|
199
|
-
def get_action_from_task_kind(self, kind: str, task_kind: str) -> str:
|
|
200
|
-
"""
|
|
201
|
-
Get action from task.
|
|
202
|
-
|
|
203
|
-
Parameters
|
|
204
|
-
----------
|
|
205
|
-
kind : str
|
|
206
|
-
Kind.
|
|
207
|
-
task_kind : str
|
|
208
|
-
Task kind.
|
|
209
|
-
|
|
210
|
-
Returns
|
|
211
|
-
-------
|
|
212
|
-
str
|
|
213
|
-
Action.
|
|
214
|
-
"""
|
|
215
|
-
return self._entity_builders[kind].get_action_from_task_kind(task_kind)
|
|
216
|
-
|
|
217
|
-
def get_task_kind_from_action(self, kind: str, action: str) -> list[str]:
|
|
218
|
-
"""
|
|
219
|
-
Get task kinds from action.
|
|
220
|
-
|
|
221
|
-
Parameters
|
|
222
|
-
----------
|
|
223
|
-
kind : str
|
|
224
|
-
Kind.
|
|
225
|
-
action : str
|
|
226
|
-
Action.
|
|
227
|
-
|
|
228
|
-
Returns
|
|
229
|
-
-------
|
|
230
|
-
list[str]
|
|
231
|
-
Task kinds.
|
|
232
|
-
"""
|
|
233
|
-
return self._entity_builders[kind].get_task_kind_from_action(action)
|
|
234
|
-
|
|
235
|
-
def get_run_kind(self, kind: str) -> str:
|
|
236
|
-
"""
|
|
237
|
-
Get run kind.
|
|
238
|
-
|
|
239
|
-
Parameters
|
|
240
|
-
----------
|
|
241
|
-
kind : str
|
|
242
|
-
Kind.
|
|
243
|
-
|
|
244
|
-
Returns
|
|
245
|
-
-------
|
|
246
|
-
str
|
|
247
|
-
Run kind.
|
|
248
|
-
"""
|
|
249
|
-
return self._entity_builders[kind].get_run_kind()
|
|
250
|
-
|
|
251
|
-
def get_all_kinds(self, kind: str) -> list[str]:
|
|
252
|
-
"""
|
|
253
|
-
Get all kinds.
|
|
254
|
-
|
|
255
|
-
Parameters
|
|
256
|
-
----------
|
|
257
|
-
kind : str
|
|
258
|
-
Kind.
|
|
259
|
-
|
|
260
|
-
Returns
|
|
261
|
-
-------
|
|
262
|
-
list[str]
|
|
263
|
-
All kinds.
|
|
264
|
-
"""
|
|
265
|
-
return self._entity_builders[kind].get_all_kinds()
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
factory = Factory()
|
digitalhub/factory/utils.py
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import importlib
|
|
4
|
-
import importlib.metadata
|
|
5
|
-
import pkgutil
|
|
6
|
-
import re
|
|
7
|
-
from types import ModuleType
|
|
8
|
-
|
|
9
|
-
from digitalhub.factory.factory import factory
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def import_module(package: str) -> ModuleType:
|
|
13
|
-
"""
|
|
14
|
-
Import modules from package name.
|
|
15
|
-
|
|
16
|
-
Parameters
|
|
17
|
-
----------
|
|
18
|
-
package : str
|
|
19
|
-
Package name.
|
|
20
|
-
|
|
21
|
-
Returns
|
|
22
|
-
-------
|
|
23
|
-
ModuleType
|
|
24
|
-
Module.
|
|
25
|
-
"""
|
|
26
|
-
try:
|
|
27
|
-
return importlib.import_module(package)
|
|
28
|
-
except ModuleNotFoundError:
|
|
29
|
-
raise ModuleNotFoundError(f"Package {package} not found.")
|
|
30
|
-
except Exception as e:
|
|
31
|
-
raise e
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def list_runtimes() -> list[str]:
|
|
35
|
-
"""
|
|
36
|
-
List installed runtimes for digitalhub.
|
|
37
|
-
|
|
38
|
-
Returns
|
|
39
|
-
-------
|
|
40
|
-
list
|
|
41
|
-
List of installed runtimes names.
|
|
42
|
-
"""
|
|
43
|
-
pattern = r"digitalhub_runtime_.*"
|
|
44
|
-
runtimes = []
|
|
45
|
-
try:
|
|
46
|
-
for _, name, _ in pkgutil.iter_modules():
|
|
47
|
-
if re.match(pattern, name):
|
|
48
|
-
runtimes.append(name)
|
|
49
|
-
return runtimes
|
|
50
|
-
except Exception:
|
|
51
|
-
raise RuntimeError("Error listing installed runtimes.")
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
def register_runtimes_entities() -> None:
|
|
55
|
-
"""
|
|
56
|
-
Register runtimes and related entities into registry.
|
|
57
|
-
|
|
58
|
-
Returns
|
|
59
|
-
-------
|
|
60
|
-
None
|
|
61
|
-
"""
|
|
62
|
-
for package in list_runtimes():
|
|
63
|
-
module = import_module(package)
|
|
64
|
-
entity_builders = getattr(module, "entity_builders")
|
|
65
|
-
for entity_builder_tuple in entity_builders:
|
|
66
|
-
kind, builder = entity_builder_tuple
|
|
67
|
-
factory.add_entity_builder(kind, builder)
|
|
68
|
-
|
|
69
|
-
runtime_builders = getattr(module, "runtime_builders")
|
|
70
|
-
for runtime_builder_tuple in runtime_builders:
|
|
71
|
-
kind, builder = runtime_builder_tuple
|
|
72
|
-
factory.add_runtime_builder(kind, builder)
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
def register_entities() -> None:
|
|
76
|
-
"""
|
|
77
|
-
Register layer and related entities into registry.
|
|
78
|
-
|
|
79
|
-
Returns
|
|
80
|
-
-------
|
|
81
|
-
None
|
|
82
|
-
"""
|
|
83
|
-
try:
|
|
84
|
-
module = import_module("digitalhub.entities.builders")
|
|
85
|
-
entities_builders_list = getattr(module, "entity_builders")
|
|
86
|
-
for entity_builder_tuple in entities_builders_list:
|
|
87
|
-
kind, builder = entity_builder_tuple
|
|
88
|
-
factory.add_entity_builder(kind, builder)
|
|
89
|
-
except Exception:
|
|
90
|
-
pass
|
|
File without changes
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import typing
|
|
4
|
-
from abc import abstractmethod
|
|
5
|
-
|
|
6
|
-
from digitalhub.utils.exceptions import BuilderError
|
|
7
|
-
|
|
8
|
-
if typing.TYPE_CHECKING:
|
|
9
|
-
from digitalhub.readers._base.reader import DataframeReader
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class ReaderBuilder:
|
|
13
|
-
ENGINE = None
|
|
14
|
-
DATAFRAME_CLASS = None
|
|
15
|
-
|
|
16
|
-
def __init__(self):
|
|
17
|
-
if self.ENGINE is None:
|
|
18
|
-
raise BuilderError("ENGINE must be set.")
|
|
19
|
-
if self.DATAFRAME_CLASS is None:
|
|
20
|
-
raise BuilderError("DATAFRAME_CLASS must be set.")
|
|
21
|
-
|
|
22
|
-
@abstractmethod
|
|
23
|
-
def build(self, **kwargs) -> DataframeReader:
|
|
24
|
-
"""
|
|
25
|
-
Build reader object.
|
|
26
|
-
"""
|
digitalhub/readers/api.py
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import typing
|
|
4
|
-
from typing import Any
|
|
5
|
-
|
|
6
|
-
from digitalhub.readers.factory import factory
|
|
7
|
-
|
|
8
|
-
if typing.TYPE_CHECKING:
|
|
9
|
-
from digitalhub.readers._base.reader import DataframeReader
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def get_reader_by_engine(engine: str | None = None) -> DataframeReader:
|
|
13
|
-
"""
|
|
14
|
-
Get Dataframe reader.
|
|
15
|
-
|
|
16
|
-
Parameters
|
|
17
|
-
----------
|
|
18
|
-
engine : str
|
|
19
|
-
Dataframe engine (pandas, polars, etc.).
|
|
20
|
-
|
|
21
|
-
Returns
|
|
22
|
-
-------
|
|
23
|
-
DataframeReader
|
|
24
|
-
Reader object.
|
|
25
|
-
"""
|
|
26
|
-
if engine is None:
|
|
27
|
-
engine = factory.get_default()
|
|
28
|
-
try:
|
|
29
|
-
return factory.build(engine=engine)
|
|
30
|
-
except KeyError:
|
|
31
|
-
engines = factory.list_supported_engines()
|
|
32
|
-
msg = f"Unsupported dataframe engine: '{engine}'. Supported engines: {engines}"
|
|
33
|
-
raise ValueError(msg)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
def get_reader_by_object(obj: Any) -> DataframeReader:
|
|
37
|
-
"""
|
|
38
|
-
Get Dataframe reader by object.
|
|
39
|
-
|
|
40
|
-
Parameters
|
|
41
|
-
----------
|
|
42
|
-
obj : Any
|
|
43
|
-
Object to get reader from.
|
|
44
|
-
|
|
45
|
-
Returns
|
|
46
|
-
-------
|
|
47
|
-
DataframeReader
|
|
48
|
-
Reader object.
|
|
49
|
-
"""
|
|
50
|
-
try:
|
|
51
|
-
obj_name = f"{obj.__class__.__module__}.{obj.__class__.__name__}"
|
|
52
|
-
return factory.build(dataframe=obj_name)
|
|
53
|
-
except KeyError:
|
|
54
|
-
types = factory.list_supported_dataframes()
|
|
55
|
-
msg = f"Unsupported dataframe type: '{obj}'. Supported types: {types}"
|
|
56
|
-
raise ValueError(msg)
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
def get_supported_engines() -> list[str]:
|
|
60
|
-
"""
|
|
61
|
-
Get supported engines.
|
|
62
|
-
|
|
63
|
-
Returns
|
|
64
|
-
-------
|
|
65
|
-
list
|
|
66
|
-
List of supported engines.
|
|
67
|
-
"""
|
|
68
|
-
return factory.list_supported_engines()
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
def get_supported_dataframes() -> list[str]:
|
|
72
|
-
"""
|
|
73
|
-
Get supported dataframes.
|
|
74
|
-
|
|
75
|
-
Returns
|
|
76
|
-
-------
|
|
77
|
-
list
|
|
78
|
-
List of supported dataframes.
|
|
79
|
-
"""
|
|
80
|
-
return factory.list_supported_dataframes()
|
digitalhub/readers/factory.py
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import typing
|
|
4
|
-
|
|
5
|
-
if typing.TYPE_CHECKING:
|
|
6
|
-
from digitalhub.readers._base.builder import ReaderBuilder
|
|
7
|
-
from digitalhub.readers._base.reader import DataframeReader
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class ReaderFactory:
|
|
11
|
-
"""
|
|
12
|
-
Reader factory class.
|
|
13
|
-
"""
|
|
14
|
-
|
|
15
|
-
def __init__(self) -> None:
|
|
16
|
-
self._engine_builders: dict[str, ReaderBuilder] = None
|
|
17
|
-
self._dataframe_builders: dict[str, ReaderBuilder] = None
|
|
18
|
-
self._default: str = None
|
|
19
|
-
|
|
20
|
-
def add_builder(self, engine: str, dataframe: str, builder: ReaderBuilder) -> None:
|
|
21
|
-
"""
|
|
22
|
-
Add a builder to the factory.
|
|
23
|
-
|
|
24
|
-
Parameters
|
|
25
|
-
----------
|
|
26
|
-
name : str
|
|
27
|
-
Reader name.
|
|
28
|
-
builder : DataframeReader
|
|
29
|
-
Builder object.
|
|
30
|
-
|
|
31
|
-
Returns
|
|
32
|
-
-------
|
|
33
|
-
None
|
|
34
|
-
"""
|
|
35
|
-
if self._engine_builders is None:
|
|
36
|
-
self._engine_builders = {}
|
|
37
|
-
if engine in self._engine_builders:
|
|
38
|
-
raise ValueError(f"Engine {engine} already exists.")
|
|
39
|
-
self._engine_builders[engine] = builder
|
|
40
|
-
|
|
41
|
-
if self._dataframe_builders is None:
|
|
42
|
-
self._dataframe_builders = {}
|
|
43
|
-
if dataframe in self._dataframe_builders:
|
|
44
|
-
raise ValueError(f"Dataframe {dataframe} already exists.")
|
|
45
|
-
self._dataframe_builders[dataframe] = builder
|
|
46
|
-
|
|
47
|
-
def build(self, engine: str | None = None, dataframe: str | None = None, **kwargs) -> DataframeReader:
|
|
48
|
-
"""
|
|
49
|
-
Build reader object.
|
|
50
|
-
|
|
51
|
-
Parameters
|
|
52
|
-
----------
|
|
53
|
-
engine : str | None
|
|
54
|
-
Engine name.
|
|
55
|
-
dataframe : str | None
|
|
56
|
-
Dataframe name.
|
|
57
|
-
**kwargs : dict
|
|
58
|
-
Keyword arguments.
|
|
59
|
-
|
|
60
|
-
Returns
|
|
61
|
-
-------
|
|
62
|
-
DataframeReader
|
|
63
|
-
Reader object.
|
|
64
|
-
"""
|
|
65
|
-
if (engine is None) == (dataframe is None):
|
|
66
|
-
raise ValueError("Either engine or dataframe must be provided.")
|
|
67
|
-
if engine is not None:
|
|
68
|
-
return self._engine_builders[engine].build(**kwargs)
|
|
69
|
-
return self._dataframe_builders[dataframe].build(**kwargs)
|
|
70
|
-
|
|
71
|
-
def list_supported_engines(self) -> list[str]:
|
|
72
|
-
"""
|
|
73
|
-
List supported engines.
|
|
74
|
-
|
|
75
|
-
Returns
|
|
76
|
-
-------
|
|
77
|
-
list[str]
|
|
78
|
-
List of supported engines.
|
|
79
|
-
"""
|
|
80
|
-
return list(self._engine_builders.keys())
|
|
81
|
-
|
|
82
|
-
def list_supported_dataframes(self) -> list[str]:
|
|
83
|
-
"""
|
|
84
|
-
List supported dataframes.
|
|
85
|
-
|
|
86
|
-
Returns
|
|
87
|
-
-------
|
|
88
|
-
list[str]
|
|
89
|
-
List of supported dataframes.
|
|
90
|
-
"""
|
|
91
|
-
return list(self._dataframe_builders.keys())
|
|
92
|
-
|
|
93
|
-
def set_default(self, engine: str) -> None:
|
|
94
|
-
"""
|
|
95
|
-
Set default engine.
|
|
96
|
-
|
|
97
|
-
Parameters
|
|
98
|
-
----------
|
|
99
|
-
engine : str
|
|
100
|
-
Engine name.
|
|
101
|
-
|
|
102
|
-
Returns
|
|
103
|
-
-------
|
|
104
|
-
None
|
|
105
|
-
"""
|
|
106
|
-
if engine not in self._engine_builders:
|
|
107
|
-
raise ValueError(f"Engine {engine} not found.")
|
|
108
|
-
self._default = engine
|
|
109
|
-
|
|
110
|
-
def get_default(self) -> str:
|
|
111
|
-
"""
|
|
112
|
-
Get default engine.
|
|
113
|
-
|
|
114
|
-
Returns
|
|
115
|
-
-------
|
|
116
|
-
str
|
|
117
|
-
Default engine.
|
|
118
|
-
"""
|
|
119
|
-
if self._default is None:
|
|
120
|
-
raise ValueError("No default engine set.")
|
|
121
|
-
return self._default
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
factory = ReaderFactory()
|
|
125
|
-
|
|
126
|
-
try:
|
|
127
|
-
from digitalhub.readers.pandas.builder import ReaderBuilderPandas
|
|
128
|
-
|
|
129
|
-
factory.add_builder(ReaderBuilderPandas.ENGINE, ReaderBuilderPandas.DATAFRAME_CLASS, ReaderBuilderPandas())
|
|
130
|
-
factory.set_default(ReaderBuilderPandas.ENGINE)
|
|
131
|
-
|
|
132
|
-
except ImportError:
|
|
133
|
-
pass
|
|
File without changes
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from digitalhub.readers._base.builder import ReaderBuilder
|
|
4
|
-
from digitalhub.readers.pandas.reader import DataframeReaderPandas
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class ReaderBuilderPandas(ReaderBuilder):
|
|
8
|
-
"""
|
|
9
|
-
Pandas reader builder.
|
|
10
|
-
"""
|
|
11
|
-
|
|
12
|
-
ENGINE = "pandas"
|
|
13
|
-
DATAFRAME_CLASS = "pandas.core.frame.DataFrame"
|
|
14
|
-
|
|
15
|
-
def build(self, **kwargs) -> DataframeReaderPandas:
|
|
16
|
-
"""
|
|
17
|
-
Build reader object.
|
|
18
|
-
|
|
19
|
-
Parameters
|
|
20
|
-
----------
|
|
21
|
-
**kwargs : dict
|
|
22
|
-
Keyword arguments.
|
|
23
|
-
|
|
24
|
-
Returns
|
|
25
|
-
-------
|
|
26
|
-
DataframeReaderPandas
|
|
27
|
-
Pandas reader object.
|
|
28
|
-
"""
|
|
29
|
-
return DataframeReaderPandas(**kwargs)
|
|
File without changes
|
digitalhub/stores/api.py
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import typing
|
|
4
|
-
|
|
5
|
-
from digitalhub.stores.builder import store_builder
|
|
6
|
-
|
|
7
|
-
if typing.TYPE_CHECKING:
|
|
8
|
-
from digitalhub.stores._base.store import Store, StoreParameters
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def set_store(store_cfg: StoreParameters) -> None:
|
|
12
|
-
"""
|
|
13
|
-
Set a new store instance with the given configuration.
|
|
14
|
-
|
|
15
|
-
Parameters
|
|
16
|
-
----------
|
|
17
|
-
store_cfg : StoreParameters
|
|
18
|
-
Store configuration.
|
|
19
|
-
|
|
20
|
-
Returns
|
|
21
|
-
-------
|
|
22
|
-
None
|
|
23
|
-
"""
|
|
24
|
-
store_builder.build(store_cfg)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def get_store(uri: str) -> Store:
|
|
28
|
-
"""
|
|
29
|
-
Get store instance by uri.
|
|
30
|
-
|
|
31
|
-
Parameters
|
|
32
|
-
---------
|
|
33
|
-
uri : str
|
|
34
|
-
URI to parse.
|
|
35
|
-
|
|
36
|
-
Returns
|
|
37
|
-
-------
|
|
38
|
-
Store
|
|
39
|
-
Store instance.
|
|
40
|
-
"""
|
|
41
|
-
return store_builder.get(uri)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def get_default_store() -> Store:
|
|
45
|
-
"""
|
|
46
|
-
Get the default store instance. The default store is the one that
|
|
47
|
-
can persist artifacts and dataitems.
|
|
48
|
-
|
|
49
|
-
Returns
|
|
50
|
-
-------
|
|
51
|
-
Store
|
|
52
|
-
Default store instance.
|
|
53
|
-
"""
|
|
54
|
-
return store_builder.default()
|
|
File without changes
|
|
File without changes
|
digitalhub/stores/s3/__init__.py
DELETED
|
File without changes
|
|
File without changes
|