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.

Files changed (248) hide show
  1. digitalhub/__init__.py +4 -5
  2. digitalhub/client/builder.py +58 -3
  3. digitalhub/client/{dhcore/client.py → objects/dhcore.py} +60 -48
  4. digitalhub/client/{local/client.py → objects/local.py} +2 -2
  5. digitalhub/context/builder.py +85 -1
  6. digitalhub/context/context.py +1 -1
  7. digitalhub/datastores/builder.py +37 -13
  8. digitalhub/datastores/{_base/datastore.py → objects/base.py} +3 -3
  9. digitalhub/datastores/{local/datastore.py → objects/local.py} +2 -10
  10. digitalhub/datastores/{remote/datastore.py → objects/remote.py} +1 -9
  11. digitalhub/datastores/{s3/datastore.py → objects/s3.py} +2 -10
  12. digitalhub/datastores/{sql/datastore.py → objects/sql.py} +2 -10
  13. digitalhub/entities/_base/{_base/entity.py → base.py} +1 -1
  14. digitalhub/entities/_base/crud.py +389 -247
  15. digitalhub/entities/_base/entity/{entity.py → base.py} +34 -8
  16. digitalhub/entities/_base/{context/entity.py → entity/context.py} +6 -6
  17. digitalhub/entities/_base/{executable/entity.py → entity/executable.py} +36 -61
  18. digitalhub/entities/_base/{material/entity.py → entity/material.py} +6 -6
  19. digitalhub/entities/_base/entity/unversioned.py +87 -0
  20. digitalhub/entities/_base/entity/versioned.py +94 -0
  21. digitalhub/entities/_base/{entity/metadata.py → metadata.py} +2 -2
  22. digitalhub/entities/_base/{entity/spec.py → spec/base.py} +11 -11
  23. digitalhub/entities/_base/{material/spec.py → spec/material.py} +3 -3
  24. digitalhub/entities/_base/{entity/status.py → status/base.py} +3 -14
  25. digitalhub/entities/_base/{material/status.py → status/material.py} +1 -1
  26. digitalhub/entities/_builders/metadata.py +60 -0
  27. digitalhub/entities/_builders/spec.py +43 -0
  28. digitalhub/entities/_builders/status.py +62 -0
  29. digitalhub/entities/{_base/entity/_constructors → _builders}/uuid.py +11 -4
  30. digitalhub/entities/artifact/builder.py +133 -0
  31. digitalhub/entities/artifact/crud.py +48 -22
  32. digitalhub/entities/artifact/{_base/entity.py → entity/_base.py} +5 -5
  33. digitalhub/entities/artifact/entity/artifact.py +9 -0
  34. digitalhub/entities/artifact/{artifact/spec.py → spec.py} +16 -4
  35. digitalhub/entities/artifact/{artifact/status.py → status.py} +1 -1
  36. digitalhub/entities/dataitem/builder.py +144 -0
  37. digitalhub/entities/dataitem/crud.py +52 -29
  38. digitalhub/entities/dataitem/{_base/entity.py → entity/_base.py} +5 -5
  39. digitalhub/entities/dataitem/entity/dataitem.py +9 -0
  40. digitalhub/entities/dataitem/entity/iceberg.py +7 -0
  41. digitalhub/entities/dataitem/{table/entity.py → entity/table.py} +4 -25
  42. digitalhub/entities/dataitem/spec.py +61 -0
  43. digitalhub/entities/dataitem/status.py +38 -0
  44. digitalhub/entities/function/builder.py +86 -0
  45. digitalhub/entities/function/crud.py +43 -17
  46. digitalhub/entities/function/{_base/entity.py → entity.py} +12 -9
  47. digitalhub/entities/function/{_base/models.py → models.py} +1 -1
  48. digitalhub/entities/function/spec.py +81 -0
  49. digitalhub/entities/function/status.py +9 -0
  50. digitalhub/entities/model/builder.py +152 -0
  51. digitalhub/entities/model/crud.py +48 -21
  52. digitalhub/entities/model/{_base/entity.py → entity/_base.py} +5 -5
  53. digitalhub/entities/model/entity/huggingface.py +9 -0
  54. digitalhub/entities/model/{mlflow/utils.py → entity/mlflow.py} +10 -1
  55. digitalhub/entities/model/entity/model.py +9 -0
  56. digitalhub/entities/model/entity/sklearn.py +9 -0
  57. digitalhub/entities/model/spec.py +146 -0
  58. digitalhub/entities/model/status.py +33 -0
  59. digitalhub/entities/project/builder.py +82 -0
  60. digitalhub/entities/project/crud.py +12 -19
  61. digitalhub/entities/project/{_base/entity.py → entity.py} +102 -120
  62. digitalhub/entities/project/{_base/spec.py → spec.py} +4 -4
  63. digitalhub/entities/project/status.py +9 -0
  64. digitalhub/entities/registries.py +48 -0
  65. digitalhub/entities/run/builder.py +77 -0
  66. digitalhub/entities/run/crud.py +33 -20
  67. digitalhub/entities/run/{_base/entity.py → entity.py} +189 -35
  68. digitalhub/entities/run/spec.py +153 -0
  69. digitalhub/entities/run/status.py +114 -0
  70. digitalhub/entities/secret/builder.py +93 -0
  71. digitalhub/entities/secret/crud.py +31 -27
  72. digitalhub/entities/secret/{_base/entity.py → entity.py} +7 -8
  73. digitalhub/entities/secret/{_base/spec.py → spec.py} +4 -4
  74. digitalhub/entities/secret/status.py +9 -0
  75. digitalhub/entities/task/builder.py +74 -0
  76. digitalhub/entities/task/crud.py +33 -20
  77. digitalhub/entities/task/{_base/entity.py → entity.py} +8 -9
  78. digitalhub/entities/task/{_base/models.py → models.py} +0 -9
  79. digitalhub/entities/task/{_base/spec.py → spec.py} +7 -9
  80. digitalhub/entities/task/status.py +9 -0
  81. digitalhub/entities/{utils/utils.py → utils.py} +2 -20
  82. digitalhub/entities/workflow/builder.py +91 -0
  83. digitalhub/entities/workflow/crud.py +43 -17
  84. digitalhub/entities/workflow/{_base/entity.py → entity.py} +12 -9
  85. digitalhub/entities/workflow/spec.py +15 -0
  86. digitalhub/entities/workflow/status.py +9 -0
  87. digitalhub/readers/builder.py +54 -0
  88. digitalhub/readers/{pandas/reader.py → objects/pandas.py} +1 -1
  89. digitalhub/readers/registry.py +15 -0
  90. digitalhub/registry/models.py +87 -0
  91. digitalhub/registry/registry.py +74 -0
  92. digitalhub/registry/utils.py +150 -0
  93. digitalhub/runtimes/{_base.py → base.py} +65 -3
  94. digitalhub/runtimes/builder.py +40 -19
  95. digitalhub/runtimes/kind_registry.py +170 -0
  96. digitalhub/stores/builder.py +52 -6
  97. digitalhub/stores/{local/store.py → objects/local.py} +1 -1
  98. digitalhub/stores/{remote/store.py → objects/remote.py} +1 -1
  99. digitalhub/stores/{s3/store.py → objects/s3.py} +1 -1
  100. digitalhub/stores/{sql/store.py → objects/sql.py} +1 -1
  101. digitalhub/{client/dhcore/utils.py → utils/env_utils.py} +14 -2
  102. digitalhub/utils/exceptions.py +0 -12
  103. digitalhub/utils/generic_utils.py +42 -18
  104. digitalhub/utils/io_utils.py +2 -39
  105. {digitalhub-0.8.0.dist-info → digitalhub-0.8.0b1.dist-info}/METADATA +2 -3
  106. digitalhub-0.8.0b1.dist-info/RECORD +161 -0
  107. {digitalhub-0.8.0.dist-info → digitalhub-0.8.0b1.dist-info}/WHEEL +1 -1
  108. test/test_crud_artifacts.py +96 -0
  109. test/test_crud_dataitems.py +96 -0
  110. test/test_crud_functions.py +1 -1
  111. test/test_crud_runs.py +1 -1
  112. test/test_crud_tasks.py +1 -1
  113. digitalhub/client/api.py +0 -63
  114. digitalhub/client/dhcore/env.py +0 -21
  115. digitalhub/client/dhcore/models.py +0 -46
  116. digitalhub/context/api.py +0 -93
  117. digitalhub/datastores/api.py +0 -37
  118. digitalhub/entities/_base/api_utils.py +0 -620
  119. digitalhub/entities/_base/entity/_constructors/metadata.py +0 -44
  120. digitalhub/entities/_base/entity/_constructors/spec.py +0 -33
  121. digitalhub/entities/_base/entity/_constructors/status.py +0 -52
  122. digitalhub/entities/_base/entity/builder.py +0 -175
  123. digitalhub/entities/_base/executable/__init__.py +0 -0
  124. digitalhub/entities/_base/material/__init__.py +0 -0
  125. digitalhub/entities/_base/runtime_entity/__init__.py +0 -0
  126. digitalhub/entities/_base/runtime_entity/builder.py +0 -106
  127. digitalhub/entities/_base/unversioned/__init__.py +0 -0
  128. digitalhub/entities/_base/unversioned/builder.py +0 -66
  129. digitalhub/entities/_base/unversioned/entity.py +0 -49
  130. digitalhub/entities/_base/versioned/__init__.py +0 -0
  131. digitalhub/entities/_base/versioned/builder.py +0 -68
  132. digitalhub/entities/_base/versioned/entity.py +0 -53
  133. digitalhub/entities/artifact/_base/__init__.py +0 -0
  134. digitalhub/entities/artifact/_base/builder.py +0 -86
  135. digitalhub/entities/artifact/_base/spec.py +0 -15
  136. digitalhub/entities/artifact/_base/status.py +0 -9
  137. digitalhub/entities/artifact/artifact/__init__.py +0 -0
  138. digitalhub/entities/artifact/artifact/builder.py +0 -18
  139. digitalhub/entities/artifact/artifact/entity.py +0 -32
  140. digitalhub/entities/builders.py +0 -63
  141. digitalhub/entities/dataitem/_base/__init__.py +0 -0
  142. digitalhub/entities/dataitem/_base/builder.py +0 -86
  143. digitalhub/entities/dataitem/_base/spec.py +0 -15
  144. digitalhub/entities/dataitem/_base/status.py +0 -20
  145. digitalhub/entities/dataitem/dataitem/__init__.py +0 -0
  146. digitalhub/entities/dataitem/dataitem/builder.py +0 -18
  147. digitalhub/entities/dataitem/dataitem/entity.py +0 -32
  148. digitalhub/entities/dataitem/dataitem/spec.py +0 -15
  149. digitalhub/entities/dataitem/dataitem/status.py +0 -9
  150. digitalhub/entities/dataitem/iceberg/__init__.py +0 -0
  151. digitalhub/entities/dataitem/iceberg/builder.py +0 -18
  152. digitalhub/entities/dataitem/iceberg/entity.py +0 -32
  153. digitalhub/entities/dataitem/iceberg/spec.py +0 -15
  154. digitalhub/entities/dataitem/iceberg/status.py +0 -9
  155. digitalhub/entities/dataitem/table/__init__.py +0 -0
  156. digitalhub/entities/dataitem/table/builder.py +0 -18
  157. digitalhub/entities/dataitem/table/spec.py +0 -25
  158. digitalhub/entities/dataitem/table/status.py +0 -9
  159. digitalhub/entities/function/_base/__init__.py +0 -0
  160. digitalhub/entities/function/_base/builder.py +0 -79
  161. digitalhub/entities/function/_base/spec.py +0 -15
  162. digitalhub/entities/function/_base/status.py +0 -9
  163. digitalhub/entities/model/_base/__init__.py +0 -0
  164. digitalhub/entities/model/_base/builder.py +0 -86
  165. digitalhub/entities/model/_base/spec.py +0 -49
  166. digitalhub/entities/model/_base/status.py +0 -9
  167. digitalhub/entities/model/huggingface/__init__.py +0 -0
  168. digitalhub/entities/model/huggingface/builder.py +0 -18
  169. digitalhub/entities/model/huggingface/entity.py +0 -32
  170. digitalhub/entities/model/huggingface/spec.py +0 -36
  171. digitalhub/entities/model/huggingface/status.py +0 -9
  172. digitalhub/entities/model/mlflow/__init__.py +0 -0
  173. digitalhub/entities/model/mlflow/builder.py +0 -18
  174. digitalhub/entities/model/mlflow/entity.py +0 -32
  175. digitalhub/entities/model/mlflow/spec.py +0 -44
  176. digitalhub/entities/model/mlflow/status.py +0 -9
  177. digitalhub/entities/model/model/__init__.py +0 -0
  178. digitalhub/entities/model/model/builder.py +0 -18
  179. digitalhub/entities/model/model/entity.py +0 -32
  180. digitalhub/entities/model/model/spec.py +0 -15
  181. digitalhub/entities/model/model/status.py +0 -9
  182. digitalhub/entities/model/sklearn/__init__.py +0 -0
  183. digitalhub/entities/model/sklearn/builder.py +0 -18
  184. digitalhub/entities/model/sklearn/entity.py +0 -32
  185. digitalhub/entities/model/sklearn/spec.py +0 -15
  186. digitalhub/entities/model/sklearn/status.py +0 -9
  187. digitalhub/entities/project/_base/__init__.py +0 -0
  188. digitalhub/entities/project/_base/builder.py +0 -128
  189. digitalhub/entities/project/_base/status.py +0 -9
  190. digitalhub/entities/run/_base/__init__.py +0 -0
  191. digitalhub/entities/run/_base/builder.py +0 -94
  192. digitalhub/entities/run/_base/spec.py +0 -50
  193. digitalhub/entities/run/_base/status.py +0 -9
  194. digitalhub/entities/secret/_base/__init__.py +0 -0
  195. digitalhub/entities/secret/_base/builder.py +0 -81
  196. digitalhub/entities/secret/_base/status.py +0 -9
  197. digitalhub/entities/task/_base/__init__.py +0 -0
  198. digitalhub/entities/task/_base/builder.py +0 -91
  199. digitalhub/entities/task/_base/status.py +0 -9
  200. digitalhub/entities/utils/__init__.py +0 -0
  201. digitalhub/entities/workflow/_base/__init__.py +0 -0
  202. digitalhub/entities/workflow/_base/builder.py +0 -79
  203. digitalhub/entities/workflow/_base/spec.py +0 -15
  204. digitalhub/entities/workflow/_base/status.py +0 -9
  205. digitalhub/factory/__init__.py +0 -0
  206. digitalhub/factory/api.py +0 -277
  207. digitalhub/factory/factory.py +0 -268
  208. digitalhub/factory/utils.py +0 -90
  209. digitalhub/readers/_base/__init__.py +0 -0
  210. digitalhub/readers/_base/builder.py +0 -26
  211. digitalhub/readers/api.py +0 -80
  212. digitalhub/readers/factory.py +0 -133
  213. digitalhub/readers/pandas/__init__.py +0 -0
  214. digitalhub/readers/pandas/builder.py +0 -29
  215. digitalhub/stores/_base/__init__.py +0 -0
  216. digitalhub/stores/api.py +0 -54
  217. digitalhub/stores/local/__init__.py +0 -0
  218. digitalhub/stores/remote/__init__.py +0 -0
  219. digitalhub/stores/s3/__init__.py +0 -0
  220. digitalhub/stores/sql/__init__.py +0 -0
  221. digitalhub/utils/s3_utils.py +0 -58
  222. digitalhub-0.8.0.dist-info/RECORD +0 -231
  223. test/local/CRUD/test_artifacts.py +0 -96
  224. test/local/CRUD/test_dataitems.py +0 -96
  225. test/local/CRUD/test_models.py +0 -95
  226. /digitalhub/client/{_base → objects}/__init__.py +0 -0
  227. /digitalhub/client/{_base/client.py → objects/base.py} +0 -0
  228. /digitalhub/{client/dhcore → datastores/objects}/__init__.py +0 -0
  229. /digitalhub/entities/{utils → _base}/api.py +0 -0
  230. /digitalhub/{client/local → entities/_base/spec}/__init__.py +0 -0
  231. /digitalhub/entities/{utils → _base}/state.py +0 -0
  232. /digitalhub/{datastores/_base → entities/_base/status}/__init__.py +0 -0
  233. /digitalhub/{datastores/local → entities/_builders}/__init__.py +0 -0
  234. /digitalhub/entities/{_base/entity/_constructors → _builders}/name.py +0 -0
  235. /digitalhub/{datastores/remote → entities/artifact/entity}/__init__.py +0 -0
  236. /digitalhub/{datastores/s3 → entities/dataitem/entity}/__init__.py +0 -0
  237. /digitalhub/entities/dataitem/{table/models.py → models.py} +0 -0
  238. /digitalhub/entities/{utils/entity_types.py → entity_types.py} +0 -0
  239. /digitalhub/{datastores/sql → entities/model/entity}/__init__.py +0 -0
  240. /digitalhub/entities/model/{mlflow/models.py → models.py} +0 -0
  241. /digitalhub/{entities/_base/_base → readers/objects}/__init__.py +0 -0
  242. /digitalhub/readers/{_base/reader.py → objects/base.py} +0 -0
  243. /digitalhub/{entities/_base/context → registry}/__init__.py +0 -0
  244. /digitalhub/{entities/_base/entity/_constructors → stores/objects}/__init__.py +0 -0
  245. /digitalhub/stores/{_base/store.py → objects/base.py} +0 -0
  246. {digitalhub-0.8.0.dist-info → digitalhub-0.8.0b1.dist-info}/LICENSE.txt +0 -0
  247. {digitalhub-0.8.0.dist-info → digitalhub-0.8.0b1.dist-info}/top_level.txt +0 -0
  248. /test/{local/imports/test_imports.py → test_imports.py} +0 -0
