digitalhub 0.8.0b2__py3-none-any.whl → 0.8.0b4__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 (229) hide show
  1. digitalhub/__init__.py +5 -4
  2. digitalhub/client/builder.py +3 -3
  3. digitalhub/client/{objects/dhcore.py → dhcore/client.py} +9 -49
  4. digitalhub/client/dhcore/env.py +21 -0
  5. digitalhub/client/dhcore/models.py +46 -0
  6. digitalhub/{utils/env_utils.py → client/dhcore/utils.py} +1 -13
  7. digitalhub/client/{objects/local.py → local/client.py} +1 -1
  8. digitalhub/context/builder.py +1 -1
  9. digitalhub/context/context.py +1 -1
  10. digitalhub/datastores/{objects/base.py → _base/datastore.py} +1 -1
  11. digitalhub/datastores/builder.py +6 -6
  12. digitalhub/datastores/{objects/local.py → local/datastore.py} +1 -1
  13. digitalhub/datastores/{objects/remote.py → remote/datastore.py} +1 -1
  14. digitalhub/datastores/{objects/s3.py → s3/datastore.py} +1 -1
  15. digitalhub/datastores/{objects/sql.py → sql/datastore.py} +1 -1
  16. digitalhub/entities/_base/{base.py → _base/entity.py} +1 -1
  17. digitalhub/entities/_base/{entity/context.py → context/entity.py} +4 -4
  18. digitalhub/entities/_base/crud.py +3 -3
  19. digitalhub/entities/_base/entity/{base.py → entity.py} +8 -34
  20. digitalhub/entities/_base/{metadata.py → entity/metadata.py} +2 -2
  21. digitalhub/entities/_base/{spec/base.py → entity/spec.py} +11 -11
  22. digitalhub/entities/_base/{status/base.py → entity/status.py} +2 -2
  23. digitalhub/entities/_base/executable/__init__.py +0 -0
  24. digitalhub/entities/_base/{entity/executable.py → executable/entity.py} +55 -31
  25. digitalhub/entities/_base/material/__init__.py +0 -0
  26. digitalhub/entities/_base/{entity/material.py → material/entity.py} +4 -4
  27. digitalhub/entities/_base/{spec/material.py → material/spec.py} +3 -3
  28. digitalhub/entities/_base/{status/material.py → material/status.py} +1 -1
  29. digitalhub/entities/_base/unversioned/__init__.py +0 -0
  30. digitalhub/entities/_base/unversioned/builder.py +66 -0
  31. digitalhub/entities/_base/unversioned/entity.py +49 -0
  32. digitalhub/entities/_base/versioned/__init__.py +0 -0
  33. digitalhub/entities/_base/versioned/builder.py +68 -0
  34. digitalhub/entities/_base/versioned/entity.py +53 -0
  35. digitalhub/entities/_builders/entity.py +153 -0
  36. digitalhub/entities/_builders/metadata.py +5 -21
  37. digitalhub/entities/_builders/spec.py +11 -21
  38. digitalhub/entities/_builders/status.py +10 -20
  39. digitalhub/entities/_builders/uuid.py +4 -11
  40. digitalhub/entities/artifact/_base/__init__.py +0 -0
  41. digitalhub/entities/artifact/_base/builder.py +86 -0
  42. digitalhub/entities/artifact/{entity/_base.py → _base/entity.py} +5 -5
  43. digitalhub/entities/artifact/_base/spec.py +15 -0
  44. digitalhub/entities/artifact/_base/status.py +9 -0
  45. digitalhub/entities/artifact/artifact/__init__.py +0 -0
  46. digitalhub/entities/artifact/artifact/builder.py +18 -0
  47. digitalhub/entities/artifact/artifact/entity.py +32 -0
  48. digitalhub/entities/artifact/{spec.py → artifact/spec.py} +4 -16
  49. digitalhub/entities/artifact/{status.py → artifact/status.py} +1 -1
  50. digitalhub/entities/artifact/builder.py +16 -98
  51. digitalhub/entities/artifact/crud.py +4 -4
  52. digitalhub/entities/builders.py +63 -0
  53. digitalhub/entities/dataitem/_base/__init__.py +0 -0
  54. digitalhub/entities/dataitem/_base/builder.py +86 -0
  55. digitalhub/entities/dataitem/{entity/_base.py → _base/entity.py} +5 -5
  56. digitalhub/entities/dataitem/_base/spec.py +15 -0
  57. digitalhub/entities/dataitem/_base/status.py +20 -0
  58. digitalhub/entities/dataitem/builder.py +16 -109
  59. digitalhub/entities/dataitem/crud.py +8 -5
  60. digitalhub/entities/dataitem/dataitem/__init__.py +0 -0
  61. digitalhub/entities/dataitem/dataitem/builder.py +18 -0
  62. digitalhub/entities/dataitem/dataitem/entity.py +32 -0
  63. digitalhub/entities/dataitem/dataitem/spec.py +15 -0
  64. digitalhub/entities/dataitem/dataitem/status.py +9 -0
  65. digitalhub/entities/dataitem/iceberg/__init__.py +0 -0
  66. digitalhub/entities/dataitem/iceberg/builder.py +18 -0
  67. digitalhub/entities/dataitem/iceberg/entity.py +32 -0
  68. digitalhub/entities/dataitem/iceberg/spec.py +15 -0
  69. digitalhub/entities/dataitem/iceberg/status.py +9 -0
  70. digitalhub/entities/dataitem/table/__init__.py +0 -0
  71. digitalhub/entities/dataitem/table/builder.py +18 -0
  72. digitalhub/entities/dataitem/{entity/table.py → table/entity.py} +24 -3
  73. digitalhub/entities/dataitem/table/spec.py +25 -0
  74. digitalhub/entities/dataitem/table/status.py +9 -0
  75. digitalhub/entities/function/_base/__init__.py +0 -0
  76. digitalhub/entities/function/_base/builder.py +78 -0
  77. digitalhub/entities/function/{entity.py → _base/entity.py} +8 -8
  78. digitalhub/entities/function/{models.py → _base/models.py} +1 -1
  79. digitalhub/entities/function/_base/spec.py +15 -0
  80. digitalhub/entities/function/_base/status.py +9 -0
  81. digitalhub/entities/function/builder.py +22 -57
  82. digitalhub/entities/function/crud.py +3 -3
  83. digitalhub/entities/model/_base/__init__.py +0 -0
  84. digitalhub/entities/model/_base/builder.py +86 -0
  85. digitalhub/entities/model/{entity/_base.py → _base/entity.py} +5 -5
  86. digitalhub/entities/model/_base/spec.py +49 -0
  87. digitalhub/entities/model/_base/status.py +9 -0
  88. digitalhub/entities/model/builder.py +16 -117
  89. digitalhub/entities/model/crud.py +4 -4
  90. digitalhub/entities/model/huggingface/__init__.py +0 -0
  91. digitalhub/entities/model/huggingface/builder.py +18 -0
  92. digitalhub/entities/model/huggingface/entity.py +32 -0
  93. digitalhub/entities/model/huggingface/spec.py +36 -0
  94. digitalhub/entities/model/huggingface/status.py +9 -0
  95. digitalhub/entities/model/mlflow/__init__.py +0 -0
  96. digitalhub/entities/model/mlflow/builder.py +18 -0
  97. digitalhub/entities/model/mlflow/entity.py +32 -0
  98. digitalhub/entities/model/mlflow/spec.py +44 -0
  99. digitalhub/entities/model/mlflow/status.py +9 -0
  100. digitalhub/entities/model/{entity/mlflow.py → mlflow/utils.py} +1 -10
  101. digitalhub/entities/model/model/__init__.py +0 -0
  102. digitalhub/entities/model/model/builder.py +18 -0
  103. digitalhub/entities/model/model/entity.py +32 -0
  104. digitalhub/entities/model/model/spec.py +15 -0
  105. digitalhub/entities/model/model/status.py +9 -0
  106. digitalhub/entities/model/sklearn/__init__.py +0 -0
  107. digitalhub/entities/model/sklearn/builder.py +18 -0
  108. digitalhub/entities/model/sklearn/entity.py +32 -0
  109. digitalhub/entities/model/sklearn/spec.py +15 -0
  110. digitalhub/entities/model/sklearn/status.py +9 -0
  111. digitalhub/entities/project/_base/__init__.py +0 -0
  112. digitalhub/entities/project/_base/builder.py +128 -0
  113. digitalhub/entities/project/{entity.py → _base/entity.py} +18 -60
  114. digitalhub/entities/project/{spec.py → _base/spec.py} +4 -4
  115. digitalhub/entities/project/_base/status.py +9 -0
  116. digitalhub/entities/project/builder.py +20 -51
  117. digitalhub/entities/project/crud.py +2 -2
  118. digitalhub/entities/run/_base/__init__.py +0 -0
  119. digitalhub/entities/run/_base/builder.py +73 -0
  120. digitalhub/entities/run/{entity.py → _base/entity.py} +12 -155
  121. digitalhub/entities/run/{spec.py → _base/spec.py} +8 -8
  122. digitalhub/entities/run/{status.py → _base/status.py} +4 -4
  123. digitalhub/entities/run/builder.py +21 -47
  124. digitalhub/entities/run/crud.py +3 -3
  125. digitalhub/entities/secret/_base/__init__.py +0 -0
  126. digitalhub/entities/secret/_base/builder.py +81 -0
  127. digitalhub/entities/secret/{entity.py → _base/entity.py} +7 -6
  128. digitalhub/entities/secret/{spec.py → _base/spec.py} +4 -4
  129. digitalhub/entities/secret/_base/status.py +9 -0
  130. digitalhub/entities/secret/builder.py +20 -62
  131. digitalhub/entities/secret/crud.py +12 -4
  132. digitalhub/entities/task/_base/__init__.py +0 -0
  133. digitalhub/entities/task/_base/builder.py +76 -0
  134. digitalhub/entities/task/{entity.py → _base/entity.py} +6 -6
  135. digitalhub/entities/task/{models.py → _base/models.py} +9 -0
  136. digitalhub/entities/task/{spec.py → _base/spec.py} +9 -7
  137. digitalhub/entities/task/_base/status.py +9 -0
  138. digitalhub/entities/task/builder.py +21 -44
  139. digitalhub/entities/task/crud.py +3 -3
  140. digitalhub/entities/utils/__init__.py +0 -0
  141. digitalhub/entities/{utils.py → utils/utils.py} +2 -2
  142. digitalhub/entities/workflow/_base/__init__.py +0 -0
  143. digitalhub/entities/workflow/_base/builder.py +78 -0
  144. digitalhub/entities/workflow/{entity.py → _base/entity.py} +8 -8
  145. digitalhub/entities/workflow/_base/spec.py +15 -0
  146. digitalhub/entities/workflow/_base/status.py +9 -0
  147. digitalhub/entities/workflow/builder.py +20 -60
  148. digitalhub/entities/workflow/crud.py +3 -3
  149. digitalhub/factory/__init__.py +0 -0
  150. digitalhub/factory/factory.py +204 -0
  151. digitalhub/factory/utils.py +90 -0
  152. digitalhub/readers/_base/__init__.py +0 -0
  153. digitalhub/readers/builder.py +1 -1
  154. digitalhub/readers/pandas/__init__.py +0 -0
  155. digitalhub/readers/{objects/pandas.py → pandas/readers.py} +1 -1
  156. digitalhub/readers/registry.py +1 -1
  157. digitalhub/runtimes/builder.py +24 -41
  158. digitalhub/runtimes/kind_registry.py +14 -0
  159. digitalhub/runtimes/utils.py +28 -0
  160. digitalhub/stores/_base/__init__.py +0 -0
  161. digitalhub/stores/builder.py +6 -6
  162. digitalhub/stores/local/__init__.py +0 -0
  163. digitalhub/stores/{objects/local.py → local/store.py} +1 -1
  164. digitalhub/stores/remote/__init__.py +0 -0
  165. digitalhub/stores/{objects/remote.py → remote/store.py} +1 -1
  166. digitalhub/stores/s3/__init__.py +0 -0
  167. digitalhub/stores/{objects/s3.py → s3/store.py} +1 -1
  168. digitalhub/stores/sql/__init__.py +0 -0
  169. digitalhub/stores/{objects/sql.py → sql/store.py} +1 -1
  170. digitalhub/utils/exceptions.py +6 -0
  171. digitalhub/utils/generic_utils.py +18 -42
  172. digitalhub/utils/s3_utils.py +58 -0
  173. {digitalhub-0.8.0b2.dist-info → digitalhub-0.8.0b4.dist-info}/METADATA +3 -2
  174. digitalhub-0.8.0b4.dist-info/RECORD +232 -0
  175. {digitalhub-0.8.0b2.dist-info → digitalhub-0.8.0b4.dist-info}/WHEEL +1 -1
  176. test/local/CRUD/test_artifacts.py +96 -0
  177. test/local/CRUD/test_dataitems.py +96 -0
  178. test/local/CRUD/test_models.py +95 -0
  179. test/test_crud_functions.py +1 -1
  180. test/test_crud_runs.py +1 -1
  181. test/test_crud_tasks.py +1 -1
  182. digitalhub/entities/_base/entity/unversioned.py +0 -87
  183. digitalhub/entities/_base/entity/versioned.py +0 -94
  184. digitalhub/entities/artifact/entity/artifact.py +0 -9
  185. digitalhub/entities/dataitem/entity/dataitem.py +0 -9
  186. digitalhub/entities/dataitem/entity/iceberg.py +0 -7
  187. digitalhub/entities/dataitem/spec.py +0 -61
  188. digitalhub/entities/dataitem/status.py +0 -38
  189. digitalhub/entities/function/spec.py +0 -81
  190. digitalhub/entities/function/status.py +0 -9
  191. digitalhub/entities/model/entity/huggingface.py +0 -9
  192. digitalhub/entities/model/entity/model.py +0 -9
  193. digitalhub/entities/model/entity/sklearn.py +0 -9
  194. digitalhub/entities/model/spec.py +0 -146
  195. digitalhub/entities/model/status.py +0 -33
  196. digitalhub/entities/project/status.py +0 -9
  197. digitalhub/entities/registries.py +0 -48
  198. digitalhub/entities/secret/status.py +0 -9
  199. digitalhub/entities/task/status.py +0 -9
  200. digitalhub/entities/workflow/spec.py +0 -15
  201. digitalhub/entities/workflow/status.py +0 -9
  202. digitalhub/registry/models.py +0 -87
  203. digitalhub/registry/registry.py +0 -74
  204. digitalhub/registry/utils.py +0 -150
  205. digitalhub-0.8.0b2.dist-info/RECORD +0 -161
  206. test/test_crud_artifacts.py +0 -96
  207. test/test_crud_dataitems.py +0 -96
  208. /digitalhub/client/{objects → _base}/__init__.py +0 -0
  209. /digitalhub/client/{objects/base.py → _base/client.py} +0 -0
  210. /digitalhub/{datastores/objects → client/dhcore}/__init__.py +0 -0
  211. /digitalhub/{entities/_base/spec → client/local}/__init__.py +0 -0
  212. /digitalhub/{entities/_base/status → datastores/_base}/__init__.py +0 -0
  213. /digitalhub/{entities/artifact/entity → datastores/local}/__init__.py +0 -0
  214. /digitalhub/{entities/dataitem/entity → datastores/remote}/__init__.py +0 -0
  215. /digitalhub/{entities/model/entity → datastores/s3}/__init__.py +0 -0
  216. /digitalhub/{readers/objects → datastores/sql}/__init__.py +0 -0
  217. /digitalhub/{registry → entities/_base/_base}/__init__.py +0 -0
  218. /digitalhub/{stores/objects → entities/_base/context}/__init__.py +0 -0
  219. /digitalhub/entities/dataitem/{models.py → table/models.py} +0 -0
  220. /digitalhub/entities/model/{models.py → mlflow/models.py} +0 -0
  221. /digitalhub/entities/{_base → utils}/api.py +0 -0
  222. /digitalhub/entities/{entity_types.py → utils/entity_types.py} +0 -0
  223. /digitalhub/entities/{_base → utils}/state.py +0 -0
  224. /digitalhub/readers/{objects/base.py → _base/readers.py} +0 -0
  225. /digitalhub/runtimes/{base.py → _base.py} +0 -0
  226. /digitalhub/stores/{objects/base.py → _base/store.py} +0 -0
  227. {digitalhub-0.8.0b2.dist-info → digitalhub-0.8.0b4.dist-info}/LICENSE.txt +0 -0
  228. {digitalhub-0.8.0b2.dist-info → digitalhub-0.8.0b4.dist-info}/top_level.txt +0 -0
  229. /test/{test_imports.py → local/imports/test_imports.py} +0 -0
