digitalhub 0.8.0b1__py3-none-any.whl → 0.8.0b3__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 (197) hide show
  1. digitalhub/__init__.py +2 -2
  2. digitalhub/client/builder.py +3 -3
  3. digitalhub/client/{objects/dhcore.py → dhcore/client.py} +3 -48
  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/context/__init__.py +0 -0
  18. digitalhub/entities/_base/{entity/context.py → context/entity.py} +4 -4
  19. digitalhub/entities/_base/crud.py +3 -3
  20. digitalhub/entities/_base/entity/{base.py → entity.py} +6 -6
  21. digitalhub/entities/_base/{metadata.py → entity/metadata.py} +2 -2
  22. digitalhub/entities/_base/{spec/base.py → entity/spec.py} +11 -11
  23. digitalhub/entities/_base/{status/base.py → entity/status.py} +2 -2
  24. digitalhub/entities/_base/executable/__init__.py +0 -0
  25. digitalhub/entities/_base/{entity/executable.py → executable/entity.py} +55 -31
  26. digitalhub/entities/_base/material/__init__.py +0 -0
  27. digitalhub/entities/_base/{entity/material.py → material/entity.py} +4 -4
  28. digitalhub/entities/_base/{spec/material.py → material/spec.py} +3 -3
  29. digitalhub/entities/_base/{status/material.py → material/status.py} +1 -1
  30. digitalhub/entities/_base/unversioned/__init__.py +0 -0
  31. digitalhub/entities/_base/{entity/unversioned.py → unversioned/entity.py} +4 -4
  32. digitalhub/entities/_base/versioned/__init__.py +0 -0
  33. digitalhub/entities/_base/{entity/versioned.py → versioned/entity.py} +4 -4
  34. digitalhub/entities/_builders/entity.py +148 -0
  35. digitalhub/entities/_builders/factory.py +44 -0
  36. digitalhub/entities/_builders/metadata.py +2 -11
  37. digitalhub/entities/_builders/spec.py +1 -1
  38. digitalhub/entities/_builders/status.py +2 -2
  39. digitalhub/entities/artifact/_base/__init__.py +0 -0
  40. digitalhub/entities/artifact/{entity/_base.py → _base/entity.py} +5 -5
  41. digitalhub/entities/artifact/_base/spec.py +15 -0
  42. digitalhub/entities/artifact/_base/status.py +9 -0
  43. digitalhub/entities/artifact/artifact/__init__.py +0 -0
  44. digitalhub/entities/artifact/artifact/entity.py +32 -0
  45. digitalhub/entities/artifact/{spec.py → artifact/spec.py} +4 -16
  46. digitalhub/entities/artifact/{status.py → artifact/status.py} +1 -1
  47. digitalhub/entities/artifact/builder.py +2 -2
  48. digitalhub/entities/artifact/crud.py +3 -3
  49. digitalhub/entities/dataitem/_base/__init__.py +0 -0
  50. digitalhub/entities/dataitem/{entity/_base.py → _base/entity.py} +5 -5
  51. digitalhub/entities/dataitem/_base/spec.py +15 -0
  52. digitalhub/entities/dataitem/_base/status.py +20 -0
  53. digitalhub/entities/dataitem/builder.py +4 -4
  54. digitalhub/entities/dataitem/crud.py +7 -4
  55. digitalhub/entities/dataitem/dataitem/__init__.py +0 -0
  56. digitalhub/entities/dataitem/dataitem/entity.py +32 -0
  57. digitalhub/entities/dataitem/dataitem/spec.py +15 -0
  58. digitalhub/entities/dataitem/dataitem/status.py +9 -0
  59. digitalhub/entities/dataitem/iceberg/__init__.py +0 -0
  60. digitalhub/entities/dataitem/iceberg/entity.py +32 -0
  61. digitalhub/entities/dataitem/iceberg/spec.py +15 -0
  62. digitalhub/entities/dataitem/iceberg/status.py +9 -0
  63. digitalhub/entities/dataitem/table/__init__.py +0 -0
  64. digitalhub/entities/dataitem/{entity/table.py → table/entity.py} +24 -3
  65. digitalhub/entities/dataitem/table/spec.py +25 -0
  66. digitalhub/entities/dataitem/table/status.py +9 -0
  67. digitalhub/entities/function/_base/__init__.py +0 -0
  68. digitalhub/entities/function/{entity.py → _base/entity.py} +6 -6
  69. digitalhub/entities/function/{models.py → _base/models.py} +1 -1
  70. digitalhub/entities/function/_base/spec.py +15 -0
  71. digitalhub/entities/function/_base/status.py +9 -0
  72. digitalhub/entities/function/builder.py +1 -1
  73. digitalhub/entities/function/crud.py +2 -2
  74. digitalhub/entities/model/_base/__init__.py +0 -0
  75. digitalhub/entities/model/{entity/_base.py → _base/entity.py} +5 -5
  76. digitalhub/entities/model/_base/spec.py +49 -0
  77. digitalhub/entities/model/_base/status.py +9 -0
  78. digitalhub/entities/model/builder.py +5 -5
  79. digitalhub/entities/model/crud.py +3 -3
  80. digitalhub/entities/model/huggingface/__init__.py +0 -0
  81. digitalhub/entities/model/huggingface/entity.py +32 -0
  82. digitalhub/entities/model/huggingface/spec.py +36 -0
  83. digitalhub/entities/model/huggingface/status.py +9 -0
  84. digitalhub/entities/model/mlflow/__init__.py +0 -0
  85. digitalhub/entities/model/mlflow/entity.py +32 -0
  86. digitalhub/entities/model/mlflow/spec.py +44 -0
  87. digitalhub/entities/model/mlflow/status.py +9 -0
  88. digitalhub/entities/model/{entity/mlflow.py → mlflow/utils.py} +1 -10
  89. digitalhub/entities/model/model/__init__.py +0 -0
  90. digitalhub/entities/model/model/entity.py +32 -0
  91. digitalhub/entities/model/model/spec.py +15 -0
  92. digitalhub/entities/model/model/status.py +9 -0
  93. digitalhub/entities/model/sklearn/__init__.py +0 -0
  94. digitalhub/entities/model/sklearn/entity.py +32 -0
  95. digitalhub/entities/model/sklearn/spec.py +15 -0
  96. digitalhub/entities/model/sklearn/status.py +9 -0
  97. digitalhub/entities/project/builder.py +1 -1
  98. digitalhub/entities/project/crud.py +2 -2
  99. digitalhub/entities/project/project/__init__.py +0 -0
  100. digitalhub/entities/project/{entity.py → project/entity.py} +12 -12
  101. digitalhub/entities/project/{spec.py → project/spec.py} +4 -4
  102. digitalhub/entities/project/project/status.py +9 -0
  103. digitalhub/entities/registries.py +6 -6
  104. digitalhub/entities/run/_base/__init__.py +0 -0
  105. digitalhub/entities/run/{entity.py → _base/entity.py} +7 -7
  106. digitalhub/entities/run/{spec.py → _base/spec.py} +8 -8
  107. digitalhub/entities/run/{status.py → _base/status.py} +9 -9
  108. digitalhub/entities/run/builder.py +1 -1
  109. digitalhub/entities/run/crud.py +2 -2
  110. digitalhub/entities/secret/builder.py +1 -1
  111. digitalhub/entities/secret/crud.py +11 -3
  112. digitalhub/entities/secret/secret/__init__.py +0 -0
  113. digitalhub/entities/secret/{entity.py → secret/entity.py} +7 -6
  114. digitalhub/entities/secret/{spec.py → secret/spec.py} +4 -4
  115. digitalhub/entities/secret/secret/status.py +9 -0
  116. digitalhub/entities/task/_base/__init__.py +0 -0
  117. digitalhub/entities/task/{entity.py → _base/entity.py} +6 -6
  118. digitalhub/entities/task/{models.py → _base/models.py} +9 -0
  119. digitalhub/entities/task/{spec.py → _base/spec.py} +9 -7
  120. digitalhub/entities/task/_base/status.py +9 -0
  121. digitalhub/entities/task/builder.py +1 -1
  122. digitalhub/entities/task/crud.py +2 -2
  123. digitalhub/entities/utils/__init__.py +0 -0
  124. digitalhub/entities/{utils.py → utils/utils.py} +2 -2
  125. digitalhub/entities/workflow/_base/__init__.py +0 -0
  126. digitalhub/entities/workflow/{entity.py → _base/entity.py} +6 -6
  127. digitalhub/entities/workflow/_base/spec.py +15 -0
  128. digitalhub/entities/workflow/_base/status.py +9 -0
  129. digitalhub/entities/workflow/builder.py +1 -1
  130. digitalhub/entities/workflow/crud.py +2 -2
  131. digitalhub/readers/_base/__init__.py +0 -0
  132. digitalhub/readers/builder.py +1 -1
  133. digitalhub/readers/pandas/__init__.py +0 -0
  134. digitalhub/readers/{objects/pandas.py → pandas/readers.py} +1 -1
  135. digitalhub/readers/registry.py +1 -1
  136. digitalhub/registry/utils.py +5 -4
  137. digitalhub/stores/_base/__init__.py +0 -0
  138. digitalhub/stores/builder.py +6 -6
  139. digitalhub/stores/local/__init__.py +0 -0
  140. digitalhub/stores/{objects/local.py → local/store.py} +1 -1
  141. digitalhub/stores/remote/__init__.py +0 -0
  142. digitalhub/stores/{objects/remote.py → remote/store.py} +1 -1
  143. digitalhub/stores/s3/__init__.py +0 -0
  144. digitalhub/stores/{objects/s3.py → s3/store.py} +1 -1
  145. digitalhub/stores/sql/__init__.py +0 -0
  146. digitalhub/stores/{objects/sql.py → sql/store.py} +1 -1
  147. digitalhub/utils/generic_utils.py +18 -42
  148. digitalhub/utils/s3_utils.py +58 -0
  149. {digitalhub-0.8.0b1.dist-info → digitalhub-0.8.0b3.dist-info}/METADATA +3 -2
  150. digitalhub-0.8.0b3.dist-info/RECORD +214 -0
  151. {digitalhub-0.8.0b1.dist-info → digitalhub-0.8.0b3.dist-info}/WHEEL +1 -1
  152. test/local/CRUD/test_artifacts.py +96 -0
  153. test/local/CRUD/test_dataitems.py +96 -0
  154. test/local/CRUD/test_models.py +95 -0
  155. test/test_crud_functions.py +1 -1
  156. test/test_crud_runs.py +1 -1
  157. test/test_crud_tasks.py +1 -1
  158. digitalhub/entities/artifact/entity/artifact.py +0 -9
  159. digitalhub/entities/dataitem/entity/dataitem.py +0 -9
  160. digitalhub/entities/dataitem/entity/iceberg.py +0 -7
  161. digitalhub/entities/dataitem/spec.py +0 -61
  162. digitalhub/entities/dataitem/status.py +0 -38
  163. digitalhub/entities/function/spec.py +0 -81
  164. digitalhub/entities/function/status.py +0 -9
  165. digitalhub/entities/model/entity/huggingface.py +0 -9
  166. digitalhub/entities/model/entity/model.py +0 -9
  167. digitalhub/entities/model/entity/sklearn.py +0 -9
  168. digitalhub/entities/model/spec.py +0 -146
  169. digitalhub/entities/model/status.py +0 -33
  170. digitalhub/entities/project/status.py +0 -9
  171. digitalhub/entities/secret/status.py +0 -9
  172. digitalhub/entities/task/status.py +0 -9
  173. digitalhub/entities/workflow/spec.py +0 -15
  174. digitalhub/entities/workflow/status.py +0 -9
  175. digitalhub-0.8.0b1.dist-info/RECORD +0 -161
  176. test/test_crud_artifacts.py +0 -96
  177. test/test_crud_dataitems.py +0 -96
  178. /digitalhub/client/{objects → _base}/__init__.py +0 -0
  179. /digitalhub/client/{objects/base.py → _base/client.py} +0 -0
  180. /digitalhub/{datastores/objects → client/dhcore}/__init__.py +0 -0
  181. /digitalhub/{entities/_base/spec → client/local}/__init__.py +0 -0
  182. /digitalhub/{entities/_base/status → datastores/_base}/__init__.py +0 -0
  183. /digitalhub/{entities/artifact/entity → datastores/local}/__init__.py +0 -0
  184. /digitalhub/{entities/dataitem/entity → datastores/remote}/__init__.py +0 -0
  185. /digitalhub/{entities/model/entity → datastores/s3}/__init__.py +0 -0
  186. /digitalhub/{readers/objects → datastores/sql}/__init__.py +0 -0
  187. /digitalhub/{stores/objects → entities/_base/_base}/__init__.py +0 -0
  188. /digitalhub/entities/dataitem/{models.py → table/models.py} +0 -0
  189. /digitalhub/entities/model/{models.py → mlflow/models.py} +0 -0
  190. /digitalhub/entities/{_base → utils}/api.py +0 -0
  191. /digitalhub/entities/{entity_types.py → utils/entity_types.py} +0 -0
  192. /digitalhub/entities/{_base → utils}/state.py +0 -0
  193. /digitalhub/readers/{objects/base.py → _base/readers.py} +0 -0
  194. /digitalhub/stores/{objects/base.py → _base/store.py} +0 -0
  195. {digitalhub-0.8.0b1.dist-info → digitalhub-0.8.0b3.dist-info}/LICENSE.txt +0 -0
  196. {digitalhub-0.8.0b1.dist-info → digitalhub-0.8.0b3.dist-info}/top_level.txt +0 -0
  197. /test/{test_imports.py → local/imports/test_imports.py} +0 -0
