digitalhub 0.11.0b7__py3-none-any.whl → 0.13.0__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 (272) hide show
  1. digitalhub/__init__.py +4 -1
  2. digitalhub/context/api.py +9 -5
  3. digitalhub/context/builder.py +7 -5
  4. digitalhub/context/context.py +13 -1
  5. digitalhub/entities/__init__.py +3 -0
  6. digitalhub/entities/_base/__init__.py +3 -0
  7. digitalhub/entities/_base/_base/__init__.py +3 -0
  8. digitalhub/entities/_base/_base/entity.py +4 -0
  9. digitalhub/entities/_base/context/__init__.py +3 -0
  10. digitalhub/entities/_base/context/entity.py +4 -0
  11. digitalhub/entities/_base/entity/__init__.py +3 -0
  12. digitalhub/entities/_base/entity/_constructors/__init__.py +3 -0
  13. digitalhub/entities/_base/entity/_constructors/metadata.py +4 -0
  14. digitalhub/entities/_base/entity/_constructors/name.py +4 -0
  15. digitalhub/entities/_base/entity/_constructors/spec.py +4 -0
  16. digitalhub/entities/_base/entity/_constructors/status.py +4 -0
  17. digitalhub/entities/_base/entity/_constructors/uuid.py +4 -0
  18. digitalhub/entities/_base/entity/builder.py +4 -0
  19. digitalhub/entities/_base/entity/entity.py +4 -0
  20. digitalhub/entities/_base/entity/metadata.py +4 -0
  21. digitalhub/entities/_base/entity/spec.py +4 -0
  22. digitalhub/entities/_base/entity/status.py +4 -0
  23. digitalhub/entities/_base/executable/__init__.py +3 -0
  24. digitalhub/entities/_base/executable/entity.py +109 -57
  25. digitalhub/entities/_base/material/__init__.py +3 -0
  26. digitalhub/entities/_base/material/entity.py +15 -18
  27. digitalhub/entities/_base/material/spec.py +4 -0
  28. digitalhub/entities/_base/material/status.py +4 -0
  29. digitalhub/entities/_base/material/utils.py +5 -1
  30. digitalhub/entities/_base/runtime_entity/__init__.py +3 -0
  31. digitalhub/entities/_base/runtime_entity/builder.py +4 -0
  32. digitalhub/entities/_base/unversioned/__init__.py +3 -0
  33. digitalhub/entities/_base/unversioned/builder.py +4 -0
  34. digitalhub/entities/_base/unversioned/entity.py +4 -0
  35. digitalhub/entities/_base/versioned/__init__.py +3 -0
  36. digitalhub/entities/_base/versioned/builder.py +4 -0
  37. digitalhub/entities/_base/versioned/entity.py +4 -0
  38. digitalhub/entities/_commons/__init__.py +3 -0
  39. digitalhub/entities/_commons/enums.py +4 -0
  40. digitalhub/entities/_commons/metrics.py +68 -30
  41. digitalhub/entities/_commons/utils.py +40 -9
  42. digitalhub/entities/_processors/__init__.py +3 -0
  43. digitalhub/entities/_processors/base.py +154 -79
  44. digitalhub/entities/_processors/context.py +370 -215
  45. digitalhub/entities/_processors/utils.py +78 -30
  46. digitalhub/entities/artifact/__init__.py +3 -0
  47. digitalhub/entities/artifact/_base/__init__.py +3 -0
  48. digitalhub/entities/artifact/_base/builder.py +4 -0
  49. digitalhub/entities/artifact/_base/entity.py +4 -0
  50. digitalhub/entities/artifact/_base/spec.py +4 -0
  51. digitalhub/entities/artifact/_base/status.py +4 -0
  52. digitalhub/entities/artifact/artifact/__init__.py +3 -0
  53. digitalhub/entities/artifact/artifact/builder.py +4 -0
  54. digitalhub/entities/artifact/artifact/entity.py +4 -0
  55. digitalhub/entities/artifact/artifact/spec.py +4 -0
  56. digitalhub/entities/artifact/artifact/status.py +4 -0
  57. digitalhub/entities/artifact/crud.py +8 -0
  58. digitalhub/entities/artifact/utils.py +32 -13
  59. digitalhub/entities/builders.py +4 -0
  60. digitalhub/entities/dataitem/__init__.py +3 -0
  61. digitalhub/entities/dataitem/_base/__init__.py +3 -0
  62. digitalhub/entities/dataitem/_base/builder.py +4 -0
  63. digitalhub/entities/dataitem/_base/entity.py +4 -0
  64. digitalhub/entities/dataitem/_base/spec.py +4 -0
  65. digitalhub/entities/dataitem/_base/status.py +4 -0
  66. digitalhub/entities/dataitem/crud.py +18 -2
  67. digitalhub/entities/dataitem/dataitem/__init__.py +3 -0
  68. digitalhub/entities/dataitem/dataitem/builder.py +4 -0
  69. digitalhub/entities/dataitem/dataitem/entity.py +4 -0
  70. digitalhub/entities/dataitem/dataitem/spec.py +4 -0
  71. digitalhub/entities/dataitem/dataitem/status.py +4 -0
  72. digitalhub/entities/dataitem/iceberg/__init__.py +3 -0
  73. digitalhub/entities/dataitem/iceberg/builder.py +4 -0
  74. digitalhub/entities/dataitem/iceberg/entity.py +4 -0
  75. digitalhub/entities/dataitem/iceberg/spec.py +4 -0
  76. digitalhub/entities/dataitem/iceberg/status.py +4 -0
  77. digitalhub/entities/dataitem/table/__init__.py +3 -0
  78. digitalhub/entities/dataitem/table/builder.py +4 -0
  79. digitalhub/entities/dataitem/table/entity.py +7 -3
  80. digitalhub/entities/dataitem/table/models.py +4 -0
  81. digitalhub/entities/dataitem/table/spec.py +4 -0
  82. digitalhub/entities/dataitem/table/status.py +4 -0
  83. digitalhub/entities/dataitem/table/utils.py +4 -0
  84. digitalhub/entities/dataitem/utils.py +88 -35
  85. digitalhub/entities/function/__init__.py +3 -0
  86. digitalhub/entities/function/_base/__init__.py +3 -0
  87. digitalhub/entities/function/_base/builder.py +4 -0
  88. digitalhub/entities/function/_base/entity.py +4 -0
  89. digitalhub/entities/function/_base/spec.py +4 -0
  90. digitalhub/entities/function/_base/status.py +4 -0
  91. digitalhub/entities/function/crud.py +4 -0
  92. digitalhub/entities/model/__init__.py +3 -0
  93. digitalhub/entities/model/_base/__init__.py +3 -0
  94. digitalhub/entities/model/_base/builder.py +4 -0
  95. digitalhub/entities/model/_base/entity.py +4 -0
  96. digitalhub/entities/model/_base/spec.py +4 -0
  97. digitalhub/entities/model/_base/status.py +4 -0
  98. digitalhub/entities/model/crud.py +8 -0
  99. digitalhub/entities/model/huggingface/__init__.py +3 -0
  100. digitalhub/entities/model/huggingface/builder.py +4 -0
  101. digitalhub/entities/model/huggingface/entity.py +4 -0
  102. digitalhub/entities/model/huggingface/spec.py +4 -0
  103. digitalhub/entities/model/huggingface/status.py +4 -0
  104. digitalhub/entities/model/mlflow/__init__.py +3 -0
  105. digitalhub/entities/model/mlflow/builder.py +4 -0
  106. digitalhub/entities/model/mlflow/entity.py +4 -0
  107. digitalhub/entities/model/mlflow/models.py +4 -0
  108. digitalhub/entities/model/mlflow/spec.py +4 -0
  109. digitalhub/entities/model/mlflow/status.py +4 -0
  110. digitalhub/entities/model/mlflow/utils.py +4 -0
  111. digitalhub/entities/model/model/__init__.py +3 -0
  112. digitalhub/entities/model/model/builder.py +4 -0
  113. digitalhub/entities/model/model/entity.py +4 -0
  114. digitalhub/entities/model/model/spec.py +4 -0
  115. digitalhub/entities/model/model/status.py +4 -0
  116. digitalhub/entities/model/sklearn/__init__.py +3 -0
  117. digitalhub/entities/model/sklearn/builder.py +4 -0
  118. digitalhub/entities/model/sklearn/entity.py +4 -0
  119. digitalhub/entities/model/sklearn/spec.py +4 -0
  120. digitalhub/entities/model/sklearn/status.py +4 -0
  121. digitalhub/entities/model/utils.py +32 -13
  122. digitalhub/entities/project/__init__.py +3 -0
  123. digitalhub/entities/project/_base/__init__.py +3 -0
  124. digitalhub/entities/project/_base/builder.py +4 -0
  125. digitalhub/entities/project/_base/entity.py +4 -2
  126. digitalhub/entities/project/_base/models.py +4 -0
  127. digitalhub/entities/project/_base/spec.py +4 -0
  128. digitalhub/entities/project/_base/status.py +4 -0
  129. digitalhub/entities/project/crud.py +4 -0
  130. digitalhub/entities/project/utils.py +4 -0
  131. digitalhub/entities/run/__init__.py +3 -0
  132. digitalhub/entities/run/_base/__init__.py +3 -0
  133. digitalhub/entities/run/_base/builder.py +4 -0
  134. digitalhub/entities/run/_base/entity.py +6 -2
  135. digitalhub/entities/run/_base/spec.py +4 -0
  136. digitalhub/entities/run/_base/status.py +4 -0
  137. digitalhub/entities/run/crud.py +4 -0
  138. digitalhub/entities/secret/__init__.py +3 -0
  139. digitalhub/entities/secret/_base/__init__.py +3 -0
  140. digitalhub/entities/secret/_base/builder.py +4 -0
  141. digitalhub/entities/secret/_base/entity.py +4 -0
  142. digitalhub/entities/secret/_base/spec.py +4 -0
  143. digitalhub/entities/secret/_base/status.py +4 -0
  144. digitalhub/entities/secret/crud.py +4 -0
  145. digitalhub/entities/task/__init__.py +3 -0
  146. digitalhub/entities/task/_base/__init__.py +3 -0
  147. digitalhub/entities/task/_base/builder.py +4 -0
  148. digitalhub/entities/task/_base/entity.py +4 -0
  149. digitalhub/entities/task/_base/models.py +16 -3
  150. digitalhub/entities/task/_base/spec.py +4 -0
  151. digitalhub/entities/task/_base/status.py +4 -0
  152. digitalhub/entities/task/_base/utils.py +4 -0
  153. digitalhub/entities/task/crud.py +4 -0
  154. digitalhub/entities/trigger/__init__.py +3 -0
  155. digitalhub/entities/trigger/_base/__init__.py +3 -0
  156. digitalhub/entities/trigger/_base/builder.py +4 -0
  157. digitalhub/entities/trigger/_base/entity.py +15 -0
  158. digitalhub/entities/trigger/_base/spec.py +4 -0
  159. digitalhub/entities/trigger/_base/status.py +4 -0
  160. digitalhub/entities/trigger/crud.py +4 -0
  161. digitalhub/entities/trigger/lifecycle/__init__.py +3 -0
  162. digitalhub/entities/trigger/lifecycle/builder.py +4 -0
  163. digitalhub/entities/trigger/lifecycle/entity.py +4 -0
  164. digitalhub/entities/trigger/lifecycle/spec.py +4 -0
  165. digitalhub/entities/trigger/lifecycle/status.py +4 -0
  166. digitalhub/entities/trigger/scheduler/__init__.py +3 -0
  167. digitalhub/entities/trigger/scheduler/builder.py +4 -0
  168. digitalhub/entities/trigger/scheduler/entity.py +4 -0
  169. digitalhub/entities/trigger/scheduler/spec.py +4 -0
  170. digitalhub/entities/trigger/scheduler/status.py +4 -0
  171. digitalhub/entities/workflow/__init__.py +3 -0
  172. digitalhub/entities/workflow/_base/__init__.py +3 -0
  173. digitalhub/entities/workflow/_base/builder.py +4 -0
  174. digitalhub/entities/workflow/_base/entity.py +4 -0
  175. digitalhub/entities/workflow/_base/spec.py +4 -0
  176. digitalhub/entities/workflow/_base/status.py +4 -0
  177. digitalhub/entities/workflow/crud.py +4 -0
  178. digitalhub/factory/__init__.py +3 -0
  179. digitalhub/factory/factory.py +29 -3
  180. digitalhub/factory/utils.py +15 -3
  181. digitalhub/runtimes/__init__.py +3 -0
  182. digitalhub/runtimes/_base.py +5 -1
  183. digitalhub/runtimes/builder.py +22 -1
  184. digitalhub/runtimes/enums.py +4 -0
  185. digitalhub/stores/__init__.py +3 -0
  186. digitalhub/stores/client/__init__.py +15 -0
  187. digitalhub/stores/client/_base/__init__.py +3 -0
  188. digitalhub/stores/client/_base/api_builder.py +18 -0
  189. digitalhub/stores/client/_base/client.py +97 -0
  190. digitalhub/stores/client/_base/key_builder.py +32 -0
  191. digitalhub/stores/client/_base/params_builder.py +18 -0
  192. digitalhub/stores/client/api.py +14 -5
  193. digitalhub/stores/client/builder.py +7 -1
  194. digitalhub/stores/client/dhcore/__init__.py +3 -0
  195. digitalhub/stores/client/dhcore/api_builder.py +21 -0
  196. digitalhub/stores/client/dhcore/client.py +329 -70
  197. digitalhub/stores/client/dhcore/configurator.py +489 -193
  198. digitalhub/stores/client/dhcore/enums.py +7 -0
  199. digitalhub/stores/client/dhcore/error_parser.py +39 -1
  200. digitalhub/stores/client/dhcore/key_builder.py +4 -0
  201. digitalhub/stores/client/dhcore/models.py +4 -0
  202. digitalhub/stores/client/dhcore/params_builder.py +117 -17
  203. digitalhub/stores/client/dhcore/utils.py +44 -22
  204. digitalhub/stores/client/local/__init__.py +3 -0
  205. digitalhub/stores/client/local/api_builder.py +21 -0
  206. digitalhub/stores/client/local/client.py +10 -8
  207. digitalhub/stores/client/local/enums.py +4 -0
  208. digitalhub/stores/client/local/key_builder.py +4 -0
  209. digitalhub/stores/client/local/params_builder.py +4 -0
  210. digitalhub/stores/credentials/__init__.py +3 -0
  211. digitalhub/stores/credentials/api.py +35 -0
  212. digitalhub/stores/credentials/configurator.py +210 -0
  213. digitalhub/stores/credentials/enums.py +68 -0
  214. digitalhub/stores/credentials/handler.py +176 -0
  215. digitalhub/stores/credentials/ini_module.py +164 -0
  216. digitalhub/stores/credentials/store.py +81 -0
  217. digitalhub/stores/data/__init__.py +3 -0
  218. digitalhub/stores/data/_base/__init__.py +3 -0
  219. digitalhub/stores/data/_base/store.py +31 -9
  220. digitalhub/stores/data/api.py +53 -9
  221. digitalhub/stores/data/builder.py +94 -41
  222. digitalhub/stores/data/enums.py +4 -0
  223. digitalhub/stores/data/local/__init__.py +3 -0
  224. digitalhub/stores/data/local/store.py +8 -7
  225. digitalhub/stores/data/remote/__init__.py +3 -0
  226. digitalhub/stores/data/remote/store.py +8 -7
  227. digitalhub/stores/data/s3/__init__.py +3 -0
  228. digitalhub/stores/data/s3/configurator.py +69 -80
  229. digitalhub/stores/data/s3/store.py +73 -81
  230. digitalhub/stores/data/s3/utils.py +14 -10
  231. digitalhub/stores/data/sql/__init__.py +3 -0
  232. digitalhub/stores/data/sql/configurator.py +80 -73
  233. digitalhub/stores/data/sql/store.py +195 -102
  234. digitalhub/stores/readers/__init__.py +3 -0
  235. digitalhub/stores/readers/data/__init__.py +3 -0
  236. digitalhub/stores/readers/data/_base/__init__.py +3 -0
  237. digitalhub/stores/readers/data/_base/builder.py +4 -0
  238. digitalhub/stores/readers/data/_base/reader.py +4 -0
  239. digitalhub/stores/readers/data/api.py +4 -0
  240. digitalhub/stores/readers/data/factory.py +4 -0
  241. digitalhub/stores/readers/data/pandas/__init__.py +3 -0
  242. digitalhub/stores/readers/data/pandas/builder.py +4 -0
  243. digitalhub/stores/readers/data/pandas/reader.py +4 -0
  244. digitalhub/stores/readers/query/__init__.py +3 -0
  245. digitalhub/utils/__init__.py +3 -0
  246. digitalhub/utils/enums.py +4 -0
  247. digitalhub/utils/exceptions.py +10 -0
  248. digitalhub/utils/file_utils.py +57 -30
  249. digitalhub/utils/generic_utils.py +45 -33
  250. digitalhub/utils/git_utils.py +28 -14
  251. digitalhub/utils/io_utils.py +23 -18
  252. digitalhub/utils/logger.py +4 -0
  253. digitalhub/utils/types.py +4 -0
  254. digitalhub/utils/uri_utils.py +35 -31
  255. digitalhub-0.13.0.dist-info/METADATA +301 -0
  256. digitalhub-0.13.0.dist-info/RECORD +259 -0
  257. digitalhub-0.13.0.dist-info/licenses/AUTHORS +5 -0
  258. digitalhub-0.13.0.dist-info/licenses/LICENSE +201 -0
  259. digitalhub/entities/_commons/types.py +0 -5
  260. digitalhub/stores/configurator/__init__.py +0 -0
  261. digitalhub/stores/configurator/api.py +0 -31
  262. digitalhub/stores/configurator/configurator.py +0 -198
  263. digitalhub/stores/configurator/credentials_store.py +0 -65
  264. digitalhub/stores/configurator/enums.py +0 -21
  265. digitalhub/stores/configurator/ini_module.py +0 -128
  266. digitalhub/stores/data/s3/enums.py +0 -16
  267. digitalhub/stores/data/sql/enums.py +0 -16
  268. digitalhub/stores/data/utils.py +0 -34
  269. digitalhub-0.11.0b7.dist-info/METADATA +0 -259
  270. digitalhub-0.11.0b7.dist-info/RECORD +0 -261
  271. digitalhub-0.11.0b7.dist-info/licenses/LICENSE.txt +0 -216
  272. {digitalhub-0.11.0b7.dist-info → digitalhub-0.13.0.dist-info}/WHEEL +0 -0
