digitalhub-runtime-python 0.13.0b0__tar.gz → 0.14.0__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 (86) hide show
  1. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/scripts/cliff.toml +4 -3
  2. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/workflows/release.yml +1 -1
  3. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.gitignore +1 -1
  4. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/PKG-INFO +4 -4
  5. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/README.md +1 -1
  6. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/__init__.py +9 -5
  7. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/_base/runtime_entity/builder.py +46 -0
  8. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/_commons/enums.py +4 -2
  9. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/models.py +1 -0
  10. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/utils.py +5 -2
  11. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/run/python_run → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/_base}/builder.py +3 -3
  12. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/run/python_run → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/_base}/entity.py +7 -11
  13. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/build/builder.py +25 -0
  14. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/build/entity.py +36 -0
  15. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/build/spec.py +15 -0
  16. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/build/status.py +13 -0
  17. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/job/builder.py +25 -0
  18. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/job/entity.py +36 -0
  19. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/job/spec.py +15 -0
  20. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/job/status.py +13 -0
  21. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/serve/builder.py +25 -0
  22. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/serve/entity.py +36 -0
  23. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/serve/spec.py +15 -0
  24. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/serve/status.py +13 -0
  25. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_build → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/build}/builder.py +3 -3
  26. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_build → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/build}/entity.py +2 -2
  27. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/job/__init__.py +3 -0
  28. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_job → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/job}/builder.py +3 -3
  29. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_job → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/job}/entity.py +2 -2
  30. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/serve/__init__.py +3 -0
  31. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_serve → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/serve}/builder.py +3 -3
  32. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_serve → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/serve}/entity.py +2 -2
  33. digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/runtimes/__init__.py +3 -0
  34. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/runtimes/runtime.py +0 -4
  35. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/utils/configuration.py +3 -3
  36. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/utils/inputs.py +4 -4
  37. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/pyproject.toml +9 -7
  38. digitalhub_runtime_python-0.13.0b0/test/local/instances/entities/run/run-python+build.json → digitalhub_runtime_python-0.14.0/test/local/instances/entities/run/run-python+build:run.json +4 -12
  39. digitalhub_runtime_python-0.13.0b0/test/local/instances/entities/run/run-python+job.json → digitalhub_runtime_python-0.14.0/test/local/instances/entities/run/run-python+job:run.json +4 -12
  40. digitalhub_runtime_python-0.13.0b0/test/local/instances/entities/run/run-python+serve.json → digitalhub_runtime_python-0.14.0/test/local/instances/entities/run/run-python+serve:run.json +4 -12
  41. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/entities/task/task-python+build.json +4 -12
  42. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/entities/task/task-python+job.json +4 -12
  43. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/entities/task/task-python+serve.json +4 -12
  44. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/test_validate.py +2 -2
  45. digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/_base/runtime_entity/builder.py +0 -31
  46. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/scripts/bump.sh +0 -0
  47. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/scripts/changelog.sh +0 -0
  48. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/workflows/run_local_test.yml +0 -0
  49. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/workflows/test_release.yml +0 -0
  50. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/AUTHORS +0 -0
  51. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/CONTRIBUTING +0 -0
  52. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/COPYRIGHT +0 -0
  53. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/LICENSE +0 -0
  54. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/__init__.py +0 -0
  55. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/_base/__init__.py +0 -0
  56. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/_base/runtime_entity/__init__.py +0 -0
  57. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/_commons/__init__.py +0 -0
  58. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/__init__.py +0 -0
  59. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/__init__.py +0 -0
  60. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/builder.py +0 -0
  61. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/entity.py +0 -0
  62. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/spec.py +0 -0
  63. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/status.py +0 -0
  64. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/run/__init__.py +0 -0
  65. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/run/python_run → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/_base}/__init__.py +0 -0
  66. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/run/python_run → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/_base}/spec.py +0 -0
  67. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/run/python_run → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/_base}/status.py +0 -0
  68. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/run/python_run → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/_base}/utils.py +0 -0
  69. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/build}/__init__.py +0 -0
  70. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_build → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/job}/__init__.py +0 -0
  71. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_job → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/serve}/__init__.py +0 -0
  72. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_serve → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task}/__init__.py +0 -0
  73. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/runtimes → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/build}/__init__.py +0 -0
  74. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_build → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/build}/spec.py +0 -0
  75. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_build → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/build}/status.py +0 -0
  76. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_job → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/job}/models.py +0 -0
  77. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_job → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/job}/spec.py +0 -0
  78. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_job → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/job}/status.py +0 -0
  79. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_serve → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/serve}/spec.py +0 -0
  80. {digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/task/python_serve → digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/serve}/status.py +0 -0
  81. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/runtimes/builder.py +0 -0
  82. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/utils/outputs.py +0 -0
  83. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/utils/utils.py +0 -0
  84. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/entities/function/function-python-git.json +0 -0
  85. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/entities/function/function-python-local.json +0 -0
  86. {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/entities/function/function-python-zip.json +0 -0
@@ -62,9 +62,10 @@ commit_preprocessors = [
62
62
  commit_parsers = [
63
63
  { message = "^feat", group = "<!-- 0 --> Features" },
64
64
  { message = "^fix", group = "<!-- 1 --> Bug Fixes" },
65
- { message = "^perf", group = "<!-- 3 --> Performance" },
66
- { message = "^build", group = "<!-- 4 --> Build" },
67
- { message = "^doc", group = "<!-- 5 --> Documentation" },
65
+ { message = "^perf", group = "<!-- 2 --> Performance" },
66
+ { message = "^build", group = "<!-- 3 --> Build" },
67
+ { message = "^doc", group = "<!-- 4 --> Documentation" },
68
+ { message = "^BREAKING", group = "<!-- 5 --> Breaking Changes" },
68
69
  { message = ".*", group = "<!-- 10 --> Other" , skip = true },
69
70
  ]
70
71
  # filter out the commits that are not matched by commit parsers
@@ -132,7 +132,7 @@ jobs:
132
132
  branch=${{ github.ref }}
133
133
 
134
134
  # Define the repositories to trigger
135
- repos=("digitalhub-sdk-wrapper-kfp" "jupyter-notebook-custom-image" "digitalhub-sdk-wrapper-hera")
135
+ repos=("digitalhub-sdk-wrapper-kfp" "digitalhub-serverless" "digitalhub-sdk-wrapper-hera")
136
136
 
137
137
  # Loop over the repositories and trigger the workflow
138
138
  for repo in "${repos[@]}"; do
@@ -8,7 +8,7 @@ __pycache__/
8
8
 
9
9
  # Distribution / packaging
10
10
  .Python
11
- build/
11
+ /build
12
12
  develop-eggs/
13
13
  dist/
14
14
  downloads/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalhub-runtime-python
3
- Version: 0.13.0b0
3
+ Version: 0.14.0
4
4
  Summary: Python runtime for DHCore
5
5
  Project-URL: Homepage, https://github.com/scc-digitalhub/digitalhub-sdk-runtime-python
6
6
  Author-email: Fondazione Bruno Kessler <digitalhub@fbk.eu>, Matteo Martini <mmartini@fbk.eu>
@@ -214,10 +214,10 @@ Classifier: Programming Language :: Python :: 3.10
214
214
  Classifier: Programming Language :: Python :: 3.11
215
215
  Classifier: Programming Language :: Python :: 3.12
216
216
  Requires-Python: <3.13,>=3.9
217
- Requires-Dist: digitalhub[full]<0.14,>=0.13.0b
217
+ Requires-Dist: digitalhub[full]<0.15,>=0.14.0
218
218
  Requires-Dist: nuclio-sdk
219
219
  Provides-Extra: dev
220
- Requires-Dist: digitalhub[dev]<0.14,>=0.13.0b; extra == 'dev'
220
+ Requires-Dist: digitalhub[dev]<0.15,>=0.14.0; extra == 'dev'
221
221
  Description-Content-Type: text/markdown
222
222
 
223
223
  # DigitalHub SDK Runtime Python
@@ -227,7 +227,7 @@ Description-Content-Type: text/markdown
227
227
 
228
228
  The Digitalhub SDK Runtime Python is a runtime extension for the [Digitalhub SDK](https://github.com/scc-digitalhub/digitalhub-sdk). It enables you to create and execute python function in the Digitalhub platform.
229
229
 
230
- Explore the full documentation at the [link](https://scc-digitalhub.github.io/sdk-docs/runtimes/python/1-overview/).
230
+ Explore the full documentation at the [link](https://scc-digitalhub.github.io/sdk-docs/reference/runtimes/).
231
231
 
232
232
  ## Quick start
233
233
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  The Digitalhub SDK Runtime Python is a runtime extension for the [Digitalhub SDK](https://github.com/scc-digitalhub/digitalhub-sdk). It enables you to create and execute python function in the Digitalhub platform.
7
7
 
8
- Explore the full documentation at the [link](https://scc-digitalhub.github.io/sdk-docs/runtimes/python/1-overview/).
8
+ Explore the full documentation at the [link](https://scc-digitalhub.github.io/sdk-docs/reference/runtimes/).
9
9
 
10
10
  ## Quick start
11
11
 
@@ -3,10 +3,12 @@
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
  from digitalhub_runtime_python.entities._commons.enums import EntityKinds
5
5
  from digitalhub_runtime_python.entities.function.python.builder import FunctionPythonBuilder
6
- from digitalhub_runtime_python.entities.run.python_run.builder import RunPythonRunBuilder
7
- from digitalhub_runtime_python.entities.task.python_build.builder import TaskPythonBuildBuilder
8
- from digitalhub_runtime_python.entities.task.python_job.builder import TaskPythonJobBuilder
9
- from digitalhub_runtime_python.entities.task.python_serve.builder import TaskPythonServeBuilder
6
+ from digitalhub_runtime_python.entities.run.build.builder import RunPythonRunBuildBuilder
7
+ from digitalhub_runtime_python.entities.run.job.builder import RunPythonRunJobBuilder
8
+ from digitalhub_runtime_python.entities.run.serve.builder import RunPythonRunServeBuilder
9
+ from digitalhub_runtime_python.entities.task.build.builder import TaskPythonBuildBuilder
10
+ from digitalhub_runtime_python.entities.task.job.builder import TaskPythonJobBuilder
11
+ from digitalhub_runtime_python.entities.task.serve.builder import TaskPythonServeBuilder
10
12
  from digitalhub_runtime_python.utils.utils import handler
11
13
 
12
14
  entity_builders = (
@@ -14,7 +16,9 @@ entity_builders = (
14
16
  (EntityKinds.TASK_PYTHON_BUILD.value, TaskPythonBuildBuilder),
15
17
  (EntityKinds.TASK_PYTHON_JOB.value, TaskPythonJobBuilder),
16
18
  (EntityKinds.TASK_PYTHON_SERVE.value, TaskPythonServeBuilder),
17
- (EntityKinds.RUN_PYTHON.value, RunPythonRunBuilder),
19
+ (EntityKinds.RUN_PYTHON_BUILD.value, RunPythonRunBuildBuilder),
20
+ (EntityKinds.RUN_PYTHON_JOB.value, RunPythonRunJobBuilder),
21
+ (EntityKinds.RUN_PYTHON_SERVE.value, RunPythonRunServeBuilder),
18
22
  )
19
23
 
20
24
  try:
@@ -0,0 +1,46 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub.entities._base.runtime_entity.builder import RuntimeEntityBuilder
8
+ from digitalhub.entities._commons.utils import map_actions
9
+
10
+ from digitalhub_runtime_python.entities._commons.enums import Actions, EntityKinds
11
+
12
+
13
+ class RuntimeEntityBuilderPython(RuntimeEntityBuilder):
14
+ EXECUTABLE_KIND = EntityKinds.FUNCTION_PYTHON.value
15
+ TASKS_KINDS = map_actions(
16
+ [
17
+ (
18
+ EntityKinds.TASK_PYTHON_JOB.value,
19
+ Actions.JOB.value,
20
+ ),
21
+ (
22
+ EntityKinds.TASK_PYTHON_BUILD.value,
23
+ Actions.BUILD.value,
24
+ ),
25
+ (
26
+ EntityKinds.TASK_PYTHON_SERVE.value,
27
+ Actions.SERVE.value,
28
+ ),
29
+ ]
30
+ )
31
+ RUN_KINDS = map_actions(
32
+ [
33
+ (
34
+ EntityKinds.RUN_PYTHON_JOB.value,
35
+ Actions.JOB.value,
36
+ ),
37
+ (
38
+ EntityKinds.RUN_PYTHON_BUILD.value,
39
+ Actions.BUILD.value,
40
+ ),
41
+ (
42
+ EntityKinds.RUN_PYTHON_SERVE.value,
43
+ Actions.SERVE.value,
44
+ ),
45
+ ]
46
+ )
@@ -16,10 +16,12 @@ class EntityKinds(Enum):
16
16
  TASK_PYTHON_BUILD = "python+build"
17
17
  TASK_PYTHON_JOB = "python+job"
18
18
  TASK_PYTHON_SERVE = "python+serve"
19
- RUN_PYTHON = "python+run"
19
+ RUN_PYTHON_BUILD = "python+build:run"
20
+ RUN_PYTHON_JOB = "python+job:run"
21
+ RUN_PYTHON_SERVE = "python+serve:run"
20
22
 
21
23
 
22
- class TaskActions(Enum):
24
+ class Actions(Enum):
23
25
  """
24
26
  Task actions.
25
27
  """
@@ -17,6 +17,7 @@ class PythonVersion(Enum):
17
17
  PYTHON3_9 = "PYTHON3_9"
18
18
  PYTHON3_10 = "PYTHON3_10"
19
19
  PYTHON3_11 = "PYTHON3_11"
20
+ PYTHON3_12 = "PYTHON3_12"
20
21
 
21
22
 
22
23
  class Lang(Enum):
@@ -138,7 +138,10 @@ def source_post_check(exec: FunctionPython) -> FunctionPython:
138
138
  return exec
139
139
 
140
140
  # Check local source
141
- if has_local_scheme(code_src) and Path(code_src).is_file():
141
+ if has_local_scheme(code_src):
142
+ if not Path(code_src).is_file():
143
+ raise EntityError(f"Source file {code_src} does not exist.")
144
+
142
145
  # Check py
143
146
  if eval_py_type(code_src):
144
147
  exec.spec.source["base64"] = read_source(code_src)
@@ -147,7 +150,7 @@ def source_post_check(exec: FunctionPython) -> FunctionPython:
147
150
  elif eval_zip_type(code_src):
148
151
  filename = Path(code_src).name
149
152
  dst = f"zip+{get_default_store(exec.project)}/{exec.project}/{exec.ENTITY_TYPE}/{exec.name}/{exec.id}/{filename}"
150
- get_store(exec.project, dst).upload(code_src, dst)
153
+ get_store(dst).upload(code_src, dst)
151
154
  exec.spec.source["source"] = dst
152
155
  if ":" not in exec.spec.source["handler"]:
153
156
  exec.spec.source["handler"] = f"{Path(code_src).stem}:{exec.spec.source['handler']}"
@@ -8,9 +8,9 @@ from digitalhub.entities.run._base.builder import RunBuilder
8
8
 
9
9
  from digitalhub_runtime_python.entities._base.runtime_entity.builder import RuntimeEntityBuilderPython
10
10
  from digitalhub_runtime_python.entities._commons.enums import EntityKinds
11
- from digitalhub_runtime_python.entities.run.python_run.entity import RunPythonRun
12
- from digitalhub_runtime_python.entities.run.python_run.spec import RunSpecPythonRun, RunValidatorPythonRun
13
- from digitalhub_runtime_python.entities.run.python_run.status import RunStatusPythonRun
11
+ from digitalhub_runtime_python.entities.run._base.entity import RunPythonRun
12
+ from digitalhub_runtime_python.entities.run._base.spec import RunSpecPythonRun, RunValidatorPythonRun
13
+ from digitalhub_runtime_python.entities.run._base.status import RunStatusPythonRun
14
14
 
15
15
 
16
16
  class RunPythonRunBuilder(RunBuilder, RuntimeEntityBuilderPython):
@@ -12,19 +12,19 @@ import requests
12
12
  from digitalhub.entities._commons.enums import Relationship, State
13
13
  from digitalhub.entities._commons.utils import get_entity_type_from_key
14
14
  from digitalhub.entities.run._base.entity import Run
15
- from digitalhub.factory.factory import factory
15
+ from digitalhub.factory.entity import entity_factory
16
16
  from digitalhub.utils.exceptions import EntityError
17
17
  from digitalhub.utils.logger import LOGGER
18
18
 
19
- from digitalhub_runtime_python.entities._commons.enums import TaskActions
20
- from digitalhub_runtime_python.entities.run.python_run.utils import get_getter_for_material
19
+ from digitalhub_runtime_python.entities._commons.enums import Actions
20
+ from digitalhub_runtime_python.entities.run._base.utils import get_getter_for_material
21
21
 
22
22
  if typing.TYPE_CHECKING:
23
23
  from digitalhub.entities._base.entity.metadata import Metadata
24
24
  from digitalhub.entities._base.material.entity import MaterialEntity
25
25
 
26
- from digitalhub_runtime_python.entities.run.python_run.spec import RunSpecPythonRun
27
- from digitalhub_runtime_python.entities.run.python_run.status import RunStatusPythonRun
26
+ from digitalhub_runtime_python.entities.run._base.spec import RunSpecPythonRun
27
+ from digitalhub_runtime_python.entities.run._base.status import RunStatusPythonRun
28
28
 
29
29
 
30
30
  class RunPythonRun(Run):
@@ -50,10 +50,6 @@ class RunPythonRun(Run):
50
50
  def _setup_execution(self) -> None:
51
51
  """
52
52
  Setup run execution.
53
-
54
- Returns
55
- -------
56
- None
57
53
  """
58
54
  self.refresh()
59
55
  inputs = self.inputs(as_dict=True)
@@ -81,9 +77,9 @@ class RunPythonRun(Run):
81
77
  Run object.
82
78
  """
83
79
  task_kind = self.spec.task.split("://")[0]
84
- action = factory.get_action_from_task_kind(self.kind, task_kind)
80
+ action = entity_factory.get_action_from_task_kind(self.kind, task_kind)
85
81
 
86
- if action == TaskActions.SERVE.value:
82
+ if action == Actions.SERVE.value:
87
83
  serve_timeout = 300
88
84
  start = time.time()
89
85
 
@@ -0,0 +1,25 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub.entities.run._base.builder import RunBuilder
8
+
9
+ from digitalhub_runtime_python.entities._base.runtime_entity.builder import RuntimeEntityBuilderPython
10
+ from digitalhub_runtime_python.entities._commons.enums import EntityKinds
11
+ from digitalhub_runtime_python.entities.run.build.entity import RunPythonRunBuild
12
+ from digitalhub_runtime_python.entities.run.build.spec import RunSpecPythonRunBuild, RunValidatorPythonRunBuild
13
+ from digitalhub_runtime_python.entities.run.build.status import RunStatusPythonRunBuild
14
+
15
+
16
+ class RunPythonRunBuildBuilder(RunBuilder, RuntimeEntityBuilderPython):
17
+ """
18
+ RunPythonRunBuildBuilder runner.
19
+ """
20
+
21
+ ENTITY_CLASS = RunPythonRunBuild
22
+ ENTITY_SPEC_CLASS = RunSpecPythonRunBuild
23
+ ENTITY_SPEC_VALIDATOR = RunValidatorPythonRunBuild
24
+ ENTITY_STATUS_CLASS = RunStatusPythonRunBuild
25
+ ENTITY_KIND = EntityKinds.RUN_PYTHON_BUILD.value
@@ -0,0 +1,36 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ import typing
8
+
9
+ from digitalhub_runtime_python.entities.run._base.entity import RunPythonRun
10
+
11
+ if typing.TYPE_CHECKING:
12
+ from digitalhub.entities._base.entity.metadata import Metadata
13
+
14
+ from digitalhub_runtime_python.entities.run.build.spec import RunSpecPythonRunBuild
15
+ from digitalhub_runtime_python.entities.run.build.status import RunStatusPythonRunBuild
16
+
17
+
18
+ class RunPythonRunBuild(RunPythonRun):
19
+ """
20
+ RunPythonRunBuild class.
21
+ """
22
+
23
+ def __init__(
24
+ self,
25
+ project: str,
26
+ uuid: str,
27
+ kind: str,
28
+ metadata: Metadata,
29
+ spec: RunSpecPythonRunBuild,
30
+ status: RunStatusPythonRunBuild,
31
+ user: str | None = None,
32
+ ) -> None:
33
+ super().__init__(project, uuid, kind, metadata, spec, status, user)
34
+
35
+ self.spec: RunSpecPythonRunBuild
36
+ self.status: RunStatusPythonRunBuild
@@ -0,0 +1,15 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub_runtime_python.entities.run._base.spec import RunSpecPythonRun, RunValidatorPythonRun
8
+
9
+
10
+ class RunSpecPythonRunBuild(RunSpecPythonRun):
11
+ """RunSpecPythonRunBuild specifications."""
12
+
13
+
14
+ class RunValidatorPythonRunBuild(RunValidatorPythonRun):
15
+ """RunValidatorPythonRunBuild validator."""
@@ -0,0 +1,13 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub_runtime_python.entities.run._base.status import RunStatusPythonRun
8
+
9
+
10
+ class RunStatusPythonRunBuild(RunStatusPythonRun):
11
+ """
12
+ RunStatusPythonRunBuild status.
13
+ """
@@ -0,0 +1,25 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub.entities.run._base.builder import RunBuilder
8
+
9
+ from digitalhub_runtime_python.entities._base.runtime_entity.builder import RuntimeEntityBuilderPython
10
+ from digitalhub_runtime_python.entities._commons.enums import EntityKinds
11
+ from digitalhub_runtime_python.entities.run.job.entity import RunPythonRunJob
12
+ from digitalhub_runtime_python.entities.run.job.spec import RunSpecPythonRunJob, RunValidatorPythonRunJob
13
+ from digitalhub_runtime_python.entities.run.job.status import RunStatusPythonRunJob
14
+
15
+
16
+ class RunPythonRunJobBuilder(RunBuilder, RuntimeEntityBuilderPython):
17
+ """
18
+ RunPythonRunJobBuilder runner.
19
+ """
20
+
21
+ ENTITY_CLASS = RunPythonRunJob
22
+ ENTITY_SPEC_CLASS = RunSpecPythonRunJob
23
+ ENTITY_SPEC_VALIDATOR = RunValidatorPythonRunJob
24
+ ENTITY_STATUS_CLASS = RunStatusPythonRunJob
25
+ ENTITY_KIND = EntityKinds.RUN_PYTHON_JOB.value
@@ -0,0 +1,36 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ import typing
8
+
9
+ from digitalhub_runtime_python.entities.run._base.entity import RunPythonRun
10
+
11
+ if typing.TYPE_CHECKING:
12
+ from digitalhub.entities._base.entity.metadata import Metadata
13
+
14
+ from digitalhub_runtime_python.entities.run.job.spec import RunSpecPythonRunJob
15
+ from digitalhub_runtime_python.entities.run.job.status import RunStatusPythonRunJob
16
+
17
+
18
+ class RunPythonRunJob(RunPythonRun):
19
+ """
20
+ RunPythonRunJob class.
21
+ """
22
+
23
+ def __init__(
24
+ self,
25
+ project: str,
26
+ uuid: str,
27
+ kind: str,
28
+ metadata: Metadata,
29
+ spec: RunSpecPythonRunJob,
30
+ status: RunStatusPythonRunJob,
31
+ user: str | None = None,
32
+ ) -> None:
33
+ super().__init__(project, uuid, kind, metadata, spec, status, user)
34
+
35
+ self.spec: RunSpecPythonRunJob
36
+ self.status: RunStatusPythonRunJob
@@ -0,0 +1,15 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub_runtime_python.entities.run._base.spec import RunSpecPythonRun, RunValidatorPythonRun
8
+
9
+
10
+ class RunSpecPythonRunJob(RunSpecPythonRun):
11
+ """RunSpecPythonRunJob specifications."""
12
+
13
+
14
+ class RunValidatorPythonRunJob(RunValidatorPythonRun):
15
+ """RunValidatorPythonRunJob validator."""
@@ -0,0 +1,13 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub_runtime_python.entities.run._base.status import RunStatusPythonRun
8
+
9
+
10
+ class RunStatusPythonRunJob(RunStatusPythonRun):
11
+ """
12
+ RunStatusPythonRunJob status.
13
+ """
@@ -0,0 +1,25 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub.entities.run._base.builder import RunBuilder
8
+
9
+ from digitalhub_runtime_python.entities._base.runtime_entity.builder import RuntimeEntityBuilderPython
10
+ from digitalhub_runtime_python.entities._commons.enums import EntityKinds
11
+ from digitalhub_runtime_python.entities.run.serve.entity import RunPythonRunServe
12
+ from digitalhub_runtime_python.entities.run.serve.spec import RunSpecPythonRunServe, RunValidatorPythonRunServe
13
+ from digitalhub_runtime_python.entities.run.serve.status import RunStatusPythonRunServe
14
+
15
+
16
+ class RunPythonRunServeBuilder(RunBuilder, RuntimeEntityBuilderPython):
17
+ """
18
+ RunPythonRunServeBuilder runner.
19
+ """
20
+
21
+ ENTITY_CLASS = RunPythonRunServe
22
+ ENTITY_SPEC_CLASS = RunSpecPythonRunServe
23
+ ENTITY_SPEC_VALIDATOR = RunValidatorPythonRunServe
24
+ ENTITY_STATUS_CLASS = RunStatusPythonRunServe
25
+ ENTITY_KIND = EntityKinds.RUN_PYTHON_SERVE.value
@@ -0,0 +1,36 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ import typing
8
+
9
+ from digitalhub_runtime_python.entities.run._base.entity import RunPythonRun
10
+
11
+ if typing.TYPE_CHECKING:
12
+ from digitalhub.entities._base.entity.metadata import Metadata
13
+
14
+ from digitalhub_runtime_python.entities.run.serve.spec import RunSpecPythonRunServe
15
+ from digitalhub_runtime_python.entities.run.serve.status import RunStatusPythonRunServe
16
+
17
+
18
+ class RunPythonRunServe(RunPythonRun):
19
+ """
20
+ RunPythonRunServe class.
21
+ """
22
+
23
+ def __init__(
24
+ self,
25
+ project: str,
26
+ uuid: str,
27
+ kind: str,
28
+ metadata: Metadata,
29
+ spec: RunSpecPythonRunServe,
30
+ status: RunStatusPythonRunServe,
31
+ user: str | None = None,
32
+ ) -> None:
33
+ super().__init__(project, uuid, kind, metadata, spec, status, user)
34
+
35
+ self.spec: RunSpecPythonRunServe
36
+ self.status: RunStatusPythonRunServe
@@ -0,0 +1,15 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub_runtime_python.entities.run._base.spec import RunSpecPythonRun, RunValidatorPythonRun
8
+
9
+
10
+ class RunSpecPythonRunServe(RunSpecPythonRun):
11
+ """RunSpecPythonRunServe specifications."""
12
+
13
+
14
+ class RunValidatorPythonRunServe(RunValidatorPythonRun):
15
+ """RunValidatorPythonRunServe validator."""
@@ -0,0 +1,13 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub_runtime_python.entities.run._base.status import RunStatusPythonRun
8
+
9
+
10
+ class RunStatusPythonRunServe(RunStatusPythonRun):
11
+ """
12
+ RunStatusPythonRunServe status.
13
+ """
@@ -8,9 +8,9 @@ from digitalhub.entities.task._base.builder import TaskBuilder
8
8
 
9
9
  from digitalhub_runtime_python.entities._base.runtime_entity.builder import RuntimeEntityBuilderPython
10
10
  from digitalhub_runtime_python.entities._commons.enums import EntityKinds
11
- from digitalhub_runtime_python.entities.task.python_build.entity import TaskPythonBuild
12
- from digitalhub_runtime_python.entities.task.python_build.spec import TaskSpecPythonBuild, TaskValidatorPythonBuild
13
- from digitalhub_runtime_python.entities.task.python_build.status import TaskStatusPythonBuild
11
+ from digitalhub_runtime_python.entities.task.build.entity import TaskPythonBuild
12
+ from digitalhub_runtime_python.entities.task.build.spec import TaskSpecPythonBuild, TaskValidatorPythonBuild
13
+ from digitalhub_runtime_python.entities.task.build.status import TaskStatusPythonBuild
14
14
 
15
15
 
16
16
  class TaskPythonBuildBuilder(TaskBuilder, RuntimeEntityBuilderPython):
@@ -11,8 +11,8 @@ from digitalhub.entities.task._base.entity import Task
11
11
  if typing.TYPE_CHECKING:
12
12
  from digitalhub.entities._base.entity.metadata import Metadata
13
13
 
14
- from digitalhub_runtime_python.entities.task.python_build.spec import TaskSpecPythonBuild
15
- from digitalhub_runtime_python.entities.task.python_build.status import TaskStatusPythonBuild
14
+ from digitalhub_runtime_python.entities.task.build.spec import TaskSpecPythonBuild
15
+ from digitalhub_runtime_python.entities.task.build.status import TaskStatusPythonBuild
16
16
 
17
17
 
18
18
  class TaskPythonBuild(Task):
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -8,9 +8,9 @@ from digitalhub.entities.task._base.builder import TaskBuilder
8
8
 
9
9
  from digitalhub_runtime_python.entities._base.runtime_entity.builder import RuntimeEntityBuilderPython
10
10
  from digitalhub_runtime_python.entities._commons.enums import EntityKinds
11
- from digitalhub_runtime_python.entities.task.python_job.entity import TaskPythonJob
12
- from digitalhub_runtime_python.entities.task.python_job.spec import TaskSpecPythonJob, TaskValidatorPythonJob
13
- from digitalhub_runtime_python.entities.task.python_job.status import TaskStatusPythonJob
11
+ from digitalhub_runtime_python.entities.task.job.entity import TaskPythonJob
12
+ from digitalhub_runtime_python.entities.task.job.spec import TaskSpecPythonJob, TaskValidatorPythonJob
13
+ from digitalhub_runtime_python.entities.task.job.status import TaskStatusPythonJob
14
14
 
15
15
 
16
16
  class TaskPythonJobBuilder(TaskBuilder, RuntimeEntityBuilderPython):
@@ -11,8 +11,8 @@ from digitalhub.entities.task._base.entity import Task
11
11
  if typing.TYPE_CHECKING:
12
12
  from digitalhub.entities._base.entity.metadata import Metadata
13
13
 
14
- from digitalhub_runtime_python.entities.task.python_job.spec import TaskSpecPythonJob
15
- from digitalhub_runtime_python.entities.task.python_job.status import TaskStatusPythonJob
14
+ from digitalhub_runtime_python.entities.task.job.spec import TaskSpecPythonJob
15
+ from digitalhub_runtime_python.entities.task.job.status import TaskStatusPythonJob
16
16
 
17
17
 
18
18
  class TaskPythonJob(Task):
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -8,9 +8,9 @@ from digitalhub.entities.task._base.builder import TaskBuilder
8
8
 
9
9
  from digitalhub_runtime_python.entities._base.runtime_entity.builder import RuntimeEntityBuilderPython
10
10
  from digitalhub_runtime_python.entities._commons.enums import EntityKinds
11
- from digitalhub_runtime_python.entities.task.python_serve.entity import TaskPythonServe
12
- from digitalhub_runtime_python.entities.task.python_serve.spec import TaskSpecPythonServe, TaskValidatorPythonServe
13
- from digitalhub_runtime_python.entities.task.python_serve.status import TaskStatusPythonServe
11
+ from digitalhub_runtime_python.entities.task.serve.entity import TaskPythonServe
12
+ from digitalhub_runtime_python.entities.task.serve.spec import TaskSpecPythonServe, TaskValidatorPythonServe
13
+ from digitalhub_runtime_python.entities.task.serve.status import TaskStatusPythonServe
14
14
 
15
15
 
16
16
  class TaskPythonServeBuilder(TaskBuilder, RuntimeEntityBuilderPython):
@@ -11,8 +11,8 @@ from digitalhub.entities.task._base.entity import Task
11
11
  if typing.TYPE_CHECKING:
12
12
  from digitalhub.entities._base.entity.metadata import Metadata
13
13
 
14
- from digitalhub_runtime_python.entities.task.python_serve.spec import TaskSpecPythonServe
15
- from digitalhub_runtime_python.entities.task.python_serve.status import TaskStatusPythonServe
14
+ from digitalhub_runtime_python.entities.task.serve.spec import TaskSpecPythonServe
15
+ from digitalhub_runtime_python.entities.task.serve.status import TaskStatusPythonServe
16
16
 
17
17
 
18
18
  class TaskPythonServe(Task):
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -100,10 +100,6 @@ class RuntimePython(Runtime):
100
100
  ----------
101
101
  run : dict
102
102
  Run object dictionary.
103
-
104
- Returns
105
- -------
106
- None
107
103
  """
108
104
  task_kind = run["spec"]["task"].split(":")[0]
109
105
  if task_kind != EntityKinds.TASK_PYTHON_JOB.value and run["spec"]["local_execution"]:
@@ -7,7 +7,7 @@ from __future__ import annotations
7
7
  from pathlib import Path
8
8
  from typing import Callable, Union
9
9
 
10
- from digitalhub.stores.data.s3.utils import get_bucket_and_key, get_s3_source
10
+ from digitalhub.stores.data.api import get_store
11
11
  from digitalhub.utils.generic_utils import (
12
12
  decode_base64_string,
13
13
  extract_archive,
@@ -104,8 +104,8 @@ def save_function_source(path: Path, source_spec: dict) -> Path:
104
104
  if not has_zip_scheme(source):
105
105
  raise RuntimeError("S3 source must be a zip file with scheme zip+s3://.")
106
106
  filename = path / get_filename_from_uri(source)
107
- bucket, key = get_bucket_and_key(source)
108
- get_s3_source(bucket, key, filename)
107
+ store = get_store(source.removeprefix("zip+"))
108
+ store.get_s3_source(source, filename)
109
109
  extract_archive(path, filename)
110
110
  filename.unlink()
111
111
 
@@ -10,14 +10,14 @@ from typing import Any, Callable
10
10
 
11
11
  from digitalhub.context.api import get_context
12
12
  from digitalhub.entities.project.crud import get_project
13
- from digitalhub.factory.factory import factory
13
+ from digitalhub.factory.entity import entity_factory
14
14
  from digitalhub.utils.logger import LOGGER
15
15
 
16
16
  if typing.TYPE_CHECKING:
17
17
  from digitalhub.entities._base.entity.entity import Entity
18
18
  from digitalhub.entities.project._base.entity import Project
19
19
 
20
- from digitalhub_runtime_python.entities.run.python_run.entity import RunPythonRun
20
+ from digitalhub_runtime_python.entities.run._base.entity import RunPythonRun
21
21
 
22
22
 
23
23
  def get_project_(project_name: str) -> Project:
@@ -89,7 +89,7 @@ def get_entity_inputs(inputs: dict) -> dict[str, Entity]:
89
89
  Dictionary of inputs.
90
90
  """
91
91
  try:
92
- return {k: factory.build_entity_from_dict(v) for k, v in inputs.items()}
92
+ return {k: entity_factory.build_entity_from_dict(v) for k, v in inputs.items()}
93
93
  except Exception as e:
94
94
  msg = f"Error during inputs collection. Exception: {e.__class__}. Error: {e.args}"
95
95
  LOGGER.exception(msg)
@@ -205,6 +205,6 @@ def compose_init(init_function: Callable, context: Any, parameters: dict) -> dic
205
205
  signature_parameters.pop("context")
206
206
  expected_parameters = list(signature_parameters.keys())
207
207
  raise RuntimeError(
208
- f"Init function parameters mismatch. Expected: {expected_parameters}, " f"Got: {list(parameters)}"
208
+ f"Init function parameters mismatch. Expected: {expected_parameters}, Got: {list(parameters)}"
209
209
  )
210
210
  return {**parameters, "context": context}
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "digitalhub-runtime-python"
7
- version = "0.13.0b0"
7
+ version = "0.14.0"
8
8
  description = "Python runtime for DHCore"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -22,24 +22,26 @@ classifiers = [
22
22
  keywords = ["data", "dataops", "kubernetes"]
23
23
  requires-python = ">=3.9, <3.13"
24
24
  dependencies = [
25
- "digitalhub[full]>=0.13.0b, <0.14",
25
+ "digitalhub[full]>=0.14.0, <0.15",
26
26
  "nuclio-sdk"
27
27
  ]
28
28
 
29
29
  [project.optional-dependencies]
30
30
  dev = [
31
- "digitalhub[dev]>=0.13.0b, <0.14"
31
+ "digitalhub[dev]>=0.14.0, <0.15"
32
32
  ]
33
33
 
34
34
  [project.urls]
35
35
  Homepage = "https://github.com/scc-digitalhub/digitalhub-sdk-runtime-python"
36
36
 
37
- [tool.flake8]
38
- max-line-length = 120
39
-
40
37
  [tool.ruff]
41
38
  line-length = 120
42
39
 
40
+ [tool.ruff.format]
41
+ quote-style = "double"
42
+ docstring-code-format = true
43
+ docstring-code-line-length = 120
44
+
43
45
  [tool.ruff.lint.extend-per-file-ignores]
44
46
  "__init__.py" = ["F401"]
45
47
 
@@ -47,7 +49,7 @@ line-length = 120
47
49
  convention = "numpy"
48
50
 
49
51
  [tool.bumpver]
50
- current_version = "0.13.0b0"
52
+ current_version = "0.14.0"
51
53
  version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
52
54
  commit_message = "Bump version {old_version} -> {new_version}"
53
55
  commit = false
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "8f61807d-6f25-49c2-ba36-c95899074af0",
3
3
  "key": "store://demo-etl/run/python+run/8f61807d-6f25-49c2-ba36-c95899074af0",
4
- "kind": "python+run",
4
+ "kind": "python+build:run",
5
5
  "metadata": {
6
6
  "name": "8f61807d-6f25-49c2-ba36-c95899074af0",
7
7
  "updated_by": "digitalhubdev",
@@ -41,17 +41,9 @@
41
41
  "param1": 100
42
42
  },
43
43
  "resources": {
44
- "cpu": {
45
- "requests": "0100m",
46
- "limits": "0200m"
47
- },
48
- "mem": {
49
- "requests": "0100Ki",
50
- "limits": "0200Ki"
51
- },
52
- "gpu": {
53
- "limits": "01"
54
- }
44
+ "cpu": "1",
45
+ "mem": "1Gi",
46
+ "gpu": "1"
55
47
  },
56
48
  "envs": [
57
49
  {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "89aa1016-376b-45e6-8db7-807b6e3f7410",
3
3
  "key": "store://demo-etl/run/python+run/89aa1016-376b-45e6-8db7-807b6e3f7410",
4
- "kind": "python+run",
4
+ "kind": "python+job:run",
5
5
  "metadata": {
6
6
  "name": "89aa1016-376b-45e6-8db7-807b6e3f7410",
7
7
  "updated_by": "digitalhubdev",
@@ -40,17 +40,9 @@
40
40
  },
41
41
  "backoff_limit": 3,
42
42
  "resources": {
43
- "cpu": {
44
- "requests": "0100m",
45
- "limits": "0200m"
46
- },
47
- "mem": {
48
- "requests": "0100Ki",
49
- "limits": "0200Ki"
50
- },
51
- "gpu": {
52
- "limits": "01"
53
- }
43
+ "cpu": "1",
44
+ "mem": "1Gi",
45
+ "gpu": "1"
54
46
  },
55
47
  "envs": [
56
48
  {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "3c620611-b8dc-41f2-bee6-3b21e3d35265",
3
3
  "key": "store://demo-etl/run/python+run/3c620611-b8dc-41f2-bee6-3b21e3d35265",
4
- "kind": "python+run",
4
+ "kind": "python+serve:run",
5
5
  "metadata": {
6
6
  "name": "3c620611-b8dc-41f2-bee6-3b21e3d35265",
7
7
  "updated_by": "digitalhubdev",
@@ -40,17 +40,9 @@
40
40
  "param1": 100
41
41
  },
42
42
  "resources": {
43
- "cpu": {
44
- "requests": "0100m",
45
- "limits": "0200m"
46
- },
47
- "mem": {
48
- "requests": "0100Ki",
49
- "limits": "0200Ki"
50
- },
51
- "gpu": {
52
- "limits": "01"
53
- }
43
+ "cpu": "1",
44
+ "mem": "1Gi",
45
+ "gpu": "1"
54
46
  },
55
47
  "envs": [
56
48
  {
@@ -38,19 +38,11 @@
38
38
  "value": "test"
39
39
  }
40
40
  ],
41
- "resources": {
42
- "cpu": {
43
- "requests": "0100m",
44
- "limits": "0200m"
41
+ "resources": {
42
+ "cpu": "1",
43
+ "mem": "1Gi",
44
+ "gpu": "1"
45
45
  },
46
- "mem": {
47
- "requests": "0100Ki",
48
- "limits": "0200Ki"
49
- },
50
- "gpu": {
51
- "limits": "01"
52
- }
53
- },
54
46
  "secrets": ["secret-key"],
55
47
  "node_selector": [
56
48
  {
@@ -41,19 +41,11 @@
41
41
  "value": "test"
42
42
  }
43
43
  ],
44
- "resources": {
45
- "cpu": {
46
- "requests": "0100m",
47
- "limits": "0200m"
44
+ "resources": {
45
+ "cpu": "1",
46
+ "mem": "1Gi",
47
+ "gpu": "1"
48
48
  },
49
- "mem": {
50
- "requests": "0100Ki",
51
- "limits": "0200Ki"
52
- },
53
- "gpu": {
54
- "limits": "01"
55
- }
56
- },
57
49
  "secrets": ["secret-key"],
58
50
  "node_selector": [
59
51
  {
@@ -42,19 +42,11 @@
42
42
  "value": "test"
43
43
  }
44
44
  ],
45
- "resources": {
46
- "cpu": {
47
- "requests": "0100m",
48
- "limits": "0200m"
45
+ "resources": {
46
+ "cpu": "1",
47
+ "mem": "1Gi",
48
+ "gpu": "1"
49
49
  },
50
- "mem": {
51
- "requests": "0100Ki",
52
- "limits": "0200Ki"
53
- },
54
- "gpu": {
55
- "limits": "01"
56
- }
57
- },
58
50
  "secrets": ["secret-key"],
59
51
  "node_selector": [
60
52
  {
@@ -7,7 +7,7 @@ from glob import glob
7
7
  from pathlib import Path
8
8
 
9
9
  import pytest
10
- from digitalhub.factory.factory import factory
10
+ from digitalhub.factory.entity import entity_factory
11
11
  from jsonschema import validate
12
12
 
13
13
  entities_path = "test/local/instances/entities"
@@ -39,7 +39,7 @@ def build_obj(entity_file_path):
39
39
  kind = entity["kind"]
40
40
  spec = entity["spec"]
41
41
 
42
- built = factory.build_spec(kind, **spec)
42
+ built = entity_factory.build_spec(kind, **spec)
43
43
  return built.to_dict(), kind
44
44
 
45
45
 
@@ -1,31 +0,0 @@
1
- # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
- #
3
- # SPDX-License-Identifier: Apache-2.0
4
-
5
- from __future__ import annotations
6
-
7
- from digitalhub.entities._base.runtime_entity.builder import RuntimeEntityBuilder
8
- from digitalhub.entities.task._base.utils import build_task_actions
9
-
10
- from digitalhub_runtime_python.entities._commons.enums import EntityKinds, TaskActions
11
-
12
-
13
- class RuntimeEntityBuilderPython(RuntimeEntityBuilder):
14
- EXECUTABLE_KIND = EntityKinds.FUNCTION_PYTHON.value
15
- TASKS_KINDS = build_task_actions(
16
- [
17
- (
18
- EntityKinds.TASK_PYTHON_JOB.value,
19
- TaskActions.JOB.value,
20
- ),
21
- (
22
- EntityKinds.TASK_PYTHON_BUILD.value,
23
- TaskActions.BUILD.value,
24
- ),
25
- (
26
- EntityKinds.TASK_PYTHON_SERVE.value,
27
- TaskActions.SERVE.value,
28
- ),
29
- ]
30
- )
31
- RUN_KIND = EntityKinds.RUN_PYTHON.value