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.
Files changed (33) hide show
  1. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/PKG-INFO +2 -2
  2. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/tasks/spec.py +4 -0
  3. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/runtimes/runtime.py +18 -10
  4. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/utils/outputs.py +28 -0
  5. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python.egg-info/PKG-INFO +2 -2
  6. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python.egg-info/SOURCES.txt +0 -1
  7. digitalhub_runtime_python-0.5.0b6/digitalhub_runtime_python.egg-info/requires.txt +1 -0
  8. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/pyproject.toml +3 -3
  9. digitalhub_runtime_python-0.5.0b4/digitalhub_runtime_python/utils/functions.py +0 -24
  10. digitalhub_runtime_python-0.5.0b4/digitalhub_runtime_python.egg-info/requires.txt +0 -1
  11. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/LICENSE.txt +0 -0
  12. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/README.md +0 -0
  13. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/__init__.py +0 -0
  14. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/__init__.py +0 -0
  15. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/functions/__init__.py +0 -0
  16. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/functions/metadata.py +0 -0
  17. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/functions/spec.py +0 -0
  18. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/functions/status.py +0 -0
  19. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/runs/__init__.py +0 -0
  20. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/runs/metadata.py +0 -0
  21. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/runs/spec.py +0 -0
  22. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/runs/status.py +0 -0
  23. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/tasks/__init__.py +0 -0
  24. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/tasks/metadata.py +0 -0
  25. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/tasks/models.py +0 -0
  26. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/entities/tasks/status.py +0 -0
  27. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/runtimes/__init__.py +0 -0
  28. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/utils/configuration.py +0 -0
  29. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/utils/inputs.py +0 -0
  30. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python/utils/utils.py +0 -0
  31. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python.egg-info/dependency_links.txt +0 -0
  32. {digitalhub_runtime_python-0.5.0b4 → digitalhub_runtime_python-0.5.0b6}/digitalhub_runtime_python.egg-info/top_level.txt +0 -0
  33. {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.0b4
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]==0.5.0b4
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
- action = self._validate_task(run)
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
- results = self._execute(executable, fnc, project, **fnc_args)
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
- return get_function_from_source(
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.0b4
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]==0.5.0b4
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.0b4"
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]==0.5.0b4",
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.0b4"
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