@@ -1,198 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import os
4
-
5
- from digitalhub.stores.configurator.credentials_store import CredentialsStore
6
- from digitalhub.stores.configurator.enums import SetCreds
7
- from digitalhub.stores.configurator.ini_module import load_from_file, read_env_from_file, set_current_env, write_config
8
-
9
-
10
- class EnvConfigurator:
11
- """
12
- Configurator object used to configure clients and store credentials.
13
- """
14
-
15
- def __init__(self) -> None:
16
- # Store
17
- self._creds_store = CredentialsStore()
18
-
19
- # Current credentials set (__default by default)
20
- self._environment = os.getenv(SetCreds.DH_ENV.value, SetCreds.DEFAULT.value)
21
-
22
- ##############################
23
- # Public methods
24
- ##############################
25
-
26
- def set_current_env(self, creds_set: str) -> None:
27
- """
28
- Set the current credentials set.
29
-
30
- Parameters
31
- ----------
32
- creds_set : str
33
- Credentials set name.
34
-
35
- Returns
36
- -------
37
- None
38
- """
39
- self._environment = creds_set
40
- set_current_env(creds_set)
41
-
42
- def get_current_env(self) -> str:
43
- """
44
- Get the current credentials set.
45
-
46
- Returns
47
- -------
48
- str
49
- Credentials set name.
50
- """
51
- return self._environment
52
-
53
- ##############################
54
- # Private methods
55
- ##############################
56
-
57
- def load_var(self, var_name: str) -> str | None:
58
- """
59
- Get env variable from credentials store, env or file (in order).
60
-
61
- Parameters
62
- ----------
63
- var_name : str
64
- Environment variable name.
65
-
66
- Returns
67
- -------
68
- str | None
69
- Environment variable value.
70
- """
71
- var = self.get_credential(var_name)
72
- if var is None:
73
- var = self.load_from_env(var_name)
74
- if var is None:
75
- var = self.load_from_file(var_name)
76
- return var
77
-
78
- def load_from_env(self, var: str) -> str | None:
79
- """
80
- Load variable from env.
81
-
82
- Parameters
83
- ----------
84
- var : str
85
- Environment variable name.
86
-
87
- Returns
88
- -------
89
- str | None
90
- Environment variable value.
91
- """
92
- env_var = os.getenv(var)
93
- if env_var != "":
94
- return env_var
95
-
96
- def load_from_file(self, var: str) -> str | None:
97
- """
98
- Load variable from config file.
99
-
100
- Parameters
101
- ----------
102
- var : str
103
- Environment variable name.
104
-
105
- Returns
106
- -------
107
- str | None
108
- Environment variable value.
109
- """
110
- self._environment = read_env_from_file()
111
- return load_from_file(var)
112
-
113
- def write_env(self, key_to_include: list[str] | None = None) -> None:
114
- """
115
- Write the env variables to the .dhcore file.
116
- It will overwrite any existing env variables.
117
-
118
- Parameters
119
- ----------
120
- key_to_include : list[str]
121
- List of keys to include.
122
-
123
- Returns
124
- -------
125
- None
126
- """
127
- if key_to_include is None:
128
- key_to_include = []
129
- creds = self.get_credential_list(key_to_include)
130
- write_config(creds, self._environment)
131
-
132
- ##############################
133
- # Credentials store methods
134
- ##############################
135
-
136
- def set_credential(self, key: str, value: str) -> None:
137
- """
138
- Register a credential value.
139
-
140
- Parameters
141
- ----------
142
- key : str
143
- The key.
144
- value : str
145
- The value.
146
-
147
- Returns
148
- -------
149
- None
150
- """
151
- self._creds_store.set(self._environment, key, value)
152
-
153
- def get_credential(self, key: str) -> dict:
154
- """
155
- Get single credential value from key.
156
-
157
- Parameters
158
- ----------
159
- key : str
160
- The key.
161
-
162
- Returns
163
- -------
164
- dict
165
- The credential.
166
- """
167
- return self._creds_store.get(self._environment, key)
168
-
169
- def get_all_credentials(self) -> dict:
170
- """
171
- Get all the credentials from the current credentials set.
172
-
173
- Returns
174
- -------
175
- dict
176
- The credentials.
177
- """
178
- return self._creds_store.get_all(self._environment)
179
-
180
- def get_credential_list(self, keys: list[str]) -> list[str]:
181
- """
182
- Get the list of credentials.
183
-
184
- Parameters
185
- ----------
186
- keys : list[str]
187
- The list of keys.
188
-
189
- Returns
190
- -------
191
- list[str]
192
- The list of credentials.
193
- """
194
- return {k: v for k, v in self.get_all_credentials().items() if k in keys}
195
-
196
-
197
- # Define global configurator
198
- configurator = EnvConfigurator()
@@ -1,65 +0,0 @@
1
- from __future__ import annotations
2
-
3
-
4
- class CredentialsStore:
5
- """
6
- Credentials store to store and retrieve credentials.
7
- """
8
-
9
- def __init__(self) -> None:
10
- self._credentials: dict[str, dict] = {}
11
-
12
- def set(self, profile: str, key: str, value: str) -> None:
13
- """
14
- Set credentials.
15
-
16
- Parameters
17
- ----------
18
- profile : str
19
- The profile of the credentials.
20
- key : str
21
- The key of the credentials.
22
- value : str
23
- The value of the credentials.
24
-
25
- Returns
26
- -------
27
- None
28
- """
29
- if profile not in self._credentials:
30
- self._credentials[profile] = {}
31
- self._credentials[profile][key] = value
32
-
33
- def get(self, profile: str, key: str) -> str | None:
34
- """
35
- Get credentials.
36
-
37
- Parameters
38
- ----------
39
- profile : str
40
- The profile of the credentials.
41
- key : str
42
- The key of the credentials.
43
-
44
- Returns
45
- -------
46
- str | None
47
- The value of the credentials.
48
- """
49
- return self._credentials.get(profile, {}).get(key)
50
-
51
- def get_all(self, profile: str) -> dict[str, str]:
52
- """
53
- Get all credentials.
54
-
55
- Parameters
56
- ----------
57
- profile : str
58
- The profile of the credentials.
59
-
60
- Returns
61
- -------
62
- dict[str, str]
63
- The credentials.
64
- """
65
- return self._credentials.get(profile, {})
@@ -1,21 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from enum import Enum
4
-
5
-
6
- class CredsOrigin(Enum):
7
- """
8
- List credential origins.
9
- """
10
-
11
- ENV = "env"
12
- FILE = "file"
13
-
14
-
15
- class SetCreds(Enum):
16
- """
17
- List supported environments.
18
- """
19
-
20
- DEFAULT = "__default"
21
- DH_ENV = "DH_NAME"
@@ -1,128 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from configparser import ConfigParser
4
- from pathlib import Path
5
-
6
- from digitalhub.utils.exceptions import ClientError
7
-
8
- # File where to write DHCORE_ACCESS_TOKEN and DHCORE_REFRESH_TOKEN
9
- # It's used because we inject the variables in jupyter env,
10
- # but refresh token is only available once. Is it's used, we cannot
11
- # overwrite it with coder, so we need to store the new one in a file,
12
- # preserved for jupyter restart
13
- ENV_FILE = Path.home() / ".dhcore.ini"
14
-
15
-
16
- def load_file() -> ConfigParser:
17
- """
18
- Load current credentials set from the .dhcore.ini file.
19
-
20
- Returns
21
- -------
22
- ConfigParser
23
- Credentials set name.
24
- """
25
- try:
26
- file = ConfigParser()
27
- file.read(ENV_FILE)
28
- return file
29
- except Exception as e:
30
- raise ClientError(f"Failed to read env file: {e}")
31
-
32
-
33
- def load_from_file(var: str) -> str | None:
34
- """
35
- Load variable from config file.
36
-
37
- Parameters
38
- ----------
39
- profile : str
40
- Credentials set name.
41
- var : str
42
- Environment variable name.
43
-
44
- Returns
45
- -------
46
- str | None
47
- Environment variable value.
48
- """
49
- try:
50
- cfg = load_file()
51
- profile = cfg["DEFAULT"]["current_environment"]
52
- return cfg[profile].get(var)
53
- except KeyError:
54
- return
55
-
56
-
57
- def write_config(creds: dict, environment: str) -> None:
58
- """
59
- Write the env variables to the .dhcore.ini file.
60
- It will overwrite any existing env variables.
61
-
62
- Parameters
63
- ----------
64
- creds : dict
65
- Credentials.
66
- environment : str
67
- Credentials set name.
68
-
69
- Returns
70
- -------
71
- None
72
- """
73
- try:
74
- cfg = load_file()
75
-
76
- sections = cfg.sections()
77
- if environment not in sections:
78
- cfg.add_section(environment)
79
-
80
- cfg["DEFAULT"]["current_environment"] = environment
81
- for k, v in creds.items():
82
- cfg[environment][k] = v
83
-
84
- ENV_FILE.touch(exist_ok=True)
85
- with open(ENV_FILE, "w") as inifile:
86
- cfg.write(inifile)
87
-
88
- except Exception as e:
89
- raise ClientError(f"Failed to write env file: {e}")
90
-
91
-
92
- def set_current_env(environment: str) -> None:
93
- """
94
- Set the current credentials set.
95
-
96
- Parameters
97
- ----------
98
- environment : str
99
- Credentials set name.
100
-
101
- Returns
102
- -------
103
- None
104
- """
105
- try:
106
- cfg = load_file()
107
- cfg["DEFAULT"]["current_environment"] = environment
108
- with open(ENV_FILE, "w") as inifile:
109
- cfg.write(inifile)
110
-
111
- except Exception as e:
112
- raise ClientError(f"Failed to write env file: {e}")
113
-
114
-
115
- def read_env_from_file() -> str | None:
116
- """
117
- Read the current credentials set from the .dhcore.ini file.
118
-
119
- Returns
120
- -------
121
- str
122
- Credentials set name.
123
- """
124
- try:
125
- cfg = load_file()
126
- return cfg["DEFAULT"]["current_environment"]
127
- except Exception:
128
- return None
@@ -1,16 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from enum import Enum
4
-
5
-
6
- class S3StoreEnv(Enum):
7
- """
8
- S3Store environment
9
- """
10
-
11
- ENDPOINT_URL = "AWS_ENDPOINT_URL"
12
- ACCESS_KEY_ID = "AWS_ACCESS_KEY_ID"
13
- SECRET_ACCESS_KEY = "AWS_SECRET_ACCESS_KEY"
14
- SESSION_TOKEN = "AWS_SESSION_TOKEN"
15
- REGION = "AWS_REGION"
16
- SIGNATURE_VERSION = "S3_SIGNATURE_VERSION"
@@ -1,16 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from enum import Enum
4
-
5
-
6
- class SqlStoreEnv(Enum):
7
- """
8
- SqlStore environment
9
- """
10
-
11
- HOST = "DB_HOST"
12
- PORT = "DB_PORT"
13
- USERNAME = "DB_USERNAME"
14
- PASSWORD = "DB_PASSWORD"
15
- DATABASE = "DB_DATABASE"
16
- PG_SCHEMA = "DB_SCHEMA"
@@ -1,34 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from digitalhub.context.api import get_context
4
- from digitalhub.stores.configurator.configurator import configurator
5
- from digitalhub.stores.data.enums import StoreEnv
6
-
7
-
8
- def get_default_store(project: str) -> str:
9
- """
10
- Get default store URI.
11
-
12
- Parameters
13
- ----------
14
- project : str
15
- Project name.
16
-
17
- Returns
18
- -------
19
- str
20
- Default store URI.
21
- """
22
- context = get_context(project)
23
- store = context.config.get(StoreEnv.DEFAULT_FILES_STORE.value.lower())
24
- if store is not None:
25
- return store
26
- store = configurator.load_var(StoreEnv.DEFAULT_FILES_STORE.value)
27
- if store is None or store == "":
28
- raise ValueError(
29
- "No default store found. "
30
- "Please set a default store "
31
- f"in your environment (e.g. export {StoreEnv.DEFAULT_FILES_STORE.value}=) "
32
- "or set it in project config."
33
- )
34
- return store