digitalhub-runtime-python 0.8.0b6__tar.gz → 0.8.0b7__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 (56) hide show
  1. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/PKG-INFO +1 -1
  2. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/run/python_run/entity.py +79 -47
  3. digitalhub_runtime_python-0.8.0b7/digitalhub_runtime_python/entities/run/python_run/status.py +25 -0
  4. digitalhub_runtime_python-0.8.0b7/digitalhub_runtime_python/entities/run/python_run/utils.py +34 -0
  5. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/runtimes/runtime.py +0 -1
  6. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python.egg-info/PKG-INFO +1 -1
  7. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python.egg-info/SOURCES.txt +1 -0
  8. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/pyproject.toml +2 -2
  9. digitalhub_runtime_python-0.8.0b6/digitalhub_runtime_python/entities/run/python_run/status.py +0 -40
  10. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/LICENSE.txt +0 -0
  11. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/README.md +0 -0
  12. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/__init__.py +0 -0
  13. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/__init__.py +0 -0
  14. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/_base/__init__.py +0 -0
  15. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/_base/runtime_entity/__init__.py +0 -0
  16. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/_base/runtime_entity/builder.py +0 -0
  17. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/function/__init__.py +0 -0
  18. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/function/python/__init__.py +0 -0
  19. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/function/python/builder.py +0 -0
  20. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/function/python/entity.py +0 -0
  21. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/function/python/models.py +0 -0
  22. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/function/python/spec.py +0 -0
  23. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/function/python/status.py +0 -0
  24. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/run/__init__.py +0 -0
  25. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/run/python_run/__init__.py +0 -0
  26. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/run/python_run/builder.py +0 -0
  27. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/run/python_run/spec.py +0 -0
  28. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/__init__.py +0 -0
  29. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_build/__init__.py +0 -0
  30. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_build/builder.py +0 -0
  31. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_build/entity.py +0 -0
  32. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_build/spec.py +0 -0
  33. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_build/status.py +0 -0
  34. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_job/__init__.py +0 -0
  35. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_job/builder.py +0 -0
  36. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_job/entity.py +0 -0
  37. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_job/models.py +0 -0
  38. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_job/spec.py +0 -0
  39. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_job/status.py +0 -0
  40. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_serve/__init__.py +0 -0
  41. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_serve/builder.py +0 -0
  42. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_serve/entity.py +0 -0
  43. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_serve/spec.py +0 -0
  44. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/entities/task/python_serve/status.py +0 -0
  45. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/runtimes/__init__.py +0 -0
  46. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/runtimes/builder.py +0 -0
  47. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/utils/configuration.py +0 -0
  48. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/utils/env.py +0 -0
  49. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/utils/inputs.py +0 -0
  50. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/utils/nuclio_configuration.py +0 -0
  51. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/utils/outputs.py +0 -0
  52. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python/utils/utils.py +0 -0
  53. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python.egg-info/dependency_links.txt +0 -0
  54. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python.egg-info/requires.txt +0 -0
  55. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/digitalhub_runtime_python.egg-info/top_level.txt +0 -0
  56. {digitalhub_runtime_python-0.8.0b6 → digitalhub_runtime_python-0.8.0b7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: digitalhub-runtime-python
3
- Version: 0.8.0b6
3
+ Version: 0.8.0b7
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
@@ -4,8 +4,11 @@ import typing
4
4
  from typing import Any
5
5
 
6
6
  import requests
7
+ from digitalhub_runtime_python.entities.run.python_run.utils import get_getter_for_material
7
8
 
8
9
  from digitalhub.entities.run._base.entity import Run
10
+ from digitalhub.entities.utils.utils import get_entity_type_from_key
11
+ from digitalhub.utils.exceptions import EntityError
9
12
 
10
13
  if typing.TYPE_CHECKING:
11
14
  from digitalhub_runtime_python.entities.run.python_run.spec import RunSpecPythonRun
@@ -46,7 +49,7 @@ class RunPythonRun(Run):
46
49
  self.refresh()
47
50
  self.spec.inputs = self.inputs(as_dict=True)
48
51
 
49
- def inputs(self, as_dict: bool = False) -> list[dict]:
52
+ def inputs(self, as_dict: bool = False) -> dict:
50
53
  """
51
54
  Get inputs passed in spec as objects or as dictionaries.
52
55
 
@@ -57,41 +60,54 @@ class RunPythonRun(Run):
57
60
 
58
61
  Returns
59
62
  -------
60
- list[dict]
61
- List of input objects.
63
+ dict
64
+ Inputs.
62
65
  """
63
- return self.spec.get_inputs(as_dict=as_dict)
66
+ inputs = {}
67
+ if self.inputs is None:
68
+ return inputs
64
69
 
65
- def results(self) -> dict:
66
- """
67
- Get results from runtime execution.
70
+ for parameter, key in self.spec.inputs.items():
71
+ entity_type = get_entity_type_from_key(key)
72
+ entity = get_getter_for_material(entity_type)(key)
73
+ if as_dict:
74
+ entity = entity.to_dict()
75
+ inputs[parameter] = entity
68
76
 
69
- Returns
70
- -------
71
- dict
72
- Results.
73
- """
74
- return self.status.get_results()
77
+ return inputs
75
78
 
76
- def result(self, key: str) -> Any:
79
+ def output(
80
+ self,
81
+ output_name: str,
82
+ as_key: bool = False,
83
+ as_dict: bool = False,
84
+ ) -> MaterialEntity | dict | str | None:
77
85
  """
78
- Get result from runtime execution by key.
86
+ Get run's output by name.
79
87
 
80
88
  Parameters
81
89
  ----------
82
- key : str
90
+ output_name : str
83
91
  Key of the result.
92
+ as_key : bool
93
+ If True, return result as key.
94
+ as_dict : bool
95
+ If True, return result as dictionary.
84
96
 
85
97
  Returns
86
98
  -------
87
- Any
99
+ Entity | dict | str | None
88
100
  Result.
89
101
  """
90
- return self.results().get(key)
102
+ return self.outputs(as_key=as_key, as_dict=as_dict).get(output_name)
91
103
 
92
- def outputs(self, as_key: bool = False, as_dict: bool = False) -> dict:
104
+ def outputs(
105
+ self,
106
+ as_key: bool = False,
107
+ as_dict: bool = False,
108
+ ) -> MaterialEntity | dict | str | None:
93
109
  """
94
- Get run objects results.
110
+ Get run's outputs.
95
111
 
96
112
  Parameters
97
113
  ----------
@@ -105,48 +121,66 @@ class RunPythonRun(Run):
105
121
  dict
106
122
  List of output objects.
107
123
  """
108
- return self.status.get_outputs(as_key=as_key, as_dict=as_dict)
124
+ outputs = {}
125
+ if self.status.outputs is None:
126
+ return outputs
127
+
128
+ for parameter, key in self.status.outputs.items():
129
+ entity_type = get_entity_type_from_key(key)
130
+ entity = get_getter_for_material(entity_type)(key)
131
+ if as_key:
132
+ entity = entity.key
133
+ if as_dict:
134
+ entity = entity.to_dict()
135
+ outputs[parameter] = entity
109
136
 
110
- def output(self, key: str, as_key: bool = False, as_dict: bool = False) -> MaterialEntity | dict | str | None:
137
+ return outputs
138
+
139
+ def result(self, result_name: str) -> Any:
111
140
  """
112
- Get run object result by key.
141
+ Get result by name.
113
142
 
114
143
  Parameters
115
144
  ----------
116
- key : str
117
- Key of the result.
118
- as_key : bool
119
- If True, return result as key.
120
- as_dict : bool
121
- If True, return result as dictionary.
145
+ result_name : str
146
+ Name of the result.
122
147
 
123
148
  Returns
124
149
  -------
125
- Entity | dict | str | None
126
- Result.
150
+ Any
151
+ The result.
127
152
  """
128
- return self.outputs(as_key=as_key, as_dict=as_dict).get(key)
153
+ return self.results().get(result_name)
129
154
 
130
- def values(self) -> dict:
155
+ def results(self) -> dict:
131
156
  """
132
- Get values from runtime execution.
157
+ Get results.
133
158
 
134
159
  Returns
135
160
  -------
136
161
  dict
137
- Values from backend.
162
+ The results.
138
163
  """
139
- value_list = getattr(self.spec, "values", [])
140
- value_list = value_list if value_list is not None else []
141
- return self.status.get_values(value_list)
164
+ if self.status.results is None:
165
+ return {}
166
+ return self.status.results
142
167
 
143
- def invoke(self, **kwargs) -> requests.Response:
168
+ def invoke(
169
+ self,
170
+ method: str = "POST",
171
+ url: str | None = None,
172
+ **kwargs,
173
+ ) -> requests.Response:
144
174
  """
145
175
  Invoke run.
146
176
 
147
177
  Parameters
148
178
  ----------
149
- kwargs
179
+ method : str
180
+ Method of the request.
181
+ url : str
182
+ URL of the request.
183
+ **kwargs : dict
150
184
  Keyword arguments to pass to the request.
151
185
 
152
186
  Returns
@@ -154,10 +188,8 @@ class RunPythonRun(Run):
154
188
  requests.Response
155
189
  Response from service.
156
190
  """
157
- if not self._context().local and not self.spec.local_execution:
158
- local = False
159
- else:
160
- local = True
161
- if kwargs is None:
162
- kwargs = {}
163
- return self.status.invoke(local, **kwargs)
191
+ if self._context().local:
192
+ raise EntityError("Invoke not supported locally.")
193
+ if url is None:
194
+ url = f"http://{self.status.service.get('url')}"
195
+ return requests.request(method=method, url=url, **kwargs)
@@ -0,0 +1,25 @@
1
+ from __future__ import annotations
2
+
3
+ from digitalhub.entities.run._base.status import RunStatus
4
+
5
+
6
+ class RunStatusPythonRun(RunStatus):
7
+ """
8
+ RunStatusPythonRun status.
9
+ """
10
+
11
+ def __init__(
12
+ self,
13
+ state: str,
14
+ message: str | None = None,
15
+ transitions: list[dict] | None = None,
16
+ k8s: dict | None = None,
17
+ outputs: dict | None = None,
18
+ results: dict | None = None,
19
+ service: dict | None = None,
20
+ **kwargs,
21
+ ) -> None:
22
+ super().__init__(state, message, transitions, k8s, **kwargs)
23
+ self.outputs = outputs
24
+ self.results = results
25
+ self.service = service
@@ -0,0 +1,34 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Callable
4
+
5
+ from digitalhub.entities.artifact.crud import get_artifact
6
+ from digitalhub.entities.dataitem.crud import get_dataitem
7
+ from digitalhub.entities.model.crud import get_model
8
+ from digitalhub.entities.utils.entity_types import EntityTypes
9
+
10
+
11
+ def get_getter_for_material(entity_type: str) -> Callable:
12
+ """
13
+ Return appropriate getter function.
14
+
15
+ Parameters
16
+ ----------
17
+ entity_type : str
18
+ The entity type.
19
+
20
+ Returns
21
+ -------
22
+ Callable
23
+ The getter function.
24
+ """
25
+ if entity_type == EntityTypes.ARTIFACT.value:
26
+ return get_artifact
27
+
28
+ if entity_type == EntityTypes.DATAITEM.value:
29
+ return get_dataitem
30
+
31
+ if entity_type == EntityTypes.MODEL.value:
32
+ return get_model
33
+
34
+ raise ValueError(f"Unhandled entity type: {entity_type}")
@@ -1,6 +1,5 @@
1
1
  from __future__ import annotations
2
2
 
3
- import typing
4
3
  from typing import Callable
5
4
 
6
5
  from digitalhub_runtime_python.utils.configuration import get_function_from_source
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: digitalhub-runtime-python
3
- Version: 0.8.0b6
3
+ Version: 0.8.0b7
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
@@ -24,6 +24,7 @@ digitalhub_runtime_python/entities/run/python_run/builder.py
24
24
  digitalhub_runtime_python/entities/run/python_run/entity.py
25
25
  digitalhub_runtime_python/entities/run/python_run/spec.py
26
26
  digitalhub_runtime_python/entities/run/python_run/status.py
27
+ digitalhub_runtime_python/entities/run/python_run/utils.py
27
28
  digitalhub_runtime_python/entities/task/__init__.py
28
29
  digitalhub_runtime_python/entities/task/python_build/__init__.py
29
30
  digitalhub_runtime_python/entities/task/python_build/builder.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "digitalhub-runtime-python"
7
- version = "0.8.0b6"
7
+ version = "0.8.0b7"
8
8
  description = "Python runtime for DHCore"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -40,7 +40,7 @@ line-length = 120
40
40
  convention = "numpy"
41
41
 
42
42
  [tool.bumpver]
43
- current_version = "0.8.0b6"
43
+ current_version = "0.8.0b7"
44
44
  version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
45
45
  commit_message = "Bump version {old_version} -> {new_version}"
46
46
  commit = false
@@ -1,40 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import requests
4
-
5
- from digitalhub.entities.run._base.status import RunStatus
6
- from digitalhub.utils.exceptions import EntityError
7
-
8
-
9
- class RunStatusPythonRun(RunStatus):
10
- """
11
- RunStatusPythonRun status.
12
- """
13
-
14
- def invoke(self, local: bool, **kwargs) -> requests.Response:
15
- """
16
- Invoke running process.
17
-
18
- Parameters
19
- ----------
20
- kwargs
21
- Keyword arguments to pass to the request.
22
-
23
- Returns
24
- -------
25
- requests.Response
26
- Response from service.
27
- """
28
- try:
29
- if local:
30
- raise EntityError("Invoke not supported locally.")
31
-
32
- method = kwargs.pop("method", "POST")
33
- url = kwargs.get("url", "http://" + self.service.get("url"))
34
-
35
- response = requests.request(method=method, url=url, **kwargs)
36
- response.raise_for_status()
37
- return response
38
- except Exception as e:
39
- msg = f"Something got wrong during model serving. Exception: {e.__class__}. Error: {e.args}"
40
- raise EntityError(msg)