@@ -1,50 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities._base.entity.spec import Spec, SpecValidator
4
- from digitalhub.entities.task._base.models import K8s
5
-
6
-
7
- class RunSpec(Spec):
8
- """RunSpec specifications."""
9
-
10
- def __init__(
11
- self,
12
- task: str,
13
- local_execution: bool = False,
14
- function: str | None = None,
15
- node_selector: dict | None = None,
16
- volumes: list | None = None,
17
- resources: dict | None = None,
18
- affinity: dict | None = None,
19
- tolerations: list | None = None,
20
- envs: list | None = None,
21
- secrets: list | None = None,
22
- profile: str | None = None,
23
- **kwargs,
24
- ) -> None:
25
- self.task = task
26
- self.local_execution = local_execution
27
- self.function = function
28
- self.node_selector = node_selector
29
- self.volumes = volumes
30
- self.resources = resources
31
- self.affinity = affinity
32
- self.tolerations = tolerations
33
- self.envs = envs
34
- self.secrets = secrets
35
- self.profile = profile
36
-
37
-
38
- class RunValidator(SpecValidator, K8s):
39
- """
40
- RunValidator validator.
41
- """
42
-
43
- function: str = None
44
- """The function associated with the run."""
45
-
46
- task: str = None
47
- """The task string associated with the run."""
48
-
49
- local_execution: bool = False
50
- """Flag to indicate if the run will be executed locally."""
@@ -1,9 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities._base.entity.status import Status
4
-
5
-
6
- class RunStatus(Status):
7
- """
8
- RunStatus status.
9
- """
File without changes
@@ -1,81 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities._base.versioned.builder import VersionedBuilder
4
- from digitalhub.entities.secret._base.entity import Secret
5
- from digitalhub.entities.secret._base.spec import SecretSpec, SecretValidator
6
- from digitalhub.entities.secret._base.status import SecretStatus
7
- from digitalhub.entities.utils.entity_types import EntityTypes
8
-
9
-
10
- class SecretSecretBuilder(VersionedBuilder):
11
- """
12
- SecretSecretBuilder builder.
13
- """
14
-
15
- ENTITY_TYPE = EntityTypes.SECRET.value
16
- ENTITY_CLASS = Secret
17
- ENTITY_SPEC_CLASS = SecretSpec
18
- ENTITY_SPEC_VALIDATOR = SecretValidator
19
- ENTITY_STATUS_CLASS = SecretStatus
20
- ENTITY_KIND = "secret"
21
-
22
- def build(
23
- self,
24
- kind: str,
25
- project: str,
26
- name: str,
27
- uuid: str | None = None,
28
- description: str | None = None,
29
- labels: list[str] | None = None,
30
- **kwargs,
31
- ) -> Secret:
32
- """
33
- Create a new object.
34
-
35
- Parameters
36
- ----------
37
- project : str
38
- Project name.
39
- name : str
40
- Object name.
41
- kind : str
42
- Kind the object.
43
- uuid : str
44
- ID of the object.
45
- description : str
46
- Description of the object (human readable).
47
- labels : list[str]
48
- List of labels.
49
- **kwargs : dict
50
- Spec keyword arguments.
51
-
52
- Returns
53
- -------
54
- Secret
55
- Object instance.
56
- """
57
- name = self.build_name(name)
58
- uuid = self.build_uuid(uuid)
59
- metadata = self.build_metadata(
60
- project=project,
61
- name=name,
62
- description=description,
63
- labels=labels,
64
- )
65
- path = f"secret://{name}"
66
- provider = "kubernetes"
67
- spec = self.build_spec(
68
- path=path,
69
- provider=provider,
70
- **kwargs,
71
- )
72
- status = self.build_status()
73
- return self.build_entity(
74
- project=project,
75
- name=name,
76
- uuid=uuid,
77
- kind=kind,
78
- metadata=metadata,
79
- spec=spec,
80
- status=status,
81
- )
@@ -1,9 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities._base.entity.status import Status
4
-
5
-
6
- class SecretStatus(Status):
7
- """
8
- SecretStatus status.
9
- """
File without changes
@@ -1,91 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import typing
4
-
5
- from digitalhub.entities._base.runtime_entity.builder import EntityError, RuntimeEntityBuilder
6
- from digitalhub.entities._base.unversioned.builder import UnversionedBuilder
7
- from digitalhub.entities.utils.entity_types import EntityTypes
8
-
9
- if typing.TYPE_CHECKING:
10
- from digitalhub.entities.task._base.entity import Task
11
-
12
-
13
- class TaskBuilder(UnversionedBuilder, RuntimeEntityBuilder):
14
- """
15
- Task builder.
16
- """
17
-
18
- ENTITY_TYPE = EntityTypes.TASK.value
19
-
20
- def build(
21
- self,
22
- project: str,
23
- kind: str,
24
- uuid: str | None = None,
25
- labels: list[str] | None = None,
26
- function: str | None = None,
27
- **kwargs,
28
- ) -> Task:
29
- """
30
- Create a new object.
31
-
32
- Parameters
33
- ----------
34
- project : str
35
- Project name.
36
- kind : str
37
- Kind the object.
38
- uuid : str
39
- ID of the object.
40
- labels : list[str]
41
- List of labels.
42
- function : str
43
- Name of the executable associated with the task.
44
- **kwargs : dict
45
- Spec keyword arguments.
46
-
47
- Returns
48
- -------
49
- Task
50
- Object instance.
51
- """
52
- if function is None:
53
- raise EntityError("function must be provided")
54
-
55
- self._check_kind_validity(function)
56
- uuid = self.build_uuid(uuid)
57
- metadata = self.build_metadata(
58
- project=project,
59
- name=uuid,
60
- labels=labels,
61
- )
62
- spec = self.build_spec(
63
- function=function,
64
- **kwargs,
65
- )
66
- status = self.build_status()
67
- return self.build_entity(
68
- project=project,
69
- uuid=uuid,
70
- kind=kind,
71
- metadata=metadata,
72
- spec=spec,
73
- status=status,
74
- )
75
-
76
- def _check_kind_validity(self, function: str) -> None:
77
- """
78
- Check kind validity.
79
-
80
- Parameters
81
- ----------
82
- function : str
83
- Function string.
84
-
85
- Returns
86
- -------
87
- None
88
- """
89
- function_kind = function.split("://")[0]
90
- if self.EXECUTABLE_KIND != function_kind:
91
- raise EntityError(f"Invalid task '{self.ENTITY_KIND}' for function kind '{function_kind}'")
@@ -1,9 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities._base.entity.status import Status
4
-
5
-
6
- class TaskStatus(Status):
7
- """
8
- TaskStatus status.
9
- """
File without changes
File without changes
@@ -1,79 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import typing
4
-
5
- from digitalhub.entities._base.runtime_entity.builder import RuntimeEntityBuilder
6
- from digitalhub.entities._base.versioned.builder import VersionedBuilder
7
- from digitalhub.entities.utils.entity_types import EntityTypes
8
-
9
- if typing.TYPE_CHECKING:
10
- from digitalhub.entities.workflow._base.entity import Workflow
11
-
12
-
13
- class WorkflowBuilder(VersionedBuilder, RuntimeEntityBuilder):
14
- """
15
- Workflow builder.
16
- """
17
-
18
- ENTITY_TYPE = EntityTypes.WORKFLOW.value
19
-
20
- def build(
21
- self,
22
- kind: str,
23
- project: str,
24
- name: str,
25
- uuid: str | None = None,
26
- description: str | None = None,
27
- labels: list[str] | None = None,
28
- embedded: bool = False,
29
- **kwargs,
30
- ) -> Workflow:
31
- """
32
- Create a new object.
33
-
34
- Parameters
35
- ----------
36
- project : str
37
- Project name.
38
- name : str
39
- Object name.
40
- kind : str
41
- Kind the object.
42
- uuid : str
43
- ID of the object.
44
- description : str
45
- Description of the object (human readable).
46
- labels : list[str]
47
- List of labels.
48
- embedded : bool
49
- Flag to determine if object spec must be embedded in project spec.
50
- **kwargs : dict
51
- Spec keyword arguments.
52
-
53
- Returns
54
- -------
55
- Workflow
56
- Object instance.
57
- """
58
- name = self.build_name(name)
59
- uuid = self.build_uuid(uuid)
60
- metadata = self.build_metadata(
61
- project=project,
62
- name=name,
63
- description=description,
64
- labels=labels,
65
- embedded=embedded,
66
- )
67
- spec = self.build_spec(
68
- **kwargs,
69
- )
70
- status = self.build_status()
71
- return self.build_entity(
72
- project=project,
73
- name=name,
74
- uuid=uuid,
75
- kind=kind,
76
- metadata=metadata,
77
- spec=spec,
78
- status=status,
79
- )
@@ -1,15 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities._base.entity.spec import Spec, SpecValidator
4
-
5
-
6
- class WorkflowSpec(Spec):
7
- """
8
- WorkflowSpec specifications.
9
- """
10
-
11
-
12
- class WorkflowValidator(SpecValidator):
13
- """
14
- WorkflowValidator validator.
15
- """
@@ -1,9 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities._base.entity.status import Status
4
-
5
-
6
- class WorkflowStatus(Status):
7
- """
8
- WorkflowStatus status.
9
- """
File without changes
digitalhub/factory/api.py DELETED
@@ -1,277 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import typing
4
-
5
- from digitalhub.factory.factory import factory
6
- from digitalhub.utils.exceptions import BuilderError
7
-
8
- if typing.TYPE_CHECKING:
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.runtimes._base import Runtime
14
-
15
-
16
- def build_entity_from_params(**kwargs) -> Entity:
17
- """
18
- Build an entity.
19
-
20
- Parameters
21
- ----------
22
- **kwargs
23
- Entity parameters.
24
-
25
- Returns
26
- -------
27
- Entity
28
- Entity object.
29
- """
30
- try:
31
- kind = kwargs["kind"]
32
- except KeyError:
33
- raise BuilderError("Missing 'kind' parameter.")
34
- _raise_if_entity_builder_not_found(kind)
35
- return factory.build_entity_from_params(kind, **kwargs)
36
-
37
-
38
- def build_entity_from_dict(obj: dict) -> Entity:
39
- """
40
- Build an entity from a dictionary.
41
-
42
- Parameters
43
- ----------
44
- obj : dict
45
- Dictionary with entity data.
46
-
47
- Returns
48
- -------
49
- Entity
50
- Entity object.
51
- """
52
- try:
53
- kind = obj["kind"]
54
- except KeyError:
55
- raise BuilderError("Missing 'kind' parameter.")
56
- _raise_if_entity_builder_not_found(kind)
57
- return factory.build_entity_from_dict(kind, obj)
58
-
59
-
60
- def build_spec(kind_to_build_from: str, **kwargs) -> Spec:
61
- """
62
- Build an entity spec.
63
-
64
- Parameters
65
- ----------
66
- kind_to_build_from : str
67
- Entity type.
68
-
69
- Returns
70
- -------
71
- Spec
72
- Spec object.
73
- """
74
- _raise_if_entity_builder_not_found(kind_to_build_from)
75
- return factory.build_spec(kind_to_build_from, **kwargs)
76
-
77
-
78
- def build_metadata(kind_to_build_from: str, **kwargs) -> Metadata:
79
- """
80
- Build an entity metadata.
81
-
82
- Parameters
83
- ----------
84
- kind_to_build_from : str
85
- Entity type.
86
-
87
- Returns
88
- -------
89
- Metadata
90
- Metadata object.
91
- """
92
- _raise_if_entity_builder_not_found(kind_to_build_from)
93
- return factory.build_metadata(kind_to_build_from, **kwargs)
94
-
95
-
96
- def build_status(kind_to_build_from: str, **kwargs) -> Status:
97
- """
98
- Build an entity status.
99
-
100
- Parameters
101
- ----------
102
- kind_to_build_from : str
103
- Entity type.
104
-
105
- Returns
106
- -------
107
- Status
108
- Status object.
109
- """
110
- _raise_if_entity_builder_not_found(kind_to_build_from)
111
- return factory.build_status(kind_to_build_from, **kwargs)
112
-
113
-
114
- def build_runtime(kind_to_build_from: str, project: str) -> Runtime:
115
- """
116
- Build a runtime.
117
-
118
- Parameters
119
- ----------
120
- kind_to_build_from : str
121
- Runtime type.
122
- project : str
123
- Project name.
124
-
125
- Returns
126
- -------
127
- Runtime
128
- Runtime object.
129
- """
130
- _raise_if_runtime_builder_not_found(kind_to_build_from)
131
- return factory.build_runtime(kind_to_build_from, project)
132
-
133
-
134
- def get_entity_type_from_kind(kind: str) -> str:
135
- """
136
- Get entity type from builder.
137
-
138
- Parameters
139
- ----------
140
- kind : str
141
- Entity type.
142
-
143
- Returns
144
- -------
145
- str
146
- Entity type.
147
- """
148
- _raise_if_entity_builder_not_found(kind)
149
- return factory.get_entity_type_from_kind(kind)
150
-
151
-
152
- def get_all_kinds(kind: str) -> list[str]:
153
- """
154
- Get all kinds.
155
-
156
- Parameters
157
- ----------
158
- kind : str
159
- Kind.
160
-
161
- Returns
162
- -------
163
- list[str]
164
- All entities runtime kinds.
165
- """
166
- _raise_if_entity_builder_not_found(kind)
167
- return factory.get_all_kinds(kind)
168
-
169
-
170
- def get_executable_kind(kind: str) -> str:
171
- """
172
- Get executable kind.
173
-
174
- Parameters
175
- ----------
176
- kind : str
177
- Kind.
178
-
179
- Returns
180
- -------
181
- str
182
- Executable kind.
183
- """
184
- _raise_if_entity_builder_not_found(kind)
185
- return factory.get_executable_kind(kind)
186
-
187
-
188
- def get_task_kind_from_action(kind: str, action: str) -> str:
189
- """
190
- Get task kinds from action.
191
-
192
- Parameters
193
- ----------
194
- kind : str
195
- Kind.
196
- action : str
197
- Action.
198
-
199
- Returns
200
- -------
201
- str
202
- Task kind.
203
- """
204
- _raise_if_entity_builder_not_found(kind)
205
- return factory.get_task_kind_from_action(kind, action)
206
-
207
-
208
- def get_action_from_task_kind(kind: str, task_kind: str) -> str:
209
- """
210
- Get action from task.
211
-
212
- Parameters
213
- ----------
214
- kind : str
215
- Kind.
216
- task_kind : str
217
- Task kind.
218
-
219
- Returns
220
- -------
221
- str
222
- Action.
223
- """
224
- _raise_if_entity_builder_not_found(kind)
225
- return factory.get_action_from_task_kind(kind, task_kind)
226
-
227
-
228
- def get_run_kind(kind: str) -> str:
229
- """
230
- Get run kind.
231
-
232
- Parameters
233
- ----------
234
- kind : str
235
- Kind.
236
-
237
- Returns
238
- -------
239
- str
240
- Run kind.
241
- """
242
- _raise_if_entity_builder_not_found(kind)
243
- return factory.get_run_kind(kind)
244
-
245
-
246
- def _raise_if_entity_builder_not_found(kind: str) -> None:
247
- """
248
- Raise error if entity builder not found.
249
-
250
- Parameters
251
- ----------
252
- kind : str
253
- Entity type.
254
-
255
- Returns
256
- -------
257
- None
258
- """
259
- if kind not in factory._entity_builders:
260
- raise BuilderError(f"Builder for kind '{kind}' not found.")
261
-
262
-
263
- def _raise_if_runtime_builder_not_found(kind: str) -> None:
264
- """
265
- Raise error if runtime builder not found.
266
-
267
- Parameters
268
- ----------
269
- kind : str
270
- Runtime type.
271
-
272
- Returns
273
- -------
274
- None
275
- """
276
- if kind not in factory._runtime_builders:
277
- raise BuilderError(f"Builder for kind '{kind}' not found.")