@@ -0,0 +1,36 @@
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."""
@@ -0,0 +1,9 @@
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
@@ -0,0 +1,18 @@
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"
@@ -0,0 +1,32 @@
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
@@ -0,0 +1,44 @@
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."""
@@ -0,0 +1,9 @@
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
+ """
@@ -1,17 +1,8 @@
1
- from __future__ import annotations
2
-
3
1
  from urllib.parse import urlparse
4
2
 
5
3
  import mlflow
6
4
 
7
- from digitalhub.entities.model.entity._base import Model
8
- from digitalhub.entities.model.models import Dataset, Signature
9
-
10
-
11
- class ModelMlflow(Model):
12
- """
13
- Mlflow model.
14
- """
5
+ from digitalhub.entities.model.mlflow.models import Dataset, Signature
15
6
 
16
7
 
17
8
  def from_mlflow_run(run_id: str) -> dict:
File without changes
@@ -0,0 +1,18 @@
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"
@@ -0,0 +1,32 @@
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
@@ -0,0 +1,15 @@
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
+ """
@@ -0,0 +1,9 @@
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
@@ -0,0 +1,18 @@
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"
@@ -0,0 +1,32 @@
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
@@ -0,0 +1,15 @@
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
+ """
@@ -0,0 +1,9 @@
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
@@ -0,0 +1,128 @@
1
+ from __future__ import annotations
2
+
3
+ from digitalhub.entities._builders.entity 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
+ }
@@ -12,11 +12,7 @@ from digitalhub.entities._base.crud import (
12
12
  read_entity_api_ctx,
13
13
  update_entity_api_base,
14
14
  )
15
- from digitalhub.entities._base.entity.base import Entity
16
- from digitalhub.entities._builders.metadata import build_metadata
17
- from digitalhub.entities._builders.name import build_name
18
- from digitalhub.entities._builders.spec import build_spec
19
- from digitalhub.entities._builders.status import build_status
15
+ from digitalhub.entities._base.entity.entity import Entity
20
16
  from digitalhub.entities.artifact.crud import (
21
17
  artifact_from_dict,
22
18
  delete_artifact,
@@ -39,7 +35,6 @@ from digitalhub.entities.dataitem.crud import (
39
35
  new_dataitem,
40
36
  update_dataitem,
41
37
  )
42
- from digitalhub.entities.entity_types import EntityTypes
43
38
  from digitalhub.entities.function.crud import (
44
39
  delete_function,
45
40
  function_from_dict,
@@ -71,6 +66,7 @@ from digitalhub.entities.secret.crud import (
71
66
  new_secret,
72
67
  update_secret,
73
68
  )
69
+ from digitalhub.entities.utils.entity_types import EntityTypes
74
70
  from digitalhub.entities.workflow.crud import (
75
71
  delete_workflow,
76
72
  get_workflow,
@@ -87,16 +83,16 @@ from digitalhub.utils.io_utils import write_yaml
87
83
  from digitalhub.utils.uri_utils import map_uri_scheme
88
84
 
89
85
  if typing.TYPE_CHECKING:
90
- from digitalhub.entities._base.metadata import Metadata
91
- from digitalhub.entities.artifact.entity._base import Artifact
92
- from digitalhub.entities.dataitem.entity._base import Dataitem
93
- from digitalhub.entities.function.entity import Function
94
- from digitalhub.entities.model.entity._base import Model
95
- from digitalhub.entities.project.spec import ProjectSpec
96
- from digitalhub.entities.project.status import ProjectStatus
97
- from digitalhub.entities.run.entity import Run
98
- from digitalhub.entities.secret.entity import Secret
99
- from digitalhub.entities.workflow.entity import Workflow
86
+ from digitalhub.entities._base.entity.metadata import Metadata
87
+ from digitalhub.entities.artifact._base.entity import Artifact
88
+ from digitalhub.entities.dataitem._base.entity import Dataitem
89
+ from digitalhub.entities.function._base.entity import Function
90
+ from digitalhub.entities.model._base.entity import Model
91
+ from digitalhub.entities.project._base.spec import ProjectSpec
92
+ from digitalhub.entities.project._base.status import ProjectStatus
93
+ from digitalhub.entities.run._base.entity import Run
94
+ from digitalhub.entities.secret._base.entity import Secret
95
+ from digitalhub.entities.workflow._base.entity import Workflow
100
96
 
101
97
 
102
98
  ARTIFACTS = EntityTypes.ARTIFACT.value + "s"
@@ -308,44 +304,6 @@ class Project(Entity):
308
304
  except EntityAlreadyExistsError:
309
305
  pass
310
306
 
311
- ##############################
312
- # Static interface methods
313
- ##############################
314
-
315
- @staticmethod
316
- def _parse_dict(obj: dict, validate: bool = True) -> dict:
317
- """
318
- Get dictionary and parse it to a valid entity dictionary.
319
-
320
- Parameters
321
- ----------
322
- entity : str
323
- Entity type.
324
- obj : dict
325
- Dictionary to parse.
326
-
327
- Returns
328
- -------
329
- dict
330
- A dictionary containing the attributes of the entity instance.
331
- """
332
- name = build_name(obj.get("name"))
333
- kind = obj.get("kind")
334
- metadata = build_metadata(kind, **obj.get("metadata", {}))
335
- spec = build_spec(kind, validate=validate, **obj.get("spec", {}))
336
- status = build_status(kind, **obj.get("status", {}))
337
- user = obj.get("user")
338
- local = obj.get("local", False)
339
- return {
340
- "name": name,
341
- "kind": kind,
342
- "metadata": metadata,
343
- "spec": spec,
344
- "status": status,
345
- "user": user,
346
- "local": local,
347
- }
348
-
349
307
  ##############################
350
308
  # Artifacts
351
309
  ##############################
@@ -371,7 +329,7 @@ class Project(Entity):
371
329
  kind : str
372
330
  Kind the object.
373
331
  uuid : str
374
- ID of the object (UUID4, e.g. 40f25c4b-d26b-4221-b048-9527aff291e2).
332
+ ID of the object.
375
333
  description : str
376
334
  Description of the object (human readable).
377
335
  labels : list[str]
@@ -662,7 +620,7 @@ class Project(Entity):
662
620
  kind : str
663
621
  Kind the object.
664
622
  uuid : str
665
- ID of the object (UUID4, e.g. 40f25c4b-d26b-4221-b048-9527aff291e2).
623
+ ID of the object.
666
624
  description : str
667
625
  Description of the object (human readable).
668
626
  labels : list[str]
@@ -966,7 +924,7 @@ class Project(Entity):
966
924
  kind : str
967
925
  Kind the object.
968
926
  uuid : str
969
- ID of the object (UUID4, e.g. 40f25c4b-d26b-4221-b048-9527aff291e2).
927
+ ID of the object.
970
928
  description : str
971
929
  Description of the object (human readable).
972
930
  labels : list[str]
@@ -1257,7 +1215,7 @@ class Project(Entity):
1257
1215
  kind : str
1258
1216
  Kind the object.
1259
1217
  uuid : str
1260
- ID of the object (UUID4, e.g. 40f25c4b-d26b-4221-b048-9527aff291e2).
1218
+ ID of the object.
1261
1219
  description : str
1262
1220
  Description of the object (human readable).
1263
1221
  labels : list[str]
@@ -1503,7 +1461,7 @@ class Project(Entity):
1503
1461
  kind : str
1504
1462
  Kind the object.
1505
1463
  uuid : str
1506
- ID of the object (UUID4, e.g. 40f25c4b-d26b-4221-b048-9527aff291e2).
1464
+ ID of the object.
1507
1465
  description : str
1508
1466
  Description of the object (human readable).
1509
1467
  labels : list[str]
@@ -1747,7 +1705,7 @@ class Project(Entity):
1747
1705
  name : str
1748
1706
  Object name.
1749
1707
  uuid : str
1750
- ID of the object (UUID4, e.g. 40f25c4b-d26b-4221-b048-9527aff291e2).
1708
+ ID of the object.
1751
1709
  description : str
1752
1710
  Description of the object (human readable).
1753
1711
  labels : list[str]
@@ -1,11 +1,11 @@
1
1
  from __future__ import annotations
2
2
 
3
- from digitalhub.entities._base.spec.base import Spec, SpecParams
3
+ from digitalhub.entities._base.entity.spec import Spec, SpecValidator
4
4
 
5
5
 
6
6
  class ProjectSpec(Spec):
7
7
  """
8
- Project specification.
8
+ ProjectSpec specifications.
9
9
  """
10
10
 
11
11
  def __init__(
@@ -26,9 +26,9 @@ class ProjectSpec(Spec):
26
26
  self.models = models if models is not None else []
27
27
 
28
28
 
29
- class ProjectParams(SpecParams):
29
+ class ProjectValidator(SpecValidator):
30
30
  """
31
- Parameters model for project.
31
+ ProjectValidator validator.
32
32
  """
33
33
 
34
34
  context: str = None
@@ -0,0 +1,9 @@
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
+ """