@@ -0,0 +1,9 @@
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
+ """
@@ -5,7 +5,7 @@ from digitalhub.entities._builders.name import build_name
5
5
  from digitalhub.entities._builders.spec import build_spec
6
6
  from digitalhub.entities._builders.status import build_status
7
7
  from digitalhub.entities._builders.uuid import build_uuid
8
- from digitalhub.entities.workflow.entity import Workflow
8
+ from digitalhub.entities.workflow._base.entity import Workflow
9
9
 
10
10
 
11
11
  def workflow_from_parameters(
@@ -9,13 +9,13 @@ from digitalhub.entities._base.crud import (
9
9
  read_entity_api_ctx,
10
10
  read_entity_api_ctx_versions,
11
11
  )
12
- from digitalhub.entities.entity_types import EntityTypes
12
+ from digitalhub.entities.utils.entity_types import EntityTypes
13
13
  from digitalhub.entities.workflow.builder import workflow_from_dict, workflow_from_parameters
14
14
  from digitalhub.utils.exceptions import EntityAlreadyExistsError
15
15
  from digitalhub.utils.io_utils import read_yaml
16
16
 
17
17
  if typing.TYPE_CHECKING:
18
- from digitalhub.entities.workflow.entity import Workflow
18
+ from digitalhub.entities.workflow._base.entity import Workflow
19
19
 
20
20
 
21
21
  ENTITY_TYPE = EntityTypes.WORKFLOW.value
File without changes
@@ -6,7 +6,7 @@ from typing import Any
6
6
  from digitalhub.readers.registry import REGISTRY_DATAFRAME, REGISTRY_FRAMEWORK
7
7
 
8
8
  if typing.TYPE_CHECKING:
9
- from digitalhub.readers.objects.base import DataframeReader
9
+ from digitalhub.readers._base.readers import DataframeReader
10
10
 
11
11
 
12
12
  def get_reader_by_engine(engine: str) -> DataframeReader:
File without changes
@@ -7,7 +7,7 @@ import numpy as np
7
7
  import pandas as pd
8
8
  from pandas.errors import ParserError
9
9
 
10
- from digitalhub.readers.objects.base import DataframeReader
10
+ from digitalhub.readers._base.readers import DataframeReader
11
11
  from digitalhub.utils.data_utils import build_data_preview, get_data_preview
12
12
 
13
13
 
@@ -5,7 +5,7 @@ REGISTRY_DATAFRAME = {}
5
5
  DATAFRAME_TYPES = []
6
6
 
7
7
  try:
8
- from digitalhub.readers.objects.pandas import DataframeReaderPandas
8
+ from digitalhub.readers.pandas.readers import DataframeReaderPandas
9
9
 
10
10
  REGISTRY_FRAMEWORK["pandas"] = DataframeReaderPandas
11
11
  REGISTRY_DATAFRAME["pandas.core.frame.DataFrame"] = DataframeReaderPandas
@@ -94,7 +94,7 @@ def register_entities() -> None:
94
94
  """
