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,49 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities._base.material.spec import MaterialSpec, MaterialValidator
4
-
5
-
6
- class ModelSpec(MaterialSpec):
7
- """
8
- ModelSpec specifications.
9
- """
10
-
11
- def __init__(
12
- self,
13
- path: str,
14
- framework: str | None = None,
15
- algorithm: str | None = None,
16
- base_model: str | None = None,
17
- parameters: dict | None = None,
18
- metrics: dict | None = None,
19
- ) -> None:
20
- self.path = path
21
- self.framework = framework
22
- self.algorithm = algorithm
23
- self.base_model = base_model
24
- self.parameters = parameters
25
- self.metrics = metrics
26
-
27
-
28
- class ModelValidator(MaterialValidator):
29
- """
30
- ModelValidator validator.
31
- """
32
-
33
- path: str
34
- """Path to the model."""
35
-
36
- framework: str = None
37
- """Model framework (e.g. 'pytorch')."""
38
-
39
- algorithm: str = None
40
- """Model algorithm (e.g. 'resnet')."""
41
-
42
- base_model: str = None
43
- """Base model."""
44
-
45
- parameters: dict = None
46
- """Model validator."""
47
-
48
- metrics: dict = None
49
- """Model metrics."""
@@ -1,9 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities._base.material.status import MaterialStatus
4
-
5
-
6
- class ModelStatus(MaterialStatus):
7
- """
8
- ModelStatus status.
9
- """
File without changes
@@ -1,18 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities.model._base.builder import ModelBuilder
4
- from digitalhub.entities.model.huggingface.entity import ModelHuggingface
5
- from digitalhub.entities.model.huggingface.spec import ModelSpecHuggingface, ModelValidatorHuggingface
6
- from digitalhub.entities.model.huggingface.status import ModelStatusHuggingface
7
-
8
-
9
- class ModelHuggingfaceBuilder(ModelBuilder):
10
- """
11
- ModelHuggingface builder.
12
- """
13
-
14
- ENTITY_CLASS = ModelHuggingface
15
- ENTITY_SPEC_CLASS = ModelSpecHuggingface
16
- ENTITY_SPEC_VALIDATOR = ModelValidatorHuggingface
17
- ENTITY_STATUS_CLASS = ModelStatusHuggingface
18
- ENTITY_KIND = "huggingface"
@@ -1,32 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import typing
4
-
5
- from digitalhub.entities.model._base.entity import Model
6
-
7
- if typing.TYPE_CHECKING:
8
- from digitalhub.entities._base.entity.metadata import Metadata
9
- from digitalhub.entities.model.huggingface.spec import ModelSpecHuggingface
10
- from digitalhub.entities.model.huggingface.status import ModelStatusHuggingface
11
-
12
-
13
- class ModelHuggingface(Model):
14
- """
15
- ModelHuggingface class.
16
- """
17
-
18
- def __init__(
19
- self,
20
- project: str,
21
- name: str,
22
- uuid: str,
23
- kind: str,
24
- metadata: Metadata,
25
- spec: ModelSpecHuggingface,
26
- status: ModelStatusHuggingface,
27
- user: str | None = None,
28
- ) -> None:
29
- super().__init__(project, name, uuid, kind, metadata, spec, status, user)
30
-
31
- self.spec: ModelSpecHuggingface
32
- self.status: ModelStatusHuggingface
@@ -1,36 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities.model._base.spec import ModelSpec, ModelValidator
4
-
5
-
6
- class ModelSpecHuggingface(ModelSpec):
7
- """
8
- ModelSpecHuggingface specifications.
9
- """
10
-
11
- def __init__(
12
- self,
13
- path: str,
14
- framework: str | None = None,
15
- algorithm: str | None = None,
16
- base_model: str | None = None,
17
- parameters: dict | None = None,
18
- metrics: dict | None = None,
19
- model_id: str | None = None,
20
- model_revision: str = None,
21
- ) -> None:
22
- super().__init__(path, framework, algorithm, base_model, parameters, metrics)
23
- self.model_id = model_id
24
- self.model_revision = model_revision
25
-
26
-
27
- class ModelValidatorHuggingface(ModelValidator):
28
- """
29
- ModelValidatorHuggingface validator.
30
- """
31
-
32
- model_id: str = None
33
- """Huggingface model id. If not specified, the model is loaded from the model path."""
34
-
35
- model_revision: str = None
36
- """Huggingface model revision."""
@@ -1,9 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities.model._base.status import ModelStatus
4
-
5
-
6
- class ModelStatusHuggingface(ModelStatus):
7
- """
8
- ModelStatusHuggingface status.
9
- """
File without changes
@@ -1,18 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities.model._base.builder import ModelBuilder
4
- from digitalhub.entities.model.mlflow.entity import ModelMlflow
5
- from digitalhub.entities.model.mlflow.spec import ModelSpecMlflow, ModelValidatorMlflow
6
- from digitalhub.entities.model.mlflow.status import ModelStatusMlflow
7
-
8
-
9
- class ModelModelBuilder(ModelBuilder):
10
- """
11
- ModelMlflow builder.
12
- """
13
-
14
- ENTITY_CLASS = ModelMlflow
15
- ENTITY_SPEC_CLASS = ModelSpecMlflow
16
- ENTITY_SPEC_VALIDATOR = ModelValidatorMlflow
17
- ENTITY_STATUS_CLASS = ModelStatusMlflow
18
- ENTITY_KIND = "mlflow"
@@ -1,32 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import typing
4
-
5
- from digitalhub.entities.model._base.entity import Model
6
-
7
- if typing.TYPE_CHECKING:
8
- from digitalhub.entities._base.entity.metadata import Metadata
9
- from digitalhub.entities.model.mlflow.spec import ModelSpecMlflow
10
- from digitalhub.entities.model.mlflow.status import ModelStatusMlflow
11
-
12
-
13
- class ModelMlflow(Model):
14
- """
15
- ModelMlflow class.
16
- """
17
-
18
- def __init__(
19
- self,
20
- project: str,
21
- name: str,
22
- uuid: str,
23
- kind: str,
24
- metadata: Metadata,
25
- spec: ModelSpecMlflow,
26
- status: ModelStatusMlflow,
27
- user: str | None = None,
28
- ) -> None:
29
- super().__init__(project, name, uuid, kind, metadata, spec, status, user)
30
-
31
- self.spec: ModelSpecMlflow
32
- self.status: ModelStatusMlflow
@@ -1,44 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities.model._base.spec import ModelSpec, ModelValidator
4
- from digitalhub.entities.model.mlflow.models import Dataset, Signature
5
-
6
-
7
- class ModelSpecMlflow(ModelSpec):
8
- """
9
- ModelSpecMlflow specifications.
10
- """
11
-
12
- def __init__(
13
- self,
14
- path: str,
15
- framework: str | None = None,
16
- algorithm: str | None = None,
17
- base_model: str | None = None,
18
- parameters: dict | None = None,
19
- metrics: dict | None = None,
20
- flavor: str | None = None,
21
- model_config: dict | None = None,
22
- input_datasets: list[Dataset] | None = None,
23
- signature: Signature = None,
24
- ) -> None:
25
- super().__init__(path, framework, algorithm, base_model, parameters, metrics)
26
- self.flavor = flavor
27
- self.model_config = model_config
28
- self.input_datasets = input_datasets
29
- self.signature = signature
30
-
31
-
32
- class ModelValidatorMlflow(ModelValidator):
33
- """
34
- ModelValidatorMlflow validator.
35
- """
36
-
37
- flavor: str = None
38
- """Mlflow model flavor."""
39
- model_config: dict = None
40
- """Mlflow model config."""
41
- input_datasets: list[Dataset] = None
42
- """Mlflow input datasets."""
43
- signature: Signature = None
44
- """Mlflow model signature."""
@@ -1,9 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities.model._base.status import ModelStatus
4
-
5
-
6
- class ModelStatusMlflow(ModelStatus):
7
- """
8
- ModelStatusMlflow status.
9
- """
File without changes
@@ -1,18 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities.model._base.builder import ModelBuilder
4
- from digitalhub.entities.model.model.entity import ModelModel
5
- from digitalhub.entities.model.model.spec import ModelSpecModel, ModelValidatorModel
6
- from digitalhub.entities.model.model.status import ModelStatusModel
7
-
8
-
9
- class ModelMlflowBuilder(ModelBuilder):
10
- """
11
- ModelModel builder.
12
- """
13
-
14
- ENTITY_CLASS = ModelModel
15
- ENTITY_SPEC_CLASS = ModelSpecModel
16
- ENTITY_SPEC_VALIDATOR = ModelValidatorModel
17
- ENTITY_STATUS_CLASS = ModelStatusModel
18
- ENTITY_KIND = "model"
@@ -1,32 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import typing
4
-
5
- from digitalhub.entities.model._base.entity import Model
6
-
7
- if typing.TYPE_CHECKING:
8
- from digitalhub.entities._base.entity.metadata import Metadata
9
- from digitalhub.entities.model.model.spec import ModelSpecModel
10
- from digitalhub.entities.model.model.status import ModelStatusModel
11
-
12
-
13
- class ModelModel(Model):
14
- """
15
- ModelModel class.
16
- """
17
-
18
- def __init__(
19
- self,
20
- project: str,
21
- name: str,
22
- uuid: str,
23
- kind: str,
24
- metadata: Metadata,
25
- spec: ModelSpecModel,
26
- status: ModelStatusModel,
27
- user: str | None = None,
28
- ) -> None:
29
- super().__init__(project, name, uuid, kind, metadata, spec, status, user)
30
-
31
- self.spec: ModelSpecModel
32
- self.status: ModelStatusModel
@@ -1,15 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities.model._base.spec import ModelSpec, ModelValidator
4
-
5
-
6
- class ModelSpecModel(ModelSpec):
7
- """
8
- ModelSpecModel specifications.
9
- """
10
-
11
-
12
- class ModelValidatorModel(ModelValidator):
13
- """
14
- ModelValidatorModel validator.
15
- """
@@ -1,9 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities.model._base.status import ModelStatus
4
-
5
-
6
- class ModelStatusModel(ModelStatus):
7
- """
8
- ModelStatusModel status.
9
- """
File without changes
@@ -1,18 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities.model._base.builder import ModelBuilder
4
- from digitalhub.entities.model.sklearn.entity import ModelSklearn
5
- from digitalhub.entities.model.sklearn.spec import ModelSpecSklearn, ModelValidatorSklearn
6
- from digitalhub.entities.model.sklearn.status import ModelStatusSklearn
7
-
8
-
9
- class ModelSklearnBuilder(ModelBuilder):
10
- """
11
- ModelSklearn builder.
12
- """
13
-
14
- ENTITY_CLASS = ModelSklearn
15
- ENTITY_SPEC_CLASS = ModelSpecSklearn
16
- ENTITY_SPEC_VALIDATOR = ModelValidatorSklearn
17
- ENTITY_STATUS_CLASS = ModelStatusSklearn
18
- ENTITY_KIND = "sklearn"
@@ -1,32 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import typing
4
-
5
- from digitalhub.entities.model._base.entity import Model
6
-
7
- if typing.TYPE_CHECKING:
8
- from digitalhub.entities._base.entity.metadata import Metadata
9
- from digitalhub.entities.model.sklearn.spec import ModelSpecSklearn
10
- from digitalhub.entities.model.sklearn.status import ModelStatusSklearn
11
-
12
-
13
- class ModelSklearn(Model):
14
- """
15
- ModelSklearn class.
16
- """
17
-
18
- def __init__(
19
- self,
20
- project: str,
21
- name: str,
22
- uuid: str,
23
- kind: str,
24
- metadata: Metadata,
25
- spec: ModelSpecSklearn,
26
- status: ModelStatusSklearn,
27
- user: str | None = None,
28
- ) -> None:
29
- super().__init__(project, name, uuid, kind, metadata, spec, status, user)
30
-
31
- self.spec: ModelSpecSklearn
32
- self.status: ModelStatusSklearn
@@ -1,15 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities.model._base.spec import ModelSpec, ModelValidator
4
-
5
-
6
- class ModelSpecSklearn(ModelSpec):
7
- """
8
- ModelSpecSklearn specifications.
9
- """
10
-
11
-
12
- class ModelValidatorSklearn(ModelValidator):
13
- """
14
- ModelValidatorSklearn validator.
15
- """
@@ -1,9 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities.model._base.status import ModelStatus
4
-
5
-
6
- class ModelStatusSklearn(ModelStatus):
7
- """
8
- ModelStatusSklearn status.
9
- """
File without changes
@@ -1,128 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities._base.entity.builder import EntityBuilder
4
- from digitalhub.entities.project._base.entity import Project
5
- from digitalhub.entities.project._base.spec import ProjectSpec, ProjectValidator
6
- from digitalhub.entities.project._base.status import ProjectStatus
7
- from digitalhub.entities.utils.entity_types import EntityTypes
8
-
9
-
10
- class ProjectProjectBuilder(EntityBuilder):
11
- """
12
- ProjectProject builder.
13
- """
14
-
15
- ENTITY_TYPE = EntityTypes.PROJECT.value
16
- ENTITY_CLASS = Project
17
- ENTITY_SPEC_CLASS = ProjectSpec
18
- ENTITY_SPEC_VALIDATOR = ProjectValidator
19
- ENTITY_STATUS_CLASS = ProjectStatus
20
- ENTITY_KIND = "project"
21
-
22
- def build(
23
- self,
24
- name: str,
25
- kind: str,
26
- description: str | None = None,
27
- labels: list[str] | None = None,
28
- local: bool = False,
29
- context: str | None = None,
30
- **kwargs,
31
- ) -> Project:
32
- """
33
- Create a new object.
34
-
35
- Parameters
36
- ----------
37
- name : str
38
- Object name.
39
- kind : str
40
- Kind the object.
41
- description : str
42
- Description of the object (human readable).
43
- labels : list[str]
44
- List of labels.
45
- local : bool
46
- If True, use local backend, if False use DHCore backend. Default to False.
47
- context : str
48
- The context local folder of the project.
49
- **kwargs : dict
50
- Spec keyword arguments.
51
-
52
- Returns
53
- -------
54
- Project
55
- Object instance.
56
- """
57
- name = self.build_name(name)
58
- metadata = self.build_metadata(
59
- project=name,
60
- name=name,
61
- description=description,
62
- labels=labels,
63
- )
64
- spec = self.build_spec(
65
- context=context,
66
- **kwargs,
67
- )
68
- status = self.build_status()
69
- return self.build_entity(
70
- name=name,
71
- kind=kind,
72
- metadata=metadata,
73
- spec=spec,
74
- status=status,
75
- local=local,
76
- )
77
-
78
- def from_dict(self, obj: dict, validate: bool = True) -> Project:
79
- """
80
- Create a new object from dictionary.
81
-
82
- Parameters
83
- ----------
84
- obj : dict
85
- Dictionary to create object from.
86
- validate : bool
87
- Flag to indicate if arguments must be validated.
88
-
89
- Returns
90
- -------
91
- Project
92
- Object instance.
93
- """
94
- parsed_dict = self._parse_dict(obj, validate=validate)
95
- return self.build_entity(**parsed_dict)
96
-
97
- def _parse_dict(self, obj: dict, validate: bool = True) -> dict:
98
- """
99
- Get dictionary and parse it to a valid entity dictionary.
100
-
101
- Parameters
102
- ----------
103
- entity : str
104
- Entity type.
105
- obj : dict
106
- Dictionary to parse.
107
-
108
- Returns
109
- -------
110
- dict
111
- A dictionary containing the attributes of the entity instance.
112
- """
113
- name = self.build_name(obj.get("name"))
114
- kind = obj.get("kind")
115
- local = obj.get("local", False)
116
- metadata = self.build_metadata(**obj.get("metadata", {}))
117
- spec = self.build_spec(validate=validate, **obj.get("spec", {}))
118
- status = self.build_status(**obj.get("status", {}))
119
- user = obj.get("user")
120
- return {
121
- "name": name,
122
- "kind": kind,
123
- "metadata": metadata,
124
- "spec": spec,
125
- "status": status,
126
- "user": user,
127
- "local": local,
128
- }
@@ -1,9 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.entities._base.entity.status import Status
4
-
5
-
6
- class ProjectStatus(Status):
7
- """
8
- ProjectStatus status.
9
- """
File without changes
@@ -1,94 +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.run._base.entity import Run
11
-
12
-
13
- class RunBuilder(UnversionedBuilder, RuntimeEntityBuilder):
14
- """
15
- Run builder.
16
- """
17
-
18
- ENTITY_TYPE = EntityTypes.RUN.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
- task: str | None = None,
27
- local_execution: bool = False,
28
- **kwargs,
29
- ) -> Run:
30
- """
31
- Create a new object.
32
-
33
- Parameters
34
- ----------
35
- project : str
36
- Project name.
37
- kind : str
38
- Kind the object.
39
- uuid : str
40
- ID of the object.
41
- labels : list[str]
42
- List of labels.
43
- task : str
44
- Name of the task associated with the run.
45
- local_execution : bool
46
- Flag to determine if object has local execution.
47
- **kwargs : dict
48
- Spec keyword arguments.
49
-
50
- Returns
51
- -------
52
- Run
53
- Object instance.
54
- """
55
- if task is None:
56
- raise EntityError("Missing task in run spec")
57
- self._check_kind_validity(task)
58
- uuid = self.build_uuid(uuid)
59
- metadata = self.build_metadata(
60
- project=project,
61
- name=uuid,
62
- labels=labels,
63
- )
64
- spec = self.build_spec(
65
- task=task,
66
- local_execution=local_execution,
67
- **kwargs,
68
- )
69
- status = self.build_status()
70
- return self.build_entity(
71
- project=project,
72
- uuid=uuid,
73
- kind=kind,
74
- metadata=metadata,
75
- spec=spec,
76
- status=status,
77
- )
78
-
79
- def _check_kind_validity(self, task: str) -> None:
80
- """
81
- Check kind validity.
82
-
83
- Parameters
84
- ----------
85
- task : str
86
- Task string.
87
-
88
- Returns
89
- -------
90
- None
91
- """
92
- task_kind = task.split("://")[0]
93
- if task_kind not in self.get_all_kinds():
94
- raise EntityError(f"Invalid run '{self.ENTITY_KIND}' for task kind '{task_kind}'")