digitalhub-runtime-python 0.5.0b4__tar.gz → 0.5.0b6__tar.gz
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.
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/PKG-INFO +2 -2
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/tasks/spec.py +4 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/runtimes/runtime.py +18 -10
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/utils/outputs.py +28 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python.egg-info/PKG-INFO +2 -2
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python.egg-info/SOURCES.txt +0 -1
- digitalhub_runtime_python-0.5.0b6/digitalhub_runtime_python.egg-info/requires.txt +1 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/pyproject.toml +3 -3
- digitalhub_runtime_python-0.5.0b4/digitalhub_runtime_python/utils/functions.py +0 -24
- digitalhub_runtime_python-0.5.0b4/digitalhub_runtime_python.egg-info/requires.txt +0 -1
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/LICENSE.txt +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/README.md +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/__init__.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/__init__.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/functions/__init__.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/functions/metadata.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/functions/spec.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/functions/status.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/runs/__init__.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/runs/metadata.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/runs/spec.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/runs/status.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/tasks/__init__.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/tasks/metadata.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/tasks/models.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/tasks/status.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/runtimes/__init__.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/utils/configuration.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/utils/inputs.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/utils/utils.py +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python.egg-info/dependency_links.txt +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python.egg-info/top_level.txt +0 -0
- {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: digitalhub-runtime-python
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.0b6
|
|
4
4
|
Summary: Python runtime for DHCore
|
|
5
5
|
Author-email: Fondazione Bruno Kessler <dslab@fbk.eu>, Matteo Martini <mmartini@fbk.eu>
|
|
6
6
|
License: Apache License
|
|
@@ -228,6 +228,6 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
228
228
|
Requires-Python: >=3.9
|
|
229
229
|
Description-Content-Type: text/markdown
|
|
230
230
|
License-File: LICENSE.txt
|
|
231
|
-
Requires-Dist: digitalhub[ml]
|
|
231
|
+
Requires-Dist: digitalhub[ml]<0.6,~=0.5.0b
|
|
232
232
|
|
|
233
233
|
# SDK for DHCore
|
|
@@ -48,6 +48,8 @@ class TaskSpecJob(TaskSpecPythonBase):
|
|
|
48
48
|
"""
|
|
49
49
|
super().__init__(function, k8s)
|
|
50
50
|
|
|
51
|
+
k8s = k8s if k8s is not None else {}
|
|
52
|
+
|
|
51
53
|
self.backoff_limit = k8s.get("backoff_limit")
|
|
52
54
|
self.schedule = k8s.get("schedule")
|
|
53
55
|
|
|
@@ -76,6 +78,8 @@ class TaskSpecBuild(TaskSpecPythonBase):
|
|
|
76
78
|
Constructor.
|
|
77
79
|
"""
|
|
78
80
|
super().__init__(function, k8s)
|
|
81
|
+
|
|
82
|
+
k8s = k8s if k8s is not None else {}
|
|
79
83
|
self.context_refs = context_refs
|
|
80
84
|
self.context_sources = context_sources
|
|
81
85
|
self.instructions = instructions
|
|
@@ -11,7 +11,7 @@ from digitalhub_core.utils.logger import LOGGER
|
|
|
11
11
|
from digitalhub_runtime_python.utils.configuration import get_function_from_source
|
|
12
12
|
from digitalhub_runtime_python.utils.functions import run_python
|
|
13
13
|
from digitalhub_runtime_python.utils.inputs import get_inputs_parameters
|
|
14
|
-
from digitalhub_runtime_python.utils.outputs import build_status
|
|
14
|
+
from digitalhub_runtime_python.utils.outputs import build_status, parse_outputs
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class RuntimePython(Runtime):
|
|
@@ -63,8 +63,7 @@ class RuntimePython(Runtime):
|
|
|
63
63
|
Status of the executed run.
|
|
64
64
|
"""
|
|
65
65
|
LOGGER.info("Validating task.")
|
|
66
|
-
|
|
67
|
-
executable = self._get_executable(action)
|
|
66
|
+
self._validate_task(run)
|
|
68
67
|
|
|
69
68
|
LOGGER.info("Starting task.")
|
|
70
69
|
spec = run.get("spec")
|
|
@@ -74,16 +73,23 @@ class RuntimePython(Runtime):
|
|
|
74
73
|
fnc_args = self._collect_inputs(spec)
|
|
75
74
|
|
|
76
75
|
LOGGER.info("Configuring execution.")
|
|
77
|
-
fnc = self._configure_execution(spec)
|
|
76
|
+
fnc, wrapped = self._configure_execution(spec)
|
|
78
77
|
|
|
79
78
|
LOGGER.info("Executing run.")
|
|
80
|
-
|
|
79
|
+
if wrapped:
|
|
80
|
+
results: dict = self._execute(fnc, project, **fnc_args)
|
|
81
|
+
else:
|
|
82
|
+
exec_result = self._execute(fnc, **fnc_args)
|
|
83
|
+
LOGGER.info("Collecting outputs.")
|
|
84
|
+
results = parse_outputs(exec_result,
|
|
85
|
+
list(spec.get("outputs", {})),
|
|
86
|
+
list(spec.get("values", [])),
|
|
87
|
+
project)
|
|
81
88
|
|
|
82
|
-
LOGGER.info("Collecting outputs.")
|
|
83
89
|
status = build_status(
|
|
84
90
|
results,
|
|
85
|
-
spec.get("outputs"
|
|
86
|
-
spec.get("values"
|
|
91
|
+
spec.get("outputs"),
|
|
92
|
+
spec.get("values"),
|
|
87
93
|
)
|
|
88
94
|
|
|
89
95
|
# Return run status
|
|
@@ -141,7 +147,7 @@ class RuntimePython(Runtime):
|
|
|
141
147
|
# Configuration
|
|
142
148
|
####################
|
|
143
149
|
|
|
144
|
-
def _configure_execution(self, spec: dict) -> Callable:
|
|
150
|
+
def _configure_execution(self, spec: dict) -> tuple[Callable, bool]:
|
|
145
151
|
"""
|
|
146
152
|
Configure execution.
|
|
147
153
|
|
|
@@ -155,7 +161,9 @@ class RuntimePython(Runtime):
|
|
|
155
161
|
Callable
|
|
156
162
|
Function to execute.
|
|
157
163
|
"""
|
|
158
|
-
|
|
164
|
+
fnc = get_function_from_source(
|
|
159
165
|
self.root_path,
|
|
160
166
|
spec.get("source", {}),
|
|
161
167
|
)
|
|
168
|
+
return fnc, hasattr(fnc, '__wrapped__')
|
|
169
|
+
|
|
@@ -52,6 +52,34 @@ def collect_outputs(results: Any, outputs: list[str], project_name: str) -> dict
|
|
|
52
52
|
return objects
|
|
53
53
|
|
|
54
54
|
|
|
55
|
+
def parse_outputs(results: Any, run_outputs: list, run_values: list, project_name: str) -> dict:
|
|
56
|
+
"""
|
|
57
|
+
Parse outputs.
|
|
58
|
+
|
|
59
|
+
Parameters
|
|
60
|
+
----------
|
|
61
|
+
results : Any
|
|
62
|
+
Function outputs.
|
|
63
|
+
project : Project
|
|
64
|
+
Project object.
|
|
65
|
+
|
|
66
|
+
Returns
|
|
67
|
+
-------
|
|
68
|
+
dict
|
|
69
|
+
Function outputs.
|
|
70
|
+
"""
|
|
71
|
+
results_list = listify_results(results)
|
|
72
|
+
out_list = []
|
|
73
|
+
for idx, item in enumerate(results_list):
|
|
74
|
+
try:
|
|
75
|
+
if isinstance(item, (str, int, float, bool, bytes)):
|
|
76
|
+
out_list.append(run_values.pop(0))
|
|
77
|
+
else:
|
|
78
|
+
out_list.append(run_outputs.pop(0))
|
|
79
|
+
except IndexError:
|
|
80
|
+
out_list.append(f"output_{idx}")
|
|
81
|
+
return collect_outputs(results, out_list, project_name)
|
|
82
|
+
|
|
55
83
|
def listify_results(results: Any) -> list:
|
|
56
84
|
"""
|
|
57
85
|
Listify results.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: digitalhub-runtime-python
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.0b6
|
|
4
4
|
Summary: Python runtime for DHCore
|
|
5
5
|
Author-email: Fondazione Bruno Kessler <dslab@fbk.eu>, Matteo Martini <mmartini@fbk.eu>
|
|
6
6
|
License: Apache License
|
|
@@ -228,6 +228,6 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
228
228
|
Requires-Python: >=3.9
|
|
229
229
|
Description-Content-Type: text/markdown
|
|
230
230
|
License-File: LICENSE.txt
|
|
231
|
-
Requires-Dist: digitalhub[ml]
|
|
231
|
+
Requires-Dist: digitalhub[ml]<0.6,~=0.5.0b
|
|
232
232
|
|
|
233
233
|
# SDK for DHCore
|
|
@@ -24,7 +24,6 @@ digitalhub_runtime_python/entities/tasks/status.py
|
|
|
24
24
|
digitalhub_runtime_python/runtimes/__init__.py
|
|
25
25
|
digitalhub_runtime_python/runtimes/runtime.py
|
|
26
26
|
digitalhub_runtime_python/utils/configuration.py
|
|
27
|
-
digitalhub_runtime_python/utils/functions.py
|
|
28
27
|
digitalhub_runtime_python/utils/inputs.py
|
|
29
28
|
digitalhub_runtime_python/utils/outputs.py
|
|
30
29
|
digitalhub_runtime_python/utils/utils.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
digitalhub[ml]<0.6,~=0.5.0b
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "digitalhub-runtime-python"
|
|
7
|
-
version = "0.5.
|
|
7
|
+
version = "0.5.0b6"
|
|
8
8
|
description = "Python runtime for DHCore"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [
|
|
@@ -20,7 +20,7 @@ classifiers = [
|
|
|
20
20
|
keywords = ["data", "dataops", "kubernetes"]
|
|
21
21
|
requires-python = ">=3.9"
|
|
22
22
|
dependencies = [
|
|
23
|
-
"digitalhub[ml]
|
|
23
|
+
"digitalhub[ml]~=0.5.0b, <0.6",
|
|
24
24
|
]
|
|
25
25
|
|
|
26
26
|
[project.urls]
|
|
@@ -39,7 +39,7 @@ line-length = 120
|
|
|
39
39
|
convention = "numpy"
|
|
40
40
|
|
|
41
41
|
[tool.bumpver]
|
|
42
|
-
current_version = "0.5.
|
|
42
|
+
current_version = "0.5.0b6"
|
|
43
43
|
version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
|
|
44
44
|
commit_message = "Bump version {old_version} -> {new_version}"
|
|
45
45
|
commit = false
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import Callable
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
def run_python(func: Callable, *args, **kwargs) -> dict:
|
|
7
|
-
"""
|
|
8
|
-
Execute function.
|
|
9
|
-
|
|
10
|
-
Parameters
|
|
11
|
-
----------
|
|
12
|
-
func : Callable
|
|
13
|
-
Function.
|
|
14
|
-
args : tuple
|
|
15
|
-
Function arguments.
|
|
16
|
-
kwargs : dict
|
|
17
|
-
Function keyword arguments.
|
|
18
|
-
|
|
19
|
-
Returns
|
|
20
|
-
-------
|
|
21
|
-
dict
|
|
22
|
-
Outputs from the function.
|
|
23
|
-
"""
|
|
24
|
-
return func(*args, **kwargs)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
digitalhub[ml]==0.5.0b4
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|