95
95
  # Try ot import registry from entities.registries module
96
96
  try:
97
- import_module(f"digitalhub.entities.registries")
97
+ import_module("digitalhub.entities.registries")
98
98
  except Exception:
99
99
  pass
100
100
 
@@ -102,6 +102,7 @@ def register_entities() -> None:
102
102
  def create_info(
103
103
  root: str,
104
104
  entity_type: str,
105
+ kind: str,
105
106
  prefix: str,
106
107
  suffix: str | None = "",
107
108
  runtime_info: dict | None = None,
@@ -130,12 +131,12 @@ def create_info(
130
131
  dict_ = {
131
132
  "entity_type": entity_type,
132
133
  "spec": {
133
- "module": f"{root}.{entity_type}.spec",
134
+ "module": f"{root}.{entity_type}.{kind}.spec",
134
135
  "class_name": f"{prefix}Spec{suffix}",
135
- "parameters_validator": f"{prefix}Params{suffix}",
136
+ "parameters_validator": f"{prefix}Validator{suffix}",
136
137
  },
137
138
  "status": {
138
- "module": f"{root}.{entity_type}.status",
139
+ "module": f"{root}.{entity_type}.{kind}.status",
139
140
  "class_name": f"{prefix}Status{suffix}",
140
141
  },
141
142
  "metadata": {
File without changes
@@ -5,16 +5,16 @@ import typing
5
5
 
6
6
  from pydantic import ValidationError
7
7
 
8
- from digitalhub.stores.objects.base import StoreParameters
9
- from digitalhub.stores.objects.local import LocalStore, LocalStoreConfig
10
- from digitalhub.stores.objects.remote import RemoteStore, RemoteStoreConfig
11
- from digitalhub.stores.objects.s3 import S3Store, S3StoreConfig
12
- from digitalhub.stores.objects.sql import SqlStore, SQLStoreConfig
8
+ from digitalhub.stores._base.store import StoreParameters
9
+ from digitalhub.stores.local.store import LocalStore, LocalStoreConfig
10
+ from digitalhub.stores.remote.store import RemoteStore, RemoteStoreConfig
11
+ from digitalhub.stores.s3.store import S3Store, S3StoreConfig
12
+ from digitalhub.stores.sql.store import SqlStore, SQLStoreConfig
13
13
  from digitalhub.utils.exceptions import StoreError
14
14
  from digitalhub.utils.uri_utils import map_uri_scheme
15
15
 
16
16
  if typing.TYPE_CHECKING:
17
- from digitalhub.stores.objects.base import Store
17
+ from digitalhub.stores._base.store import Store
18
18
 
19
19
 
20
20
  REGISTRY_STORES = {
File without changes
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import shutil
4
4
  from pathlib import Path
5
5
 
6
- from digitalhub.stores.objects.base import Store, StoreConfig
6
+ from digitalhub.stores._base.store import Store, StoreConfig
7
7
  from digitalhub.utils.exceptions import StoreError
8
8
  from digitalhub.utils.file_utils import get_file_info_from_local
9
9
 
File without changes
@@ -4,7 +4,7 @@ from pathlib import Path
4
4
 
5
5
  import requests
6
6
 
7
- from digitalhub.stores.objects.base import Store, StoreConfig
7
+ from digitalhub.stores._base.store import Store, StoreConfig
8
8
  from digitalhub.utils.exceptions import StoreError
9
9
 
10
10
 
File without changes
@@ -9,7 +9,7 @@ import boto3
9
9
  import botocore.client # pylint: disable=unused-import
10
10
  from botocore.exceptions import ClientError
11
11
 
12
- from digitalhub.stores.objects.base import Store, StoreConfig
12
+ from digitalhub.stores._base.store import Store, StoreConfig
13
13
  from digitalhub.utils.exceptions import StoreError
14
14
  from digitalhub.utils.file_utils import get_file_info_from_s3, get_file_mime_type
15
15
 
File without changes
@@ -9,7 +9,7 @@ from sqlalchemy.engine import Engine
9
9
  from sqlalchemy.engine.row import LegacyRow
10
10
  from sqlalchemy.exc import SQLAlchemyError
11
11
 
12
- from digitalhub.stores.objects.base import Store, StoreConfig
12
+ from digitalhub.stores._base.store import Store, StoreConfig
13
13
  from digitalhub.utils.exceptions import StoreError
14
14
 
15
15
 
@@ -2,16 +2,14 @@ from __future__ import annotations
2
2
 
3
3
  import base64
4
4
  import json
5
- import os
6
5
  from datetime import datetime
7
6
  from pathlib import Path
8
7
  from typing import Any
9
- from urllib.parse import urlparse
10
8
  from zipfile import ZipFile
11
9
 
12
10
  import numpy as np
13
- from boto3 import client as boto3_client
14
11
  from requests import get as requests_get
12
+ from slugify import slugify
15
13
 
16
14
  from digitalhub.utils.io_utils import read_text
17
15
 
@@ -120,45 +118,6 @@ def extract_archive(path: Path, filename: Path) -> None:
120
118
  zip_file.extractall(path)
121
119
 
122
120
 
123
- def get_s3_source(bucket: str, key: str, filename: Path) -> None:
124
- """
125
- Get S3 source.
126
-
127
- Parameters
128
- ----------
129
- bucket : str
130
- S3 bucket name.
131
- key : str
132
- S3 object key.
133
- filename : Path
134
- Path where to save the function source.
135
-
136
- Returns
137
- -------
138
- None
139
- """
140
- s3 = boto3_client("s3", endpoint_url=os.getenv("S3_ENDPOINT_URL"))
141
- s3.download_file(bucket, key, filename)
142
-
143
-
144
- def get_bucket_and_key(path: str) -> tuple[str, str]:
145
- """
146
- Get bucket and key from path.
147
-
148
- Parameters
149
- ----------
150
- path : str
151
- The source path to get the key from.
152
-
153
- Returns
154
- -------
155
- tuple[str, str]
156
- The bucket and key.
157
- """
158
- parsed = urlparse(path)
159
- return parsed.netloc, parsed.path
160
-
161
-
162
121
  class MyEncoder(json.JSONEncoder):
163
122
  """
164
123
  Custom JSON encoder to handle numpy types.
@@ -205,3 +164,20 @@ def dict_to_json(struct: dict) -> str:
205
164
  The json string.
206
165
  """
207
166
  return json.dumps(struct, cls=MyEncoder)
167
+
168
+
169
+ def sanitize_filename(filename: str) -> str:
170
+ """
171
+ Sanitize a filename.
172
+
173
+ Parameters
174
+ ----------
175
+ filename : str
176
+ The filename to sanitize.
177
+
178
+ Returns
179
+ -------
180
+ str
181
+ The sanitized filename.
182
+ """
183
+ return slugify(filename, max_length=255)
@@ -0,0 +1,58 @@
1
+ from __future__ import annotations
2
+
3
+ import os
4
+ from pathlib import Path
5
+ from urllib.parse import urlparse
6
+
7
+ from boto3 import client as boto3_client
8
+
9
+
10
+ def get_bucket_and_key(path: str) -> tuple[str, str]:
11
+ """
12
+ Get bucket and key from path.
13
+
14
+ Parameters
15
+ ----------
16
+ path : str
17
+ The source path to get the key from.
18
+
19
+ Returns
20
+ -------
21
+ tuple[str, str]
22
+ The bucket and key.
23
+ """
24
+ parsed = urlparse(path)
25
+ return parsed.netloc, parsed.path
26
+
27
+
28
+ def get_s3_source(bucket: str, key: str, filename: Path) -> None:
29
+ """
30
+ Get S3 source.
31
+
32
+ Parameters
33
+ ----------
34
+ bucket : str
35
+ S3 bucket name.
36
+ key : str
37
+ S3 object key.
38
+ filename : Path
39
+ Path where to save the function source.
40
+
41
+ Returns
42
+ -------
43
+ None
44
+ """
45
+ s3 = boto3_client("s3", endpoint_url=os.getenv("S3_ENDPOINT_URL"))
46
+ s3.download_file(bucket, key, filename)
47
+
48
+
49
+ def get_s3_bucket() -> str | None:
50
+ """
51
+ Function to get S3 bucket name.
52
+
53
+ Returns
54
+ -------
55
+ str
56
+ The S3 bucket name.
57
+ """
58
+ return os.getenv("S3_BUCKET_NAME", "datalake")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: digitalhub
3
- Version: 0.8.0b1
3
+ Version: 0.8.0b3
4
4
  Summary: Python SDK for Digitalhub
5
5
  Author-email: Fondazione Bruno Kessler <dslab@fbk.eu>, Matteo Martini <mmartini@fbk.eu>
6
6
  License: Apache License
@@ -239,6 +239,7 @@ Requires-Dist: PyYAML
239
239
  Requires-Dist: python-dotenv
240
240
  Requires-Dist: GitPython>=3
241
241
  Requires-Dist: psycopg2-binary
242
+ Requires-Dist: python-slugify
242
243
  Provides-Extra: dev
243
244
  Requires-Dist: black; extra == "dev"
244
245
  Requires-Dist: pytest; extra == "dev"
@@ -262,4 +263,4 @@ Requires-Dist: pandas<2.2,>=1.2; extra == "pandas"
262
263
  The Digitalhub SDK library is used to manage entities and executions in Digitalhub from Python.
263
264
  It comes with a suite of tools to help you manage your projects and executions. It exposes CRUD methods to create, read, update and delete entities, and objects methods to excute functions or workflows, collect or store execution results and data.
264
265
 
265
- A more detailed description of the library can be found in the [official documentation](https://scc-digitalhub.github.io/docs/) of Digitalhub.
266
+ A more detailed description of the library can be found in the [official documentation](https://scc-digitalhub.github.io/sdk-docs/).
@@ -0,0 +1,214 @@
1
+ digitalhub/__init__.py,sha256=7xCRKKsj3tm78RnVhCzVJBndGYWpoJmBI0OGRMOyrfo,1987
2
+ digitalhub/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ digitalhub/client/builder.py,sha256=gT9rdmdUJ86DCgM-uFSOzjGj71z25rbkjoUpRkBAnZI,2276
4
+ digitalhub/client/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ digitalhub/client/_base/client.py,sha256=HDv9Vr9DZpoaZVsAT5SSBD9j1oHoVuxA4ILGDl0mBz4,1299
6
+ digitalhub/client/dhcore/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ digitalhub/client/dhcore/client.py,sha256=qebgURKtAg0ofCEiHSfot069X2JK9iH7TfnI58nBjmM,18071
8
+ digitalhub/client/dhcore/env.py,sha256=F5A5dPTliwd4UUbpw7hQQ3hoVjZYjcVF8MbniTuTFHE,563
9
+ digitalhub/client/dhcore/models.py,sha256=KiTg5xR8EzI7Xa1pmYmzixabLdnqlnn5kn-IILZDGIw,900
10
+ digitalhub/client/dhcore/utils.py,sha256=rRRS-SA_EfPaFtrceTnM2ZFkoBNZdR5Nv09wyg9dc5g,2994
11
+ digitalhub/client/local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ digitalhub/client/local/client.py,sha256=VgV-kazrEJt-JGnaTGhxs29JntunQUIrjYGZ-CzkFaQ,16779
13
+ digitalhub/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ digitalhub/context/builder.py,sha256=dAL8JBog90skCLxmjTMRj32BY-vANDxFrCh_wdgTyMQ,3667
15
+ digitalhub/context/context.py,sha256=tiqmstDTlx_ivn5ATzZErS5kV_h7Dh97LR1TEdKD-YQ,3340
16
+ digitalhub/datastores/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ digitalhub/datastores/builder.py,sha256=8uUqW_0fN9YBnbD8776apc8gRersZpLB-NLjM4tzVlY,3130
18
+ digitalhub/datastores/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ digitalhub/datastores/_base/datastore.py,sha256=FR6dIRBw0qlgR7r8LS_y5viv-Mo_Tgvv4UHHrbv91gc,1998
20
+ digitalhub/datastores/local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ digitalhub/datastores/local/datastore.py,sha256=ZcjMk6iYcMWLpiaJGFOFSwd2juZliW5rdLi11eShIvQ,1161
22
+ digitalhub/datastores/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ digitalhub/datastores/remote/datastore.py,sha256=s8OILWaTVGqUDftm6G2gt3YOURw8tdgXPsAFGiHQPNg,648
24
+ digitalhub/datastores/s3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ digitalhub/datastores/s3/datastore.py,sha256=QK860dgHTXjYtwamfISexmpv9wCDbXsLlHeH9mn6jAA,1021
26
+ digitalhub/datastores/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ digitalhub/datastores/sql/datastore.py,sha256=XxceWQJs_qCn-I-e7c9k2nnZa3u58yENO_MQtzFjYos,1632
28
+ digitalhub/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ digitalhub/entities/registries.py,sha256=gm-_0ISMC6zg_9HLaGCXEq3WkWz9SDBTvCN6WYDBZVU,1418
30
+ digitalhub/entities/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ digitalhub/entities/_base/crud.py,sha256=GhvagiNE9PIHizEZwpku-IR93Tr4buR60xvOM-X-pSI,13181
32
+ digitalhub/entities/_base/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
+ digitalhub/entities/_base/_base/entity.py,sha256=DLJHhviHVKCo26jCEYg7iXwkfS9mDBQrHxBtHF_yE-0,2180
34
+ digitalhub/entities/_base/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ digitalhub/entities/_base/context/entity.py,sha256=xzeK0gQLWh70JTS0xdVbmS68RPZCbWrITTVJfkdZz_c,3054
36
+ digitalhub/entities/_base/entity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ digitalhub/entities/_base/entity/entity.py,sha256=avf1UhmNVppriP-_Mi8Rz2p3OLocZJFw3GQxXSKpkf4,3386
38
+ digitalhub/entities/_base/entity/metadata.py,sha256=ew0pFBH0u8m5QjkcL21KboRhBkJAJQDl6EjCeiegyEc,1690
39
+ digitalhub/entities/_base/entity/spec.py,sha256=yY6ScqZGRb-Sbw97g-OQ0GPHmmOX6HGYBDkvax6PKkc,1338
40
+ digitalhub/entities/_base/entity/status.py,sha256=UFr-9c1t--3PJDWTYmgsPhuaV0IeHGiUDN0-P_e8JE4,817
41
+ digitalhub/entities/_base/executable/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ digitalhub/entities/_base/executable/entity.py,sha256=Y1IRsS0MIezpZW1os4YIweeqFvusMsXPtC6jsQmE8Pk,10000
43
+ digitalhub/entities/_base/material/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
+ digitalhub/entities/_base/material/entity.py,sha256=sfTlDZwM4WyGvEJRvADH9WrzqamEQNij8oECK-64qWg,6167
45
+ digitalhub/entities/_base/material/spec.py,sha256=jL1OohnYhUSrdTaFF3Rkw817jIjNY0ewm1wB3tgQ_9c,436
46
+ digitalhub/entities/_base/material/status.py,sha256=5qIfUvcOKGoM2PLloMaWqhRz78Ryap56d8cMQHo8KJo,1102
47
+ digitalhub/entities/_base/unversioned/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
+ digitalhub/entities/_base/unversioned/entity.py,sha256=Daxpith7-ORwZnFzL0RR3JH9ASTMuAja3GcMuZMrkUQ,2641
49
+ digitalhub/entities/_base/versioned/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
+ digitalhub/entities/_base/versioned/entity.py,sha256=Yp5HbrSuYqSmIQ0LpBvfdYOsShExJ01zIZtx-2BFEa8,2896
51
+ digitalhub/entities/_builders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
+ digitalhub/entities/_builders/entity.py,sha256=EHiojLFWWO6p7DGO5WlUOt-r8kK1ek_Qui-IOq6mH2Q,3797
53
+ digitalhub/entities/_builders/factory.py,sha256=Yh_tkMIRm7G7QE2sooy088AeA-pKvdZpwpz196DyQ3U,1276
54
+ digitalhub/entities/_builders/metadata.py,sha256=BgGseNbHXRsI3QTNczh3IKF_Wb_gc7L7t7e2SjoHkFo,1425
55
+ digitalhub/entities/_builders/name.py,sha256=sNU54TzzdYug5sqio8uaus6pP5RkEJYIEl6j0fwR4ho,485
56
+ digitalhub/entities/_builders/spec.py,sha256=hB3PEIvPxBQW_Rye1RNAa254K_CuhPKgQ6och7m8LQ8,1400
57
+ digitalhub/entities/_builders/status.py,sha256=IgQ0MoeCs6KdR0RzVeTLLvGjDgrd9_YX5N_wppNc_2Q,1712
58
+ digitalhub/entities/_builders/uuid.py,sha256=TUqayL2Ppp8rT4IkRxVhOp4_rUb-qklGS2tg16NnW4A,595
59
+ digitalhub/entities/artifact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
+ digitalhub/entities/artifact/builder.py,sha256=KV8kVOGpxNzLO2cXk9heHaXBUKDjBT2XmtX-KHzW_Hg,3080
61
+ digitalhub/entities/artifact/crud.py,sha256=vIDz6EzmuCGkd08pwugr154OUjLpq5uzObse3tO-A-g,8216
62
+ digitalhub/entities/artifact/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
+ digitalhub/entities/artifact/_base/entity.py,sha256=WDauPDLE3UTCZTgSxGOr01ZarEqpNUJNVznB7wlA7AU,1111
64
+ digitalhub/entities/artifact/_base/spec.py,sha256=7tDvCQT-NJijpPB1ucT34xn9wSZOB79HOHAix1qAn74,300
65
+ digitalhub/entities/artifact/_base/status.py,sha256=qG5KUOlEHWYZWYqLDvvuZxD5EjsV0SYNNI9aHkQRHlY,188
66
+ digitalhub/entities/artifact/artifact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
+ digitalhub/entities/artifact/artifact/entity.py,sha256=hj6UlJMWnWimqizhKGcKpvOpcYHxTFTk6--nQazlnIM,882
68
+ digitalhub/entities/artifact/artifact/spec.py,sha256=iX6czlG6W_ZoW86PD2GPc_-xLk6Zb1Vt3fk8Lzjbp3c,593
69
+ digitalhub/entities/artifact/artifact/status.py,sha256=x-lTgO2KkjwzlJnEhIfUtF9rzJ1DTIAd3-Hn6ZeLRqo,305
70
+ digitalhub/entities/dataitem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
+ digitalhub/entities/dataitem/builder.py,sha256=Yd6P9uNzNSPhhGfZnZHG2ZjYmRvOgSjJ5O0266p54ww,3387
72
+ digitalhub/entities/dataitem/crud.py,sha256=HhEPdJuFVM-nTt2MqxD8-c_uYtNmrcsdOB4bcoBaCsI,9860
73
+ digitalhub/entities/dataitem/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
+ digitalhub/entities/dataitem/_base/entity.py,sha256=FLpkfhzkaBnmkdE8rKaJS-O3vcOcPwzyHL-xb7HVGA0,1984
75
+ digitalhub/entities/dataitem/_base/spec.py,sha256=7TeEaavMdkXPWBoHMoxagOSt7F4Pn0Bp8qugNwPypSA,300
76
+ digitalhub/entities/dataitem/_base/status.py,sha256=D8eR9FOZoS8VSNkQFDAz8dJkjR7hIq8nFd9qmX19mPc,467
77
+ digitalhub/entities/dataitem/dataitem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
+ digitalhub/entities/dataitem/dataitem/entity.py,sha256=-5DCbta_0I8O9hGBB0BntU7LN9cMrvF-rYJluhcAK88,882
79
+ digitalhub/entities/dataitem/dataitem/spec.py,sha256=VaPG4mu2PtJF8J7maYwM8ToCdV3Zf-MbJUrNDoP9LNk,332
80
+ digitalhub/entities/dataitem/dataitem/status.py,sha256=V4K6kUFQymY9UQrmth9m6YqQUoc4Um1PizY6edG77xg,204
81
+ digitalhub/entities/dataitem/iceberg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
+ digitalhub/entities/dataitem/iceberg/entity.py,sha256=UP6xp-RJOHmyniBx4_whIKJrvc1gpKvIyTMxLOsR1lw,872
83
+ digitalhub/entities/dataitem/iceberg/spec.py,sha256=qQebFiY0_pt9Iy1KGsfxXg67CG9s7GCUQ7rXCydQVvI,328
84
+ digitalhub/entities/dataitem/iceberg/status.py,sha256=XRj9i8a-dzjqB-Ci3cfPnXTikc5khLsIgUJnF1xE01I,202
85
+ digitalhub/entities/dataitem/table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
+ digitalhub/entities/dataitem/table/entity.py,sha256=qqZv59ri5Bl64BUxHyrzjE8sulE3gY0Wz8qFkkuGDWg,4370
87
+ digitalhub/entities/dataitem/table/models.py,sha256=wfnDMQ3nAM1XAJAuMj7CvaXfOTVMQicG_2I6hZB6iag,1093
88
+ digitalhub/entities/dataitem/table/spec.py,sha256=5boOI9zhIvuwIQo0th0E2941_rQEPIRIIYLhySbwbFY,671
89
+ digitalhub/entities/dataitem/table/status.py,sha256=28-_LoSg84x4OwLbRungCHk-ObuobZ5vKuzk1NoBGZA,198
90
+ digitalhub/entities/function/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
+ digitalhub/entities/function/builder.py,sha256=5E1j2-T0hoEg8rRJbslBJcFH4h70tbyDQ4L5CKQestM,2087
92
+ digitalhub/entities/function/crud.py,sha256=a_O2bhJxvovl_K25mtzimYUcfwxVQ87E1ykQe6HAf-o,6908
93
+ digitalhub/entities/function/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
+ digitalhub/entities/function/_base/entity.py,sha256=mrjtq3mLH65sxqGijBOgit8_92MPJ85fburNpHSBBOE,3004
95
+ digitalhub/entities/function/_base/models.py,sha256=6LYyImwnhFxl40mq5nF99mqJ62Mjs3XHUpHVqnSCEkg,2726
96
+ digitalhub/entities/function/_base/spec.py,sha256=SjCtp3JBUTPTLMY_TE8wM1HPKVl7jH_wFEqQXBj1rfo,274
97
+ digitalhub/entities/function/_base/status.py,sha256=N-Z1hw13qV7kWFJLQPaH3rRZ2z7AvZeuWYER95lG344,170
98
+ digitalhub/entities/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
+ digitalhub/entities/model/builder.py,sha256=kJICq8v5D1q-MwAgXyX640ABb0OITjcEu_3Uq6d_1eQ,3462
100
+ digitalhub/entities/model/crud.py,sha256=qhiAj9UNeiKIDNCOe3kSbv6Ed_NyrEwTgt-ZVHDGIeo,8048
101
+ digitalhub/entities/model/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
+ digitalhub/entities/model/_base/entity.py,sha256=vcvSIiFkUR3RBPbTV1q8KOkQTj8R9bOqfkqHBgf1rK4,916
103
+ digitalhub/entities/model/_base/spec.py,sha256=eo2FSqIlNi_10VETBdMFAWX177exzb0-oi9EuEPVBbk,1089
104
+ digitalhub/entities/model/_base/status.py,sha256=v-RbusxYeen6BPObVFUvr76k4MKxCdsaF9geSYpKi_8,182
105
+ digitalhub/entities/model/huggingface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
+ digitalhub/entities/model/huggingface/entity.py,sha256=BnBWrAmTA8cEM47sqpxQeCLCl4Wu7CbpFKhYvf8qLaA,873
107
+ digitalhub/entities/model/huggingface/spec.py,sha256=48mItA3nutcG-get6qOoBJsopmXQgepUXU3zh9nV-EA,1000
108
+ digitalhub/entities/model/huggingface/status.py,sha256=ZFekC9oPuOpUmDcXMn-cpyXp2Jiiux46Vs4oPiiakIA,195
109
+ digitalhub/entities/model/mlflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
+ digitalhub/entities/model/mlflow/entity.py,sha256=RRRnRWlJZS4s9_Aj8PZfCmfw6tNJGUZpygQygAbxm8I,823
111
+ digitalhub/entities/model/mlflow/models.py,sha256=FCCT_jd2j6T517dOZ1NX0ByPapudslir8FJepfQYz4I,464
112
+ digitalhub/entities/model/mlflow/spec.py,sha256=iPW9ZEEEfWhWWia7o7XFeO05qr-CtWSLCkIKw2s8zSM,1286
113
+ digitalhub/entities/model/mlflow/status.py,sha256=bGTTWHAQt3cKFnGCdMinoWNIWzyVEkHi8ybqVT8xA5k,185
114
+ digitalhub/entities/model/mlflow/utils.py,sha256=fHOr3kLqU-yY_FCIMgSLDrniyZx4pFSrHX8sqls2Pvk,2208
115
+ digitalhub/entities/model/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
+ digitalhub/entities/model/model/entity.py,sha256=TlciSy8ELKtDybhVvJlNnhy7Ct6YApmu3D8nJ9xIybs,813
117
+ digitalhub/entities/model/model/spec.py,sha256=vO02rf2nB1TKJ7WPgobq7PuTae5Z5twy1fLVTopLJC8,293
118
+ digitalhub/entities/model/model/status.py,sha256=dF_sh-cm9qGBQTyXDsAm8FkugYW8XHSQxlY-QGcpsLI,183
119
+ digitalhub/entities/model/sklearn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
120
+ digitalhub/entities/model/sklearn/entity.py,sha256=pPy4mOqOmbkqNkKFUnhrsIQNt2mGNPUeTS62poZfa6M,833
121
+ digitalhub/entities/model/sklearn/spec.py,sha256=Md0aKlfNHZ2fhZbJgp9wZxF0Hu6XIkcniQHCgwoRdkk,301
122
+ digitalhub/entities/model/sklearn/status.py,sha256=eqkPPtERX-6_BjPb_GD8j1FIeavpl43k-dfXZGqzGI0,187
123
+ digitalhub/entities/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
+ digitalhub/entities/project/builder.py,sha256=6y0-uLv5HAsJ5mLq3k6aG0cgiHonqVigzAC5rgyN11o,1848
125
+ digitalhub/entities/project/crud.py,sha256=Ki_x9jZqPccNHVkJ9tWigmD55ncZ5D6cs33rjSxi_cc,8854
126
+ digitalhub/entities/project/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
+ digitalhub/entities/project/project/entity.py,sha256=PuSCpP0mYSSIgV3q_bCYlPYDZnOBe4D7zxge6oyVvkY,53375
128
+ digitalhub/entities/project/project/spec.py,sha256=zRJKFztK7z79LU4spxX7Rykv_1sK6kV9F9Qg95HBc6s,1346
129
+ digitalhub/entities/project/project/status.py,sha256=w1Hj_yFwr_5X7ZH7SmtZRto4qUdCWb010viFfvbqX48,168
130
+ digitalhub/entities/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
+ digitalhub/entities/run/builder.py,sha256=JNyGT3NY7JOJxRO4pW4IcV2rQBoFwP-_Xa2ta3oCbS0,1779
132
+ digitalhub/entities/run/crud.py,sha256=TJWIMrrgRxweSkKw_5iWGPZukGAi6JjhwZQmiIC02dg,5068
133
+ digitalhub/entities/run/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
+ digitalhub/entities/run/_base/entity.py,sha256=XZjMZDKSLJSHPEyTf740g5kD3OCDDCEbsasqbRX8kXE,12258
135
+ digitalhub/entities/run/_base/spec.py,sha256=KKIwKBe2asOQq-CKI7NbveGUvYnQfaVrnS92IEJ-e0s,3929
136
+ digitalhub/entities/run/_base/status.py,sha256=be2TK_KcLwEA5uhpkQXBQHDTc6bPaaIz3e9UZuVhXq4,2850
137
+ digitalhub/entities/secret/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
+ digitalhub/entities/secret/builder.py,sha256=A888uBNaw86fhFiCqxgSAZYo1ZdmxqpUcMWy7BazGKw,2188
139
+ digitalhub/entities/secret/crud.py,sha256=tGnJv3sywoBdTfqx57eSb1VAcnVguJUN-Y6lz2nPlqk,6834
140
+ digitalhub/entities/secret/secret/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
+ digitalhub/entities/secret/secret/entity.py,sha256=JtAzru6_dr0e6Mgd6VJ7f04ESrBxybD155x6hZchXWI,2037
142
+ digitalhub/entities/secret/secret/spec.py,sha256=Ol4bDVd2lR6uUUtFj80YNSgtRsnfYGE3C7UN2c_LUsc,727
143
+ digitalhub/entities/secret/secret/status.py,sha256=TK9CUKA6eg9qegqgR9t-u1g-vEeFGB6v5dN9YJNukw8,166
144
+ digitalhub/entities/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
+ digitalhub/entities/task/builder.py,sha256=bwAQzm_Yy0UHfBVI7nondH62PcLUwWWIeQ8QHnuNXhw,1670
146
+ digitalhub/entities/task/crud.py,sha256=gOHgEYg9BsDLE6KvJtzf-UlVOnc-p2cnJVuG7CsbSWU,5323
147
+ digitalhub/entities/task/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
+ digitalhub/entities/task/_base/entity.py,sha256=AtmGfu-EDqTWfPxrxNYe59pK5NLyuBlXiri5p_cwP7E,3083
149
+ digitalhub/entities/task/_base/models.py,sha256=Vkequ03zsI1n4L-VGO0vMYDnrhK63rB5I0NshB3s6k4,4254
150
+ digitalhub/entities/task/_base/spec.py,sha256=wc9-i0VguS99WG4jQhYF3s2d_mwwtg_Yrkm8RbDa_vk,1289
151
+ digitalhub/entities/task/_base/status.py,sha256=FCSSQscQ0dHEpXdc5vSrIkTXon9FNNOr0M1KVh2ZVAA,162
152
+ digitalhub/entities/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
153
+ digitalhub/entities/utils/api.py,sha256=jSNYoLzoYSvu2wI-fs6u87AFYGAaboPCX4y6f2LqJ5A,6597
154
+ digitalhub/entities/utils/entity_types.py,sha256=PcAh78WAC9DgwSU6LxGncn0g7Wzb0iZXc-3Ooik8-ks,324
155
+ digitalhub/entities/utils/state.py,sha256=gKxDy__MEHlz-1SrwICZnFOIqDoI-CBo4ylIBM9TaoQ,609
156
+ digitalhub/entities/utils/utils.py,sha256=HD4tQcx8MQ8YVjz9aIgUHgYIk1t4Q9AlkhaY0NgN8Mg,4193
157
+ digitalhub/entities/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
+ digitalhub/entities/workflow/builder.py,sha256=lz36Zckj9FaE6yhGLOhhKTHjYW8DUjBVnfZPZlW3gQw,2084
159
+ digitalhub/entities/workflow/crud.py,sha256=W26YfBi9YT8OcgPOofTIfosoZ5zCZTVgQCykmT7u-KE,6843
160
+ digitalhub/entities/workflow/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
161
+ digitalhub/entities/workflow/_base/entity.py,sha256=H9qmogay12W_RETMj_QXVPBLjPRQ14gwJyMKtM3pcRs,2180
162
+ digitalhub/entities/workflow/_base/spec.py,sha256=UoKOUEqKDFACQwctDWfwhro77m3kvjhLDGOhhfRvEzQ,274
163
+ digitalhub/entities/workflow/_base/status.py,sha256=W0j0CNdu9o2vbk0awpnDrpgwf_fZpgdtct4s0BxRdyk,170
164
+ digitalhub/readers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
+ digitalhub/readers/builder.py,sha256=H56LA2KWUVk7gbCI_2Y11oXMC5anXMJzYW_56wnq3ws,1313
166
+ digitalhub/readers/registry.py,sha256=k_BJidjIC-fLpOHUNPZNF_OrkDbJzC0V4f3ZNQjKiyg,407
167
+ digitalhub/readers/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
+ digitalhub/readers/_base/readers.py,sha256=Fq7liW_ogeucdIUS7_oDYpMzrwuKxVMqwpyf0sKLnwc,1506
169
+ digitalhub/readers/pandas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
+ digitalhub/readers/pandas/readers.py,sha256=Q63mwTKmY1mdpvTtx1scf9x2rBPfgBpbSu1r-4zvIjk,5351
171
+ digitalhub/registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
+ digitalhub/registry/models.py,sha256=SnCf7rGa6Qhv88dmjSA7XnYXsZ9e9o6lfVBwh0EJgbI,1607
173
+ digitalhub/registry/registry.py,sha256=Wa23GXWJwpjNHBiBN8N1oOLfHrMdJwa0GY92FtBkqP4,1861
174
+ digitalhub/registry/utils.py,sha256=GhxPcvdWN2vH2gru2TVL4sfyNpgvprToHYqtakVhF7g,3277
175
+ digitalhub/runtimes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
+ digitalhub/runtimes/base.py,sha256=ddzKh-NESFJCYjt-Y8HdGrWDWKZ7TQhxRgRWKowCX6I,3961
177
+ digitalhub/runtimes/builder.py,sha256=J30UTqk6nPoUaRdLWr87_bm99rt43N9WDAad09HZ68g,1530
178
+ digitalhub/runtimes/kind_registry.py,sha256=PZ03e24FR68ChaOMspDi1UoeQNKtifofmB3O41HOvK8,3442
179
+ digitalhub/stores/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
180
+ digitalhub/stores/builder.py,sha256=xYkHHD-WnPTVD6BB2dSabJVjM1XUtKn3TiMrDDJBL0s,6631
181
+ digitalhub/stores/_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
+ digitalhub/stores/_base/store.py,sha256=tU-VsTZxkJVLyYpp23Cv_UjnHx74dk6ztdmVhsUO4cA,4171
183
+ digitalhub/stores/local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
+ digitalhub/stores/local/store.py,sha256=KjJ8OG6vfNrckMWbkbEA8KDM6b0Ds0Ed3fwxvTnGOkQ,5673
185
+ digitalhub/stores/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
+ digitalhub/stores/remote/store.py,sha256=MBsotmc5Zk-eT5vgAufnYyR2xJmQvgBR28u3bhaSJtM,3615
187
+ digitalhub/stores/s3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
188
+ digitalhub/stores/s3/store.py,sha256=dS0TumNf3tDkpVcn_0_kp-ERogP3w87tEa-osIU11AQ,15515
189
+ digitalhub/stores/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
+ digitalhub/stores/sql/store.py,sha256=NdELCkP2Rl5ewiRuI4J9eRvTiBzVmpF0cMowZ1NME_8,8654
191
+ digitalhub/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
192
+ digitalhub/utils/data_utils.py,sha256=2eETyxml610Ij7uyDnNc3YiELl2WFLIkj3FL4y6EPk8,2733
193
+ digitalhub/utils/exceptions.py,sha256=Xq0ouzpstU0pzH7GFcoq7TryOMaDZbxCbWFWXpMsM30,868
194
+ digitalhub/utils/file_utils.py,sha256=Qe71D2b6mOil_Y0Hy2QCJbnIaQOyXvhjFRbJoZXhsGQ,4006
195
+ digitalhub/utils/generic_utils.py,sha256=4t6O2EG8FuKwWVh6X79EJNwgWRMTXiYzWxhTmSMEBnQ,3530
196
+ digitalhub/utils/git_utils.py,sha256=aFYL1cpfY-2VnlW7eHmjjjlTLECc5UUUfjb_IQPOY5k,3244
197
+ digitalhub/utils/io_utils.py,sha256=SfYl6f-vUOophuWJ7zupBDx2lmHDohcjwcUqcz6sGdI,1809
198
+ digitalhub/utils/logger.py,sha256=ml3ne6D8wuRdNZ4F6ywmvWotSxjmZWnmKgNiuHb4R5M,437
199
+ digitalhub/utils/s3_utils.py,sha256=oXLzp4K7o45IwK0XOMt4OElDyB09fKRic5WTNA82WUA,1113
200
+ digitalhub/utils/uri_utils.py,sha256=wArWRQ3ygGUNHexGKP3YM-aBE7TyGxhPvfEc7R4T4p4,1144
201
+ test/test_crud_functions.py,sha256=tQs_QBaPCuYVSBpbl-he5_6jr_tteCXVmohj1ZluNsA,2769
202
+ test/test_crud_runs.py,sha256=lkssy15UPJKymgazmi5gG6RLxyTsG-tM_CpNCowD2gQ,2220
203
+ test/test_crud_tasks.py,sha256=sIbY-Hq6C2N20hWHfbCMw9c-zpYS0m_UJGnPINR4Q6s,2111
204
+ test/testkfp.py,sha256=01UpLKkVbwAQu4S1BMiddnnq5x1DStMlJtCoHzi9zq8,1060
205
+ test/testkfp_pipeline.py,sha256=WceFrCp-avHI7PcwIvnv7Kgs2xK3oQqU6sjaonGamg8,622
206
+ test/local/CRUD/test_artifacts.py,sha256=Y3J_C7SDRSsQd2SGIZjPIOvyTL92B1sTFrUONG3YG0Y,2968
207
+ test/local/CRUD/test_dataitems.py,sha256=LQqTzI59uwTGy4zoq8jL0yWVe2W9vXlatkgDU9aB6xg,2968
208
+ test/local/CRUD/test_models.py,sha256=msosbZuRwIMbZtmi3ZaOva4TjQ4lrzkNu9AguIFhrSo,2929
209
+ test/local/imports/test_imports.py,sha256=W-YugO0rpJwvtWp57MXaXfEmE-f5iWuCiLY-n0ZU4z8,1271
210
+ digitalhub-0.8.0b3.dist-info/LICENSE.txt,sha256=_yVOtnbW7Ss28mp058UEEc1X4Rgj8-kQBP_kj8_Sc88,11585
211
+ digitalhub-0.8.0b3.dist-info/METADATA,sha256=OHlVFeAz2e5JHWpULDand9X16_uW3l1m4Znk93OjLBw,15288
212
+ digitalhub-0.8.0b3.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
213
+ digitalhub-0.8.0b3.dist-info/top_level.txt,sha256=ae9pDfCF27ZoaVAxuBKONMP0lm5P-N_I-e-no1WlvD8,16
214
+ digitalhub-0.8.0b3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5