digitalhub 0.11.0b7__py3-none-any.whl → 0.13.0b0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of digitalhub might be problematic. Click here for more details.
- digitalhub/__init__.py +4 -1
- digitalhub/context/api.py +4 -0
- digitalhub/context/builder.py +4 -0
- digitalhub/context/context.py +4 -0
- digitalhub/entities/__init__.py +3 -0
- digitalhub/entities/_base/__init__.py +3 -0
- digitalhub/entities/_base/_base/__init__.py +3 -0
- digitalhub/entities/_base/_base/entity.py +4 -0
- digitalhub/entities/_base/context/__init__.py +3 -0
- digitalhub/entities/_base/context/entity.py +4 -0
- digitalhub/entities/_base/entity/__init__.py +3 -0
- digitalhub/entities/_base/entity/_constructors/__init__.py +3 -0
- digitalhub/entities/_base/entity/_constructors/metadata.py +4 -0
- digitalhub/entities/_base/entity/_constructors/name.py +4 -0
- digitalhub/entities/_base/entity/_constructors/spec.py +4 -0
- digitalhub/entities/_base/entity/_constructors/status.py +4 -0
- digitalhub/entities/_base/entity/_constructors/uuid.py +4 -0
- digitalhub/entities/_base/entity/builder.py +4 -0
- digitalhub/entities/_base/entity/entity.py +4 -0
- digitalhub/entities/_base/entity/metadata.py +4 -0
- digitalhub/entities/_base/entity/spec.py +4 -0
- digitalhub/entities/_base/entity/status.py +4 -0
- digitalhub/entities/_base/executable/__init__.py +3 -0
- digitalhub/entities/_base/executable/entity.py +11 -0
- digitalhub/entities/_base/material/__init__.py +3 -0
- digitalhub/entities/_base/material/entity.py +12 -15
- digitalhub/entities/_base/material/spec.py +4 -0
- digitalhub/entities/_base/material/status.py +4 -0
- digitalhub/entities/_base/material/utils.py +5 -1
- digitalhub/entities/_base/runtime_entity/__init__.py +3 -0
- digitalhub/entities/_base/runtime_entity/builder.py +4 -0
- digitalhub/entities/_base/unversioned/__init__.py +3 -0
- digitalhub/entities/_base/unversioned/builder.py +4 -0
- digitalhub/entities/_base/unversioned/entity.py +4 -0
- digitalhub/entities/_base/versioned/__init__.py +3 -0
- digitalhub/entities/_base/versioned/builder.py +4 -0
- digitalhub/entities/_base/versioned/entity.py +4 -0
- digitalhub/entities/_commons/__init__.py +3 -0
- digitalhub/entities/_commons/enums.py +4 -0
- digitalhub/entities/_commons/metrics.py +4 -0
- digitalhub/entities/_commons/types.py +4 -0
- digitalhub/entities/_commons/utils.py +4 -0
- digitalhub/entities/_processors/__init__.py +3 -0
- digitalhub/entities/_processors/base.py +4 -0
- digitalhub/entities/_processors/context.py +5 -1
- digitalhub/entities/_processors/utils.py +4 -0
- digitalhub/entities/artifact/__init__.py +3 -0
- digitalhub/entities/artifact/_base/__init__.py +3 -0
- digitalhub/entities/artifact/_base/builder.py +4 -0
- digitalhub/entities/artifact/_base/entity.py +4 -0
- digitalhub/entities/artifact/_base/spec.py +4 -0
- digitalhub/entities/artifact/_base/status.py +4 -0
- digitalhub/entities/artifact/artifact/__init__.py +3 -0
- digitalhub/entities/artifact/artifact/builder.py +4 -0
- digitalhub/entities/artifact/artifact/entity.py +4 -0
- digitalhub/entities/artifact/artifact/spec.py +4 -0
- digitalhub/entities/artifact/artifact/status.py +4 -0
- digitalhub/entities/artifact/crud.py +4 -0
- digitalhub/entities/artifact/utils.py +4 -0
- digitalhub/entities/builders.py +4 -0
- digitalhub/entities/dataitem/__init__.py +3 -0
- digitalhub/entities/dataitem/_base/__init__.py +3 -0
- digitalhub/entities/dataitem/_base/builder.py +4 -0
- digitalhub/entities/dataitem/_base/entity.py +4 -0
- digitalhub/entities/dataitem/_base/spec.py +4 -0
- digitalhub/entities/dataitem/_base/status.py +4 -0
- digitalhub/entities/dataitem/crud.py +4 -0
- digitalhub/entities/dataitem/dataitem/__init__.py +3 -0
- digitalhub/entities/dataitem/dataitem/builder.py +4 -0
- digitalhub/entities/dataitem/dataitem/entity.py +4 -0
- digitalhub/entities/dataitem/dataitem/spec.py +4 -0
- digitalhub/entities/dataitem/dataitem/status.py +4 -0
- digitalhub/entities/dataitem/iceberg/__init__.py +3 -0
- digitalhub/entities/dataitem/iceberg/builder.py +4 -0
- digitalhub/entities/dataitem/iceberg/entity.py +4 -0
- digitalhub/entities/dataitem/iceberg/spec.py +4 -0
- digitalhub/entities/dataitem/iceberg/status.py +4 -0
- digitalhub/entities/dataitem/table/__init__.py +3 -0
- digitalhub/entities/dataitem/table/builder.py +4 -0
- digitalhub/entities/dataitem/table/entity.py +4 -0
- digitalhub/entities/dataitem/table/models.py +4 -0
- digitalhub/entities/dataitem/table/spec.py +4 -0
- digitalhub/entities/dataitem/table/status.py +4 -0
- digitalhub/entities/dataitem/table/utils.py +4 -0
- digitalhub/entities/dataitem/utils.py +4 -0
- digitalhub/entities/function/__init__.py +3 -0
- digitalhub/entities/function/_base/__init__.py +3 -0
- digitalhub/entities/function/_base/builder.py +4 -0
- digitalhub/entities/function/_base/entity.py +4 -0
- digitalhub/entities/function/_base/spec.py +4 -0
- digitalhub/entities/function/_base/status.py +4 -0
- digitalhub/entities/function/crud.py +4 -0
- digitalhub/entities/model/__init__.py +3 -0
- digitalhub/entities/model/_base/__init__.py +3 -0
- digitalhub/entities/model/_base/builder.py +4 -0
- digitalhub/entities/model/_base/entity.py +4 -0
- digitalhub/entities/model/_base/spec.py +4 -0
- digitalhub/entities/model/_base/status.py +4 -0
- digitalhub/entities/model/crud.py +4 -0
- digitalhub/entities/model/huggingface/__init__.py +3 -0
- digitalhub/entities/model/huggingface/builder.py +4 -0
- digitalhub/entities/model/huggingface/entity.py +4 -0
- digitalhub/entities/model/huggingface/spec.py +4 -0
- digitalhub/entities/model/huggingface/status.py +4 -0
- digitalhub/entities/model/mlflow/__init__.py +3 -0
- digitalhub/entities/model/mlflow/builder.py +4 -0
- digitalhub/entities/model/mlflow/entity.py +4 -0
- digitalhub/entities/model/mlflow/models.py +4 -0
- digitalhub/entities/model/mlflow/spec.py +4 -0
- digitalhub/entities/model/mlflow/status.py +4 -0
- digitalhub/entities/model/mlflow/utils.py +4 -0
- digitalhub/entities/model/model/__init__.py +3 -0
- digitalhub/entities/model/model/builder.py +4 -0
- digitalhub/entities/model/model/entity.py +4 -0
- digitalhub/entities/model/model/spec.py +4 -0
- digitalhub/entities/model/model/status.py +4 -0
- digitalhub/entities/model/sklearn/__init__.py +3 -0
- digitalhub/entities/model/sklearn/builder.py +4 -0
- digitalhub/entities/model/sklearn/entity.py +4 -0
- digitalhub/entities/model/sklearn/spec.py +4 -0
- digitalhub/entities/model/sklearn/status.py +4 -0
- digitalhub/entities/model/utils.py +4 -0
- digitalhub/entities/project/__init__.py +3 -0
- digitalhub/entities/project/_base/__init__.py +3 -0
- digitalhub/entities/project/_base/builder.py +4 -0
- digitalhub/entities/project/_base/entity.py +4 -0
- digitalhub/entities/project/_base/models.py +4 -0
- digitalhub/entities/project/_base/spec.py +4 -0
- digitalhub/entities/project/_base/status.py +4 -0
- digitalhub/entities/project/crud.py +4 -0
- digitalhub/entities/project/utils.py +4 -0
- digitalhub/entities/run/__init__.py +3 -0
- digitalhub/entities/run/_base/__init__.py +3 -0
- digitalhub/entities/run/_base/builder.py +4 -0
- digitalhub/entities/run/_base/entity.py +4 -0
- digitalhub/entities/run/_base/spec.py +4 -0
- digitalhub/entities/run/_base/status.py +4 -0
- digitalhub/entities/run/crud.py +4 -0
- digitalhub/entities/secret/__init__.py +3 -0
- digitalhub/entities/secret/_base/__init__.py +3 -0
- digitalhub/entities/secret/_base/builder.py +4 -0
- digitalhub/entities/secret/_base/entity.py +4 -0
- digitalhub/entities/secret/_base/spec.py +4 -0
- digitalhub/entities/secret/_base/status.py +4 -0
- digitalhub/entities/secret/crud.py +4 -0
- digitalhub/entities/task/__init__.py +3 -0
- digitalhub/entities/task/_base/__init__.py +3 -0
- digitalhub/entities/task/_base/builder.py +4 -0
- digitalhub/entities/task/_base/entity.py +4 -0
- digitalhub/entities/task/_base/models.py +4 -0
- digitalhub/entities/task/_base/spec.py +4 -0
- digitalhub/entities/task/_base/status.py +4 -0
- digitalhub/entities/task/_base/utils.py +4 -0
- digitalhub/entities/task/crud.py +4 -0
- digitalhub/entities/trigger/__init__.py +3 -0
- digitalhub/entities/trigger/_base/__init__.py +3 -0
- digitalhub/entities/trigger/_base/builder.py +4 -0
- digitalhub/entities/trigger/_base/entity.py +4 -0
- digitalhub/entities/trigger/_base/spec.py +4 -0
- digitalhub/entities/trigger/_base/status.py +4 -0
- digitalhub/entities/trigger/crud.py +4 -0
- digitalhub/entities/trigger/lifecycle/__init__.py +3 -0
- digitalhub/entities/trigger/lifecycle/builder.py +4 -0
- digitalhub/entities/trigger/lifecycle/entity.py +4 -0
- digitalhub/entities/trigger/lifecycle/spec.py +4 -0
- digitalhub/entities/trigger/lifecycle/status.py +4 -0
- digitalhub/entities/trigger/scheduler/__init__.py +3 -0
- digitalhub/entities/trigger/scheduler/builder.py +4 -0
- digitalhub/entities/trigger/scheduler/entity.py +4 -0
- digitalhub/entities/trigger/scheduler/spec.py +4 -0
- digitalhub/entities/trigger/scheduler/status.py +4 -0
- digitalhub/entities/workflow/__init__.py +3 -0
- digitalhub/entities/workflow/_base/__init__.py +3 -0
- digitalhub/entities/workflow/_base/builder.py +4 -0
- digitalhub/entities/workflow/_base/entity.py +4 -0
- digitalhub/entities/workflow/_base/spec.py +4 -0
- digitalhub/entities/workflow/_base/status.py +4 -0
- digitalhub/entities/workflow/crud.py +4 -0
- digitalhub/factory/__init__.py +3 -0
- digitalhub/factory/factory.py +4 -0
- digitalhub/factory/utils.py +4 -0
- digitalhub/runtimes/__init__.py +3 -0
- digitalhub/runtimes/_base.py +4 -0
- digitalhub/runtimes/builder.py +4 -0
- digitalhub/runtimes/enums.py +4 -0
- digitalhub/stores/__init__.py +3 -0
- digitalhub/stores/client/__init__.py +3 -0
- digitalhub/stores/client/_base/__init__.py +3 -0
- digitalhub/stores/client/_base/api_builder.py +4 -0
- digitalhub/stores/client/_base/client.py +4 -0
- digitalhub/stores/client/_base/key_builder.py +4 -0
- digitalhub/stores/client/_base/params_builder.py +4 -0
- digitalhub/stores/client/api.py +4 -0
- digitalhub/stores/client/builder.py +4 -0
- digitalhub/stores/client/dhcore/__init__.py +3 -0
- digitalhub/stores/client/dhcore/api_builder.py +4 -0
- digitalhub/stores/client/dhcore/client.py +60 -19
- digitalhub/stores/client/dhcore/configurator.py +282 -183
- digitalhub/stores/client/dhcore/enums.py +6 -0
- digitalhub/stores/client/dhcore/error_parser.py +4 -0
- digitalhub/stores/client/dhcore/key_builder.py +4 -0
- digitalhub/stores/client/dhcore/models.py +4 -0
- digitalhub/stores/client/dhcore/params_builder.py +4 -0
- digitalhub/stores/client/dhcore/utils.py +12 -8
- digitalhub/stores/client/local/__init__.py +3 -0
- digitalhub/stores/client/local/api_builder.py +4 -0
- digitalhub/stores/client/local/client.py +4 -0
- digitalhub/stores/client/local/enums.py +4 -0
- digitalhub/stores/client/local/key_builder.py +4 -0
- digitalhub/stores/client/local/params_builder.py +4 -0
- digitalhub/stores/credentials/__init__.py +3 -0
- digitalhub/stores/{configurator → credentials}/api.py +7 -3
- digitalhub/stores/credentials/configurator.py +37 -0
- digitalhub/stores/credentials/enums.py +54 -0
- digitalhub/stores/credentials/handler.py +148 -0
- digitalhub/stores/{configurator → credentials}/ini_module.py +5 -1
- digitalhub/stores/credentials/store.py +49 -0
- digitalhub/stores/data/__init__.py +3 -0
- digitalhub/stores/data/_base/__init__.py +3 -0
- digitalhub/stores/data/_base/store.py +23 -6
- digitalhub/stores/data/api.py +41 -1
- digitalhub/stores/data/builder.py +50 -53
- digitalhub/stores/data/enums.py +4 -0
- digitalhub/stores/data/local/__init__.py +3 -0
- digitalhub/stores/data/local/store.py +8 -7
- digitalhub/stores/data/remote/__init__.py +3 -0
- digitalhub/stores/data/remote/store.py +8 -7
- digitalhub/stores/data/s3/__init__.py +3 -0
- digitalhub/stores/data/s3/configurator.py +40 -92
- digitalhub/stores/data/s3/store.py +46 -57
- digitalhub/stores/data/s3/utils.py +5 -1
- digitalhub/stores/data/sql/__init__.py +3 -0
- digitalhub/stores/data/sql/configurator.py +39 -83
- digitalhub/stores/data/sql/store.py +19 -15
- digitalhub/stores/readers/__init__.py +3 -0
- digitalhub/stores/readers/data/__init__.py +3 -0
- digitalhub/stores/readers/data/_base/__init__.py +3 -0
- digitalhub/stores/readers/data/_base/builder.py +4 -0
- digitalhub/stores/readers/data/_base/reader.py +4 -0
- digitalhub/stores/readers/data/api.py +4 -0
- digitalhub/stores/readers/data/factory.py +4 -0
- digitalhub/stores/readers/data/pandas/__init__.py +3 -0
- digitalhub/stores/readers/data/pandas/builder.py +4 -0
- digitalhub/stores/readers/data/pandas/reader.py +4 -0
- digitalhub/stores/readers/query/__init__.py +3 -0
- digitalhub/utils/__init__.py +3 -0
- digitalhub/utils/enums.py +4 -0
- digitalhub/utils/exceptions.py +4 -0
- digitalhub/utils/file_utils.py +4 -0
- digitalhub/utils/generic_utils.py +4 -0
- digitalhub/utils/git_utils.py +4 -0
- digitalhub/utils/io_utils.py +4 -0
- digitalhub/utils/logger.py +4 -0
- digitalhub/utils/types.py +4 -0
- digitalhub/utils/uri_utils.py +4 -0
- digitalhub-0.13.0b0.dist-info/METADATA +301 -0
- digitalhub-0.13.0b0.dist-info/RECORD +260 -0
- digitalhub-0.13.0b0.dist-info/licenses/AUTHORS +5 -0
- digitalhub-0.13.0b0.dist-info/licenses/LICENSE +201 -0
- digitalhub/stores/configurator/__init__.py +0 -0
- digitalhub/stores/configurator/configurator.py +0 -198
- digitalhub/stores/configurator/credentials_store.py +0 -65
- digitalhub/stores/configurator/enums.py +0 -21
- digitalhub/stores/data/s3/enums.py +0 -16
- digitalhub/stores/data/sql/enums.py +0 -16
- digitalhub/stores/data/utils.py +0 -34
- digitalhub-0.11.0b7.dist-info/METADATA +0 -259
- digitalhub-0.11.0b7.dist-info/RECORD +0 -261
- digitalhub-0.11.0b7.dist-info/licenses/LICENSE.txt +0 -216
- {digitalhub-0.11.0b7.dist-info → digitalhub-0.13.0b0.dist-info}/WHEEL +0 -0
|
@@ -1,29 +1,51 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
1
5
|
from __future__ import annotations
|
|
2
6
|
|
|
3
|
-
from digitalhub.stores.
|
|
4
|
-
from digitalhub.stores.
|
|
5
|
-
from digitalhub.stores.data.sql.enums import SqlStoreEnv
|
|
6
|
-
from digitalhub.utils.exceptions import StoreError
|
|
7
|
+
from digitalhub.stores.credentials.configurator import Configurator
|
|
8
|
+
from digitalhub.stores.credentials.enums import CredsEnvVar
|
|
7
9
|
|
|
8
10
|
|
|
9
|
-
class SqlStoreConfigurator:
|
|
11
|
+
class SqlStoreConfigurator(Configurator):
|
|
10
12
|
"""
|
|
11
13
|
Configure the store by getting the credentials from user
|
|
12
14
|
provided config or from environment.
|
|
13
15
|
"""
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
keys = [
|
|
18
|
+
CredsEnvVar.DB_USERNAME,
|
|
19
|
+
CredsEnvVar.DB_PASSWORD,
|
|
20
|
+
CredsEnvVar.DB_HOST,
|
|
21
|
+
CredsEnvVar.DB_PORT,
|
|
22
|
+
CredsEnvVar.DB_DATABASE,
|
|
23
|
+
]
|
|
24
|
+
required_keys = [
|
|
25
|
+
CredsEnvVar.DB_USERNAME,
|
|
26
|
+
CredsEnvVar.DB_PASSWORD,
|
|
27
|
+
CredsEnvVar.DB_HOST,
|
|
28
|
+
CredsEnvVar.DB_PORT,
|
|
29
|
+
CredsEnvVar.DB_DATABASE,
|
|
21
30
|
]
|
|
22
31
|
|
|
32
|
+
def __init__(self):
|
|
33
|
+
super().__init__()
|
|
34
|
+
self.load_configs()
|
|
35
|
+
|
|
23
36
|
##############################
|
|
24
37
|
# Configuration methods
|
|
25
38
|
##############################
|
|
26
39
|
|
|
40
|
+
def load_configs(self) -> None:
|
|
41
|
+
# Load from env
|
|
42
|
+
env_creds = {var.value: self._creds_handler.load_from_env(var.value) for var in self.keys}
|
|
43
|
+
self._creds_handler.set_credentials(self._env, env_creds)
|
|
44
|
+
|
|
45
|
+
# Load from file
|
|
46
|
+
file_creds = {var.value: self._creds_handler.load_from_file(var.value) for var in self.keys}
|
|
47
|
+
self._creds_handler.set_credentials(self._file, file_creds)
|
|
48
|
+
|
|
27
49
|
def get_sql_conn_string(self, origin: str) -> str:
|
|
28
50
|
"""
|
|
29
51
|
Get the connection string from environment variables.
|
|
@@ -38,76 +60,10 @@ class SqlStoreConfigurator:
|
|
|
38
60
|
str
|
|
39
61
|
The connection string.
|
|
40
62
|
"""
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
user = creds[SqlStoreEnv.USERNAME.value]
|
|
49
|
-
password = creds[SqlStoreEnv.PASSWORD.value]
|
|
50
|
-
host = creds[SqlStoreEnv.HOST.value]
|
|
51
|
-
port = creds[SqlStoreEnv.PORT.value]
|
|
52
|
-
database = creds[SqlStoreEnv.DATABASE.value]
|
|
63
|
+
creds = self.get_credentials(origin)
|
|
64
|
+
user = creds[CredsEnvVar.DB_USERNAME.value]
|
|
65
|
+
password = creds[CredsEnvVar.DB_PASSWORD.value]
|
|
66
|
+
host = creds[CredsEnvVar.DB_HOST.value]
|
|
67
|
+
port = creds[CredsEnvVar.DB_PORT.value]
|
|
68
|
+
database = creds[CredsEnvVar.DB_DATABASE.value]
|
|
53
69
|
return f"postgresql://{user}:{password}@{host}:{port}/{database}"
|
|
54
|
-
|
|
55
|
-
def _get_env_config(self) -> dict:
|
|
56
|
-
"""
|
|
57
|
-
Get the store configuration from environment variables.
|
|
58
|
-
|
|
59
|
-
Returns
|
|
60
|
-
-------
|
|
61
|
-
dict
|
|
62
|
-
The credentials.
|
|
63
|
-
"""
|
|
64
|
-
credentials = {var.value: configurator.load_from_env(var.value) for var in self.required_vars}
|
|
65
|
-
self._set_credentials(credentials)
|
|
66
|
-
return credentials
|
|
67
|
-
|
|
68
|
-
def _get_file_config(self) -> dict:
|
|
69
|
-
"""
|
|
70
|
-
Get the store configuration from file.
|
|
71
|
-
|
|
72
|
-
Returns
|
|
73
|
-
-------
|
|
74
|
-
dict
|
|
75
|
-
The credentials.
|
|
76
|
-
"""
|
|
77
|
-
credentials = {var.value: configurator.load_from_file(var.value) for var in self.required_vars}
|
|
78
|
-
self._set_credentials(credentials)
|
|
79
|
-
return credentials
|
|
80
|
-
|
|
81
|
-
def _check_credentials(self, credentials: dict) -> None:
|
|
82
|
-
"""
|
|
83
|
-
Check for missing credentials.
|
|
84
|
-
|
|
85
|
-
Parameters
|
|
86
|
-
----------
|
|
87
|
-
credentials : dict
|
|
88
|
-
The credentials.
|
|
89
|
-
|
|
90
|
-
Returns
|
|
91
|
-
-------
|
|
92
|
-
None
|
|
93
|
-
"""
|
|
94
|
-
missing_vars = [key for key, value in credentials.items() if value is None and key in self.required_vars]
|
|
95
|
-
if missing_vars:
|
|
96
|
-
raise StoreError(f"Missing credentials for SQL store: {', '.join(missing_vars)}")
|
|
97
|
-
|
|
98
|
-
def _set_credentials(self, credentials: dict) -> None:
|
|
99
|
-
"""
|
|
100
|
-
Set the store credentials into the configurator.
|
|
101
|
-
|
|
102
|
-
Parameters
|
|
103
|
-
----------
|
|
104
|
-
credentials : dict
|
|
105
|
-
The credentials.
|
|
106
|
-
|
|
107
|
-
Returns
|
|
108
|
-
-------
|
|
109
|
-
None
|
|
110
|
-
"""
|
|
111
|
-
# Set credentials
|
|
112
|
-
for key, value in credentials.items():
|
|
113
|
-
configurator.set_credential(key, value)
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
1
5
|
from __future__ import annotations
|
|
2
6
|
|
|
3
7
|
import typing
|
|
@@ -10,9 +14,8 @@ from sqlalchemy import MetaData, Table, create_engine, select
|
|
|
10
14
|
from sqlalchemy.engine import Engine
|
|
11
15
|
from sqlalchemy.exc import SQLAlchemyError
|
|
12
16
|
|
|
13
|
-
from digitalhub.stores.
|
|
17
|
+
from digitalhub.stores.credentials.enums import CredsOrigin
|
|
14
18
|
from digitalhub.stores.data._base.store import Store
|
|
15
|
-
from digitalhub.stores.data.sql.configurator import SqlStoreConfigurator
|
|
16
19
|
from digitalhub.stores.readers.data.api import get_reader_by_object
|
|
17
20
|
from digitalhub.utils.exceptions import StoreError
|
|
18
21
|
from digitalhub.utils.types import SourcesOrListOfSources
|
|
@@ -20,6 +23,9 @@ from digitalhub.utils.types import SourcesOrListOfSources
|
|
|
20
23
|
if typing.TYPE_CHECKING:
|
|
21
24
|
from sqlalchemy.engine.row import Row
|
|
22
25
|
|
|
26
|
+
from digitalhub.stores.credentials.configurator import Configurator
|
|
27
|
+
from digitalhub.stores.data.sql.configurator import SqlStoreConfigurator
|
|
28
|
+
|
|
23
29
|
|
|
24
30
|
class SqlStore(Store):
|
|
25
31
|
"""
|
|
@@ -27,8 +33,9 @@ class SqlStore(Store):
|
|
|
27
33
|
artifacts on SQL based storage.
|
|
28
34
|
"""
|
|
29
35
|
|
|
30
|
-
def __init__(self) -> None:
|
|
31
|
-
|
|
36
|
+
def __init__(self, configurator: Configurator | None = None) -> None:
|
|
37
|
+
super().__init__(configurator)
|
|
38
|
+
self._configurator: SqlStoreConfigurator
|
|
32
39
|
|
|
33
40
|
##############################
|
|
34
41
|
# I/O methods
|
|
@@ -36,9 +43,8 @@ class SqlStore(Store):
|
|
|
36
43
|
|
|
37
44
|
def download(
|
|
38
45
|
self,
|
|
39
|
-
|
|
46
|
+
src: str,
|
|
40
47
|
dst: Path,
|
|
41
|
-
src: list[str],
|
|
42
48
|
overwrite: bool = False,
|
|
43
49
|
) -> str:
|
|
44
50
|
"""
|
|
@@ -46,21 +52,19 @@ class SqlStore(Store):
|
|
|
46
52
|
|
|
47
53
|
Parameters
|
|
48
54
|
----------
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
src : str
|
|
56
|
+
Path of the material entity.
|
|
51
57
|
dst : str
|
|
52
|
-
The destination of the
|
|
53
|
-
src : list[str]
|
|
54
|
-
List of sources.
|
|
58
|
+
The destination of the material entity on local filesystem.
|
|
55
59
|
overwrite : bool
|
|
56
60
|
Specify if overwrite existing file(s).
|
|
57
61
|
|
|
58
62
|
Returns
|
|
59
63
|
-------
|
|
60
64
|
str
|
|
61
|
-
Destination path of the downloaded
|
|
65
|
+
Destination path of the downloaded files.
|
|
62
66
|
"""
|
|
63
|
-
table_name = self._get_table_name(
|
|
67
|
+
table_name = self._get_table_name(src) + ".parquet"
|
|
64
68
|
# Case where dst is not provided
|
|
65
69
|
if dst is None:
|
|
66
70
|
dst = Path(self._build_temp("sql")) / table_name
|
|
@@ -79,8 +83,8 @@ class SqlStore(Store):
|
|
|
79
83
|
self._check_overwrite(dst, overwrite)
|
|
80
84
|
self._build_path(dst)
|
|
81
85
|
|
|
82
|
-
schema = self._get_schema(
|
|
83
|
-
table = self._get_table_name(
|
|
86
|
+
schema = self._get_schema(src)
|
|
87
|
+
table = self._get_table_name(src)
|
|
84
88
|
return self._download_table(schema, table, str(dst))
|
|
85
89
|
|
|
86
90
|
def upload(
|
digitalhub/utils/__init__.py
CHANGED
digitalhub/utils/enums.py
CHANGED
digitalhub/utils/exceptions.py
CHANGED
digitalhub/utils/file_utils.py
CHANGED
digitalhub/utils/git_utils.py
CHANGED
digitalhub/utils/io_utils.py
CHANGED
digitalhub/utils/logger.py
CHANGED
digitalhub/utils/types.py
CHANGED