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.
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/scripts/cliff.toml +4 -3
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/workflows/release.yml +1 -1
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.gitignore +1 -1
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/PKG-INFO +4 -4
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/README.md +1 -1
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/__init__.py +9 -5
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/_base/runtime_entity/builder.py +46 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/_commons/enums.py +4 -2
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/models.py +1 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/utils.py +5 -2
- {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
- {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
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/build/builder.py +25 -0
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/build/entity.py +36 -0
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/build/spec.py +15 -0
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/build/status.py +13 -0
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/job/builder.py +25 -0
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/job/entity.py +36 -0
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/job/spec.py +15 -0
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/job/status.py +13 -0
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/serve/builder.py +25 -0
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/serve/entity.py +36 -0
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/serve/spec.py +15 -0
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/run/serve/status.py +13 -0
- {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
- {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
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/job/__init__.py +3 -0
- {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
- {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
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/task/serve/__init__.py +3 -0
- {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
- {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
- digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/runtimes/__init__.py +3 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/runtimes/runtime.py +0 -4
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/utils/configuration.py +3 -3
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/utils/inputs.py +4 -4
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/pyproject.toml +9 -7
- 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
- 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
- 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
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/entities/task/task-python+build.json +4 -12
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/entities/task/task-python+job.json +4 -12
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/entities/task/task-python+serve.json +4 -12
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/test_validate.py +2 -2
- digitalhub_runtime_python-0.13.0b0/digitalhub_runtime_python/entities/_base/runtime_entity/builder.py +0 -31
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/scripts/bump.sh +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/scripts/changelog.sh +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/workflows/run_local_test.yml +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/workflows/test_release.yml +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/AUTHORS +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/CONTRIBUTING +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/COPYRIGHT +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/LICENSE +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/__init__.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/_base/__init__.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/_base/runtime_entity/__init__.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/_commons/__init__.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/__init__.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/__init__.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/builder.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/entity.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/spec.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/function/python/status.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/entities/run/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/runtimes/builder.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/utils/outputs.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/digitalhub_runtime_python/utils/utils.py +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/entities/function/function-python-git.json +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/entities/function/function-python-local.json +0 -0
- {digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/test/local/instances/entities/function/function-python-zip.json +0 -0
{digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/scripts/cliff.toml
RENAMED
|
@@ -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 = "<!--
|
|
66
|
-
{ message = "^build", group = "<!--
|
|
67
|
-
{ message = "^doc", group = "<!--
|
|
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" "
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: digitalhub-runtime-python
|
|
3
|
-
Version: 0.
|
|
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.
|
|
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.
|
|
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/
|
|
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/
|
|
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.
|
|
7
|
-
from digitalhub_runtime_python.entities.
|
|
8
|
-
from digitalhub_runtime_python.entities.
|
|
9
|
-
from digitalhub_runtime_python.entities.task.
|
|
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.
|
|
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:
|
digitalhub_runtime_python-0.14.0/digitalhub_runtime_python/entities/_base/runtime_entity/builder.py
ADDED
|
@@ -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
|
-
|
|
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
|
|
24
|
+
class Actions(Enum):
|
|
23
25
|
"""
|
|
24
26
|
Task actions.
|
|
25
27
|
"""
|
|
@@ -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)
|
|
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(
|
|
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.
|
|
12
|
-
from digitalhub_runtime_python.entities.run.
|
|
13
|
-
from digitalhub_runtime_python.entities.run.
|
|
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.
|
|
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
|
|
20
|
-
from digitalhub_runtime_python.entities.run.
|
|
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.
|
|
27
|
-
from digitalhub_runtime_python.entities.run.
|
|
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 =
|
|
80
|
+
action = entity_factory.get_action_from_task_kind(self.kind, task_kind)
|
|
85
81
|
|
|
86
|
-
if action ==
|
|
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.
|
|
12
|
-
from digitalhub_runtime_python.entities.task.
|
|
13
|
-
from digitalhub_runtime_python.entities.task.
|
|
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.
|
|
15
|
-
from digitalhub_runtime_python.entities.task.
|
|
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):
|
|
@@ -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.
|
|
12
|
-
from digitalhub_runtime_python.entities.task.
|
|
13
|
-
from digitalhub_runtime_python.entities.task.
|
|
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.
|
|
15
|
-
from digitalhub_runtime_python.entities.task.
|
|
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):
|
|
@@ -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.
|
|
12
|
-
from digitalhub_runtime_python.entities.task.
|
|
13
|
-
from digitalhub_runtime_python.entities.task.
|
|
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.
|
|
15
|
-
from digitalhub_runtime_python.entities.task.
|
|
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):
|
|
@@ -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.
|
|
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
|
-
|
|
108
|
-
get_s3_source(
|
|
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.
|
|
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.
|
|
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:
|
|
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},
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
46
|
-
|
|
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
|
-
|
|
45
|
-
|
|
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
|
-
|
|
45
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
"
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
"
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
"
|
|
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.
|
|
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 =
|
|
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
|
{digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/scripts/bump.sh
RENAMED
|
File without changes
|
{digitalhub_runtime_python-0.13.0b0 → digitalhub_runtime_python-0.14.0}/.github/scripts/changelog.sh
RENAMED
|
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
|
|
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
|