digitalhub-runtime-python 0.16.0b5__py3-none-any.whl → 0.16.0b7__py3-none-any.whl
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/__init__.py +16 -1
- digitalhub_runtime_python/entities/_base/runtime_entity/builder.py +27 -0
- digitalhub_runtime_python/entities/_commons/enums.py +5 -0
- digitalhub_runtime_python/entities/function/ray/__init__.py +3 -0
- digitalhub_runtime_python/entities/function/ray/builder.py +24 -0
- digitalhub_runtime_python/entities/function/ray/entity.py +25 -0
- digitalhub_runtime_python/entities/function/ray/spec.py +57 -0
- digitalhub_runtime_python/entities/function/ray/status.py +13 -0
- digitalhub_runtime_python/entities/run/ray_build/__init__.py +3 -0
- digitalhub_runtime_python/entities/run/ray_build/builder.py +25 -0
- digitalhub_runtime_python/entities/run/ray_build/entity.py +25 -0
- digitalhub_runtime_python/entities/run/ray_build/spec.py +15 -0
- digitalhub_runtime_python/entities/run/ray_build/status.py +13 -0
- digitalhub_runtime_python/entities/run/ray_job/__init__.py +3 -0
- digitalhub_runtime_python/entities/run/ray_job/builder.py +25 -0
- digitalhub_runtime_python/entities/run/ray_job/entity.py +69 -0
- digitalhub_runtime_python/entities/run/ray_job/spec.py +68 -0
- digitalhub_runtime_python/entities/run/ray_job/status.py +13 -0
- digitalhub_runtime_python/entities/task/ray_build/__init__.py +3 -0
- digitalhub_runtime_python/entities/task/ray_build/builder.py +25 -0
- digitalhub_runtime_python/entities/task/ray_build/entity.py +25 -0
- digitalhub_runtime_python/entities/task/ray_build/spec.py +42 -0
- digitalhub_runtime_python/entities/task/ray_build/status.py +13 -0
- digitalhub_runtime_python/entities/task/ray_job/__init__.py +3 -0
- digitalhub_runtime_python/entities/task/ray_job/builder.py +25 -0
- digitalhub_runtime_python/entities/task/ray_job/entity.py +25 -0
- digitalhub_runtime_python/entities/task/ray_job/spec.py +52 -0
- digitalhub_runtime_python/entities/task/ray_job/status.py +13 -0
- digitalhub_runtime_python/runtimes/builder.py +6 -0
- digitalhub_runtime_python/runtimes/hydra_runtime.py +8 -5
- digitalhub_runtime_python/runtimes/runtime.py +5 -0
- {digitalhub_runtime_python-0.16.0b5.dist-info → digitalhub_runtime_python-0.16.0b7.dist-info}/METADATA +1 -1
- {digitalhub_runtime_python-0.16.0b5.dist-info → digitalhub_runtime_python-0.16.0b7.dist-info}/RECORD +36 -11
- {digitalhub_runtime_python-0.16.0b5.dist-info → digitalhub_runtime_python-0.16.0b7.dist-info}/WHEEL +0 -0
- {digitalhub_runtime_python-0.16.0b5.dist-info → digitalhub_runtime_python-0.16.0b7.dist-info}/licenses/AUTHORS +0 -0
- {digitalhub_runtime_python-0.16.0b5.dist-info → digitalhub_runtime_python-0.16.0b7.dist-info}/licenses/LICENSE +0 -0
|
@@ -6,6 +6,7 @@ from digitalhub_runtime_python.entities.function.guardrail.builder import Functi
|
|
|
6
6
|
from digitalhub_runtime_python.entities.function.hydra.builder import FunctionHydraBuilder
|
|
7
7
|
from digitalhub_runtime_python.entities.function.openinference.builder import FunctionOpeninferenceBuilder
|
|
8
8
|
from digitalhub_runtime_python.entities.function.python.builder import FunctionPythonBuilder
|
|
9
|
+
from digitalhub_runtime_python.entities.function.ray.builder import FunctionRayBuilder
|
|
9
10
|
from digitalhub_runtime_python.entities.run.guardrail_build.builder import RunGuardrailRunBuildBuilder
|
|
10
11
|
from digitalhub_runtime_python.entities.run.guardrail_serve.builder import RunGuardrailRunServeBuilder
|
|
11
12
|
from digitalhub_runtime_python.entities.run.hydra_build.builder import RunHydraRunBuildBuilder
|
|
@@ -16,6 +17,8 @@ from digitalhub_runtime_python.entities.run.openinference_serve.builder import R
|
|
|
16
17
|
from digitalhub_runtime_python.entities.run.python_build.builder import RunPythonRunBuildBuilder
|
|
17
18
|
from digitalhub_runtime_python.entities.run.python_job.builder import RunPythonRunJobBuilder
|
|
18
19
|
from digitalhub_runtime_python.entities.run.python_serve.builder import RunPythonRunServeBuilder
|
|
20
|
+
from digitalhub_runtime_python.entities.run.ray_build.builder import RunRayRunBuildBuilder
|
|
21
|
+
from digitalhub_runtime_python.entities.run.ray_job.builder import RunRayRunJobBuilder
|
|
19
22
|
from digitalhub_runtime_python.entities.task.guardrail_build.builder import TaskGuardrailBuildBuilder
|
|
20
23
|
from digitalhub_runtime_python.entities.task.guardrail_serve.builder import TaskGuardrailServeBuilder
|
|
21
24
|
from digitalhub_runtime_python.entities.task.hydra_build.builder import TaskHydraBuildBuilder
|
|
@@ -26,13 +29,15 @@ from digitalhub_runtime_python.entities.task.openinference_serve.builder import
|
|
|
26
29
|
from digitalhub_runtime_python.entities.task.python_build.builder import TaskPythonBuildBuilder
|
|
27
30
|
from digitalhub_runtime_python.entities.task.python_job.builder import TaskPythonJobBuilder
|
|
28
31
|
from digitalhub_runtime_python.entities.task.python_serve.builder import TaskPythonServeBuilder
|
|
29
|
-
from digitalhub_runtime_python.
|
|
32
|
+
from digitalhub_runtime_python.entities.task.ray_build.builder import TaskRayBuildBuilder
|
|
33
|
+
from digitalhub_runtime_python.entities.task.ray_job.builder import TaskRayJobBuilder
|
|
30
34
|
|
|
31
35
|
entity_builders = (
|
|
32
36
|
(EntityKinds.FUNCTION_GUARDRAIL.value, FunctionGuardrailBuilder),
|
|
33
37
|
(EntityKinds.FUNCTION_OPENINFERENCE.value, FunctionOpeninferenceBuilder),
|
|
34
38
|
(EntityKinds.FUNCTION_PYTHON.value, FunctionPythonBuilder),
|
|
35
39
|
(EntityKinds.FUNCTION_HYDRA.value, FunctionHydraBuilder),
|
|
40
|
+
(EntityKinds.FUNCTION_RAY.value, FunctionRayBuilder),
|
|
36
41
|
(EntityKinds.RUN_GUARDRAIL_BUILD.value, RunGuardrailRunBuildBuilder),
|
|
37
42
|
(EntityKinds.RUN_GUARDRAIL_SERVE.value, RunGuardrailRunServeBuilder),
|
|
38
43
|
(EntityKinds.RUN_OPENINFERENCE_BUILD.value, RunOpeninferenceRunBuildBuilder),
|
|
@@ -43,6 +48,8 @@ entity_builders = (
|
|
|
43
48
|
(EntityKinds.RUN_HYDRA_BUILD.value, RunHydraRunBuildBuilder),
|
|
44
49
|
(EntityKinds.RUN_HYDRA_JOB.value, RunHydraRunJobBuilder),
|
|
45
50
|
(EntityKinds.RUN_HYDRA_SUBTASK.value, RunHydraRunSubtaskBuilder),
|
|
51
|
+
(EntityKinds.RUN_RAY_JOB.value, RunRayRunJobBuilder),
|
|
52
|
+
(EntityKinds.RUN_RAY_BUILD.value, RunRayRunBuildBuilder),
|
|
46
53
|
(EntityKinds.TASK_GUARDRAIL_BUILD.value, TaskGuardrailBuildBuilder),
|
|
47
54
|
(EntityKinds.TASK_GUARDRAIL_SERVE.value, TaskGuardrailServeBuilder),
|
|
48
55
|
(EntityKinds.TASK_OPENINFERENCE_BUILD.value, TaskOpeninferenceBuildBuilder),
|
|
@@ -53,6 +60,8 @@ entity_builders = (
|
|
|
53
60
|
(EntityKinds.TASK_HYDRA_BUILD.value, TaskHydraBuildBuilder),
|
|
54
61
|
(EntityKinds.TASK_HYDRA_JOB.value, TaskHydraJobBuilder),
|
|
55
62
|
(EntityKinds.TASK_HYDRA_SUBTASK.value, TaskHydraSubtaskBuilder),
|
|
63
|
+
(EntityKinds.TASK_RAY_BUILD.value, TaskRayBuildBuilder),
|
|
64
|
+
(EntityKinds.TASK_RAY_JOB.value, TaskRayJobBuilder),
|
|
56
65
|
)
|
|
57
66
|
|
|
58
67
|
try:
|
|
@@ -64,6 +73,7 @@ try:
|
|
|
64
73
|
RuntimeOpeninferenceBuilder,
|
|
65
74
|
RuntimePythonBuilder,
|
|
66
75
|
RuntimePythonJobBuilder,
|
|
76
|
+
RuntimeRayBuilder,
|
|
67
77
|
)
|
|
68
78
|
|
|
69
79
|
runtime_builders = (
|
|
@@ -71,6 +81,7 @@ try:
|
|
|
71
81
|
(EntityKinds.FUNCTION_OPENINFERENCE.value, RuntimeOpeninferenceBuilder),
|
|
72
82
|
(EntityKinds.FUNCTION_PYTHON.value, RuntimePythonBuilder),
|
|
73
83
|
(EntityKinds.FUNCTION_HYDRA.value, RuntimeHydraBuilder),
|
|
84
|
+
(EntityKinds.FUNCTION_RAY.value, RuntimeRayBuilder),
|
|
74
85
|
(EntityKinds.RUN_GUARDRAIL_BUILD.value, RuntimeGuardrailBuilder),
|
|
75
86
|
(EntityKinds.RUN_GUARDRAIL_SERVE.value, RuntimeGuardrailBuilder),
|
|
76
87
|
(EntityKinds.RUN_OPENINFERENCE_BUILD.value, RuntimeOpeninferenceBuilder),
|
|
@@ -81,6 +92,8 @@ try:
|
|
|
81
92
|
(EntityKinds.RUN_HYDRA_BUILD.value, RuntimeHydraBuilder),
|
|
82
93
|
(EntityKinds.RUN_HYDRA_JOB.value, RuntimeHydraJobBuilder),
|
|
83
94
|
(EntityKinds.RUN_HYDRA_SUBTASK.value, RuntimeHydraSubtaskBuilder),
|
|
95
|
+
(EntityKinds.RUN_RAY_BUILD.value, RuntimeRayBuilder),
|
|
96
|
+
(EntityKinds.RUN_RAY_JOB.value, RuntimeRayBuilder),
|
|
84
97
|
(EntityKinds.TASK_GUARDRAIL_BUILD.value, RuntimeGuardrailBuilder),
|
|
85
98
|
(EntityKinds.TASK_GUARDRAIL_SERVE.value, RuntimeGuardrailBuilder),
|
|
86
99
|
(EntityKinds.TASK_OPENINFERENCE_BUILD.value, RuntimeOpeninferenceBuilder),
|
|
@@ -91,6 +104,8 @@ try:
|
|
|
91
104
|
(EntityKinds.TASK_HYDRA_BUILD.value, RuntimeHydraBuilder),
|
|
92
105
|
(EntityKinds.TASK_HYDRA_JOB.value, RuntimeHydraJobBuilder),
|
|
93
106
|
(EntityKinds.TASK_HYDRA_SUBTASK.value, RuntimeHydraSubtaskBuilder),
|
|
107
|
+
(EntityKinds.TASK_RAY_BUILD.value, RuntimeRayBuilder),
|
|
108
|
+
(EntityKinds.TASK_RAY_JOB.value, RuntimeRayBuilder),
|
|
94
109
|
)
|
|
95
110
|
except ImportError as e:
|
|
96
111
|
from digitalhub.utils.logger.logger import get_logger
|
|
@@ -136,3 +136,30 @@ class RuntimeEntityBuilderHydra(RuntimeEntityBuilder):
|
|
|
136
136
|
),
|
|
137
137
|
]
|
|
138
138
|
)
|
|
139
|
+
|
|
140
|
+
class RuntimeEntityBuilderRay(RuntimeEntityBuilder):
|
|
141
|
+
EXECUTABLE_KIND = EntityKinds.FUNCTION_RAY.value
|
|
142
|
+
TASKS_KINDS = map_actions(
|
|
143
|
+
[
|
|
144
|
+
(
|
|
145
|
+
EntityKinds.TASK_RAY_JOB.value,
|
|
146
|
+
Actions.JOB.value,
|
|
147
|
+
),
|
|
148
|
+
(
|
|
149
|
+
EntityKinds.TASK_RAY_BUILD.value,
|
|
150
|
+
Actions.BUILD.value,
|
|
151
|
+
),
|
|
152
|
+
]
|
|
153
|
+
)
|
|
154
|
+
RUN_KINDS = map_actions(
|
|
155
|
+
[
|
|
156
|
+
(
|
|
157
|
+
EntityKinds.RUN_RAY_JOB.value,
|
|
158
|
+
Actions.JOB.value,
|
|
159
|
+
),
|
|
160
|
+
(
|
|
161
|
+
EntityKinds.RUN_RAY_BUILD.value,
|
|
162
|
+
Actions.BUILD.value,
|
|
163
|
+
),
|
|
164
|
+
]
|
|
165
|
+
)
|
|
@@ -40,6 +40,11 @@ class EntityKinds(Enum):
|
|
|
40
40
|
RUN_HYDRA_JOB = "hydra+job:run"
|
|
41
41
|
RUN_HYDRA_SUBTASK = "hydra+subtask:run"
|
|
42
42
|
|
|
43
|
+
FUNCTION_RAY = "ray"
|
|
44
|
+
TASK_RAY_BUILD = "ray+build"
|
|
45
|
+
TASK_RAY_JOB = "ray+job"
|
|
46
|
+
RUN_RAY_BUILD = "ray+build:run"
|
|
47
|
+
RUN_RAY_JOB = "ray+job:run"
|
|
43
48
|
|
|
44
49
|
class Actions(Enum):
|
|
45
50
|
"""
|
|
@@ -0,0 +1,24 @@
|
|
|
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._base.runtime_entity.builder import RuntimeEntityBuilderRay
|
|
8
|
+
from digitalhub_runtime_python.entities._commons.enums import EntityKinds
|
|
9
|
+
from digitalhub_runtime_python.entities.function._base.builder import FunctionBaseBuilder
|
|
10
|
+
from digitalhub_runtime_python.entities.function.ray.entity import FunctionRay
|
|
11
|
+
from digitalhub_runtime_python.entities.function.ray.spec import FunctionSpecRay, FunctionValidatorRay
|
|
12
|
+
from digitalhub_runtime_python.entities.function.ray.status import FunctionStatusRay
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class FunctionRayBuilder(FunctionBaseBuilder, RuntimeEntityBuilderRay):
|
|
16
|
+
"""
|
|
17
|
+
Ray Python function builder.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
ENTITY_CLASS = FunctionRay
|
|
21
|
+
ENTITY_SPEC_CLASS = FunctionSpecRay
|
|
22
|
+
ENTITY_SPEC_VALIDATOR = FunctionValidatorRay
|
|
23
|
+
ENTITY_STATUS_CLASS = FunctionStatusRay
|
|
24
|
+
ENTITY_KIND = EntityKinds.FUNCTION_RAY.value
|
|
@@ -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
|
+
import typing
|
|
8
|
+
|
|
9
|
+
from digitalhub_runtime_python.entities.function._base.entity import FunctionBaseFunction
|
|
10
|
+
|
|
11
|
+
if typing.TYPE_CHECKING:
|
|
12
|
+
from digitalhub_runtime_python.entities.function.ray.spec import FunctionSpecRay
|
|
13
|
+
from digitalhub_runtime_python.entities.function.ray.status import FunctionStatusRay
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class FunctionRay(FunctionBaseFunction):
|
|
17
|
+
"""
|
|
18
|
+
FunctionRay class.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
def __init__(self, *args, **kwargs) -> None:
|
|
22
|
+
super().__init__(*args, **kwargs)
|
|
23
|
+
|
|
24
|
+
self.spec: FunctionSpecRay
|
|
25
|
+
self.status: FunctionStatusRay
|
|
@@ -0,0 +1,57 @@
|
|
|
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.function._base.spec import FunctionSpec, FunctionValidator
|
|
8
|
+
|
|
9
|
+
from digitalhub_runtime_python.entities.function.python.models import PythonVersion, SourceValidator
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class FunctionSpecRay(FunctionSpec):
|
|
13
|
+
"""
|
|
14
|
+
FunctionSpecRay specifications.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
def __init__(
|
|
18
|
+
self,
|
|
19
|
+
source: dict | None = None,
|
|
20
|
+
image: str | None = None,
|
|
21
|
+
base_image: str | None = None,
|
|
22
|
+
python_version: str | None = None,
|
|
23
|
+
requirements: list | None = None,
|
|
24
|
+
ray_version: str | None = None,
|
|
25
|
+
) -> None:
|
|
26
|
+
super().__init__()
|
|
27
|
+
|
|
28
|
+
self.image = image
|
|
29
|
+
self.base_image = base_image
|
|
30
|
+
self.python_version = python_version
|
|
31
|
+
self.requirements = requirements
|
|
32
|
+
self.ray_version = ray_version
|
|
33
|
+
self.source = source
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class FunctionValidatorRay(FunctionValidator):
|
|
37
|
+
"""
|
|
38
|
+
FunctionValidatorRay validator.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
source: SourceValidator
|
|
42
|
+
"""Source code validator"""
|
|
43
|
+
|
|
44
|
+
python_version: PythonVersion
|
|
45
|
+
"Python version"
|
|
46
|
+
|
|
47
|
+
image: str | None = None
|
|
48
|
+
"Image where the function will be executed"
|
|
49
|
+
|
|
50
|
+
base_image: str | None = None
|
|
51
|
+
"Base image used to build the image where the function will be executed"
|
|
52
|
+
|
|
53
|
+
requirements: list[str] | str | None = None
|
|
54
|
+
"Requirements list to be installed in the image where the function will be executed"
|
|
55
|
+
|
|
56
|
+
ray_version: str | None = None
|
|
57
|
+
"Ray version"
|
|
@@ -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.entities.function._base.status import FunctionStatus
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class FunctionStatusRay(FunctionStatus):
|
|
11
|
+
"""
|
|
12
|
+
FunctionStatusRay 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 RuntimeEntityBuilderRay
|
|
10
|
+
from digitalhub_runtime_python.entities._commons.enums import EntityKinds
|
|
11
|
+
from digitalhub_runtime_python.entities.run.ray_build.entity import RunRayRunBuild
|
|
12
|
+
from digitalhub_runtime_python.entities.run.ray_build.spec import RunSpecRayRunBuild, RunValidatorRayRunBuild
|
|
13
|
+
from digitalhub_runtime_python.entities.run.ray_build.status import RunStatusRayRunBuild
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class RunRayRunBuildBuilder(RunBuilder, RuntimeEntityBuilderRay):
|
|
17
|
+
"""
|
|
18
|
+
RunRayRunBuildBuilder runner.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
ENTITY_CLASS = RunRayRunBuild
|
|
22
|
+
ENTITY_SPEC_CLASS = RunSpecRayRunBuild
|
|
23
|
+
ENTITY_SPEC_VALIDATOR = RunValidatorRayRunBuild
|
|
24
|
+
ENTITY_STATUS_CLASS = RunStatusRayRunBuild
|
|
25
|
+
ENTITY_KIND = EntityKinds.RUN_RAY_BUILD.value
|
|
@@ -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
|
+
import typing
|
|
8
|
+
|
|
9
|
+
from digitalhub_runtime_python.entities.run._base.entity import RunBaseBuildRun
|
|
10
|
+
|
|
11
|
+
if typing.TYPE_CHECKING:
|
|
12
|
+
from digitalhub_runtime_python.entities.run.ray_build.spec import RunSpecRayRunBuild
|
|
13
|
+
from digitalhub_runtime_python.entities.run.ray_build.status import RunStatusRayRunBuild
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class RunRayRunBuild(RunBaseBuildRun):
|
|
17
|
+
"""
|
|
18
|
+
RunRayRunBuild class.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
def __init__(self, *args, **kwargs) -> None:
|
|
22
|
+
super().__init__(*args, **kwargs)
|
|
23
|
+
|
|
24
|
+
self.spec: RunSpecRayRunBuild
|
|
25
|
+
self.status: RunStatusRayRunBuild
|
|
@@ -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 RunSpecBaseRun, RunValidatorBaseRun
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class RunSpecRayRunBuild(RunSpecBaseRun):
|
|
11
|
+
"""RunSpecRayRunBuild specifications."""
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class RunValidatorRayRunBuild(RunValidatorBaseRun):
|
|
15
|
+
"""RunValidatorRayRunBuild 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 RunStatusBaseRun
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class RunStatusRayRunBuild(RunStatusBaseRun):
|
|
11
|
+
"""
|
|
12
|
+
RunStatusRayRunBuild 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.ray_job.entity import RunRayRunJob
|
|
12
|
+
from digitalhub_runtime_python.entities.run.ray_job.spec import RunSpecRayRunJob, RunValidatorRayRunJob
|
|
13
|
+
from digitalhub_runtime_python.entities.run.ray_job.status import RunStatusRayRunJob
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class RunRayRunJobBuilder(RunBuilder, RuntimeEntityBuilderPython):
|
|
17
|
+
"""
|
|
18
|
+
RunRayRunJobBuilder runner.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
ENTITY_CLASS = RunRayRunJob
|
|
22
|
+
ENTITY_SPEC_CLASS = RunSpecRayRunJob
|
|
23
|
+
ENTITY_SPEC_VALIDATOR = RunValidatorRayRunJob
|
|
24
|
+
ENTITY_STATUS_CLASS = RunStatusRayRunJob
|
|
25
|
+
ENTITY_KIND = EntityKinds.RUN_RAY_JOB.value
|
|
@@ -0,0 +1,69 @@
|
|
|
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 RunBaseRun
|
|
10
|
+
|
|
11
|
+
if typing.TYPE_CHECKING:
|
|
12
|
+
from digitalhub_runtime_python.entities.run.ray_job.spec import RunSpecRayRunJob
|
|
13
|
+
from digitalhub_runtime_python.entities.run.ray_job.status import RunStatusRayRunJob
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class RunRayRunJob(RunBaseRun):
|
|
17
|
+
"""
|
|
18
|
+
RunRayRunJob class.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
def __init__(self, *args, **kwargs) -> None:
|
|
22
|
+
super().__init__(*args, **kwargs)
|
|
23
|
+
|
|
24
|
+
self.spec: RunSpecRayRunJob
|
|
25
|
+
self.status: RunStatusRayRunJob
|
|
26
|
+
|
|
27
|
+
def local_execution(self) -> bool:
|
|
28
|
+
"""
|
|
29
|
+
Check if run has local execution.
|
|
30
|
+
|
|
31
|
+
Returns
|
|
32
|
+
-------
|
|
33
|
+
bool
|
|
34
|
+
True if run has local execution, False otherwise.
|
|
35
|
+
"""
|
|
36
|
+
return self.spec.local_execution
|
|
37
|
+
|
|
38
|
+
def add_output(self, name: str, value: str) -> None:
|
|
39
|
+
"""
|
|
40
|
+
Add an output to the run job.
|
|
41
|
+
|
|
42
|
+
Parameters
|
|
43
|
+
----------
|
|
44
|
+
name : str
|
|
45
|
+
The name of the output.
|
|
46
|
+
value : str
|
|
47
|
+
The value of the output.
|
|
48
|
+
"""
|
|
49
|
+
if self.status.outputs is None:
|
|
50
|
+
self.status.outputs = {}
|
|
51
|
+
self.status.outputs[name] = value
|
|
52
|
+
|
|
53
|
+
def set_status(self, status: dict) -> None:
|
|
54
|
+
"""
|
|
55
|
+
Patch to merge outputs when updating status.
|
|
56
|
+
|
|
57
|
+
Parameters
|
|
58
|
+
----------
|
|
59
|
+
status : dict
|
|
60
|
+
The status dictionary to update.
|
|
61
|
+
"""
|
|
62
|
+
if self.status.outputs is None:
|
|
63
|
+
self.status.outputs = {}
|
|
64
|
+
if "outputs" in status:
|
|
65
|
+
status["outputs"] = {
|
|
66
|
+
**self.status.outputs,
|
|
67
|
+
**status["outputs"],
|
|
68
|
+
}
|
|
69
|
+
return super().set_status(status)
|
|
@@ -0,0 +1,68 @@
|
|
|
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 RunSpecBaseRun, RunValidatorBaseRun
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class RunSpecRayRunJob(RunSpecBaseRun):
|
|
11
|
+
"""RunSpecRayRunJob specifications."""
|
|
12
|
+
|
|
13
|
+
def __init__(
|
|
14
|
+
self,
|
|
15
|
+
task: str,
|
|
16
|
+
function: str | None = None,
|
|
17
|
+
workflow: str | None = None,
|
|
18
|
+
volumes: list[dict] | None = None,
|
|
19
|
+
resources: dict | None = None,
|
|
20
|
+
envs: list[dict] | None = None,
|
|
21
|
+
secrets: list[str] | None = None,
|
|
22
|
+
profile: str | None = None,
|
|
23
|
+
source: dict | None = None,
|
|
24
|
+
image: str | None = None,
|
|
25
|
+
base_image: str | None = None,
|
|
26
|
+
python_version: str | None = None,
|
|
27
|
+
requirements: list | None = None,
|
|
28
|
+
service_type: str | None = None,
|
|
29
|
+
service_name: str | None = None,
|
|
30
|
+
replicas: int | None = None,
|
|
31
|
+
instructions: dict | None = None,
|
|
32
|
+
inputs: dict | None = None,
|
|
33
|
+
parameters: dict | None = None,
|
|
34
|
+
init_parameters: dict | None = None,
|
|
35
|
+
local_execution: bool = False,
|
|
36
|
+
**kwargs,
|
|
37
|
+
) -> None:
|
|
38
|
+
super().__init__(
|
|
39
|
+
task,
|
|
40
|
+
function,
|
|
41
|
+
workflow,
|
|
42
|
+
volumes,
|
|
43
|
+
resources,
|
|
44
|
+
envs,
|
|
45
|
+
secrets,
|
|
46
|
+
profile,
|
|
47
|
+
source,
|
|
48
|
+
image,
|
|
49
|
+
base_image,
|
|
50
|
+
python_version,
|
|
51
|
+
requirements,
|
|
52
|
+
service_type,
|
|
53
|
+
service_name,
|
|
54
|
+
replicas,
|
|
55
|
+
instructions,
|
|
56
|
+
inputs,
|
|
57
|
+
parameters,
|
|
58
|
+
init_parameters,
|
|
59
|
+
**kwargs,
|
|
60
|
+
)
|
|
61
|
+
self.local_execution = local_execution
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class RunValidatorRayRunJob(RunValidatorBaseRun):
|
|
65
|
+
"""RunValidatorRayRunJob validator."""
|
|
66
|
+
|
|
67
|
+
local_execution: bool = False
|
|
68
|
+
"""Whether to execute the run locally instead of in the cluster."""
|
|
@@ -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 RunStatusBaseRun
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class RunStatusRayRunJob(RunStatusBaseRun):
|
|
11
|
+
"""
|
|
12
|
+
RunStatusRayRunJob 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.task._base.builder import TaskBuilder
|
|
8
|
+
|
|
9
|
+
from digitalhub_runtime_python.entities._base.runtime_entity.builder import RuntimeEntityBuilderRay
|
|
10
|
+
from digitalhub_runtime_python.entities._commons.enums import EntityKinds
|
|
11
|
+
from digitalhub_runtime_python.entities.task.ray_build.entity import TaskRayBuild
|
|
12
|
+
from digitalhub_runtime_python.entities.task.ray_build.spec import TaskSpecRayBuild, TaskValidatorRayBuild
|
|
13
|
+
from digitalhub_runtime_python.entities.task.ray_build.status import TaskStatusRayBuild
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class TaskRayBuildBuilder(TaskBuilder, RuntimeEntityBuilderRay):
|
|
17
|
+
"""
|
|
18
|
+
TaskRayBuild builder.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
ENTITY_CLASS = TaskRayBuild
|
|
22
|
+
ENTITY_SPEC_CLASS = TaskSpecRayBuild
|
|
23
|
+
ENTITY_SPEC_VALIDATOR = TaskValidatorRayBuild
|
|
24
|
+
ENTITY_STATUS_CLASS = TaskStatusRayBuild
|
|
25
|
+
ENTITY_KIND = EntityKinds.TASK_RAY_BUILD.value
|
|
@@ -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
|
+
import typing
|
|
8
|
+
|
|
9
|
+
from digitalhub.entities.task._base.entity import Task
|
|
10
|
+
|
|
11
|
+
if typing.TYPE_CHECKING:
|
|
12
|
+
from digitalhub_runtime_python.entities.task.ray_build.spec import TaskSpecRayBuild
|
|
13
|
+
from digitalhub_runtime_python.entities.task.ray_build.status import TaskStatusRayBuild
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class TaskRayBuild(Task):
|
|
17
|
+
"""
|
|
18
|
+
TaskRayBuild class.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
def __init__(self, *args, **kwargs) -> None:
|
|
22
|
+
super().__init__(*args, **kwargs)
|
|
23
|
+
|
|
24
|
+
self.spec: TaskSpecRayBuild
|
|
25
|
+
self.status: TaskStatusRayBuild
|
|
@@ -0,0 +1,42 @@
|
|
|
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.task._base.spec import TaskSpecFunction, TaskValidatorFunction
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TaskSpecRayBuild(TaskSpecFunction):
|
|
11
|
+
"""TaskSpecRayBuild specifications."""
|
|
12
|
+
|
|
13
|
+
def __init__(
|
|
14
|
+
self,
|
|
15
|
+
function: str,
|
|
16
|
+
volumes: list[dict] | None = None,
|
|
17
|
+
resources: dict | None = None,
|
|
18
|
+
envs: list[dict] | None = None,
|
|
19
|
+
secrets: list[str] | None = None,
|
|
20
|
+
profile: str | None = None,
|
|
21
|
+
instructions: list | None = None,
|
|
22
|
+
**kwargs,
|
|
23
|
+
) -> None:
|
|
24
|
+
super().__init__(
|
|
25
|
+
function=function,
|
|
26
|
+
volumes=volumes,
|
|
27
|
+
resources=resources,
|
|
28
|
+
envs=envs,
|
|
29
|
+
secrets=secrets,
|
|
30
|
+
profile=profile,
|
|
31
|
+
**kwargs,
|
|
32
|
+
)
|
|
33
|
+
self.instructions = instructions
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class TaskValidatorRayBuild(TaskValidatorFunction):
|
|
37
|
+
"""
|
|
38
|
+
TaskValidatorRayBuild validator.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
instructions: list[str] | None = None
|
|
42
|
+
"""Build instructions."""
|
|
@@ -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.entities.task._base.status import TaskStatus
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TaskStatusRayBuild(TaskStatus):
|
|
11
|
+
"""
|
|
12
|
+
TaskStatusRayBuild 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.task._base.builder import TaskBuilder
|
|
8
|
+
|
|
9
|
+
from digitalhub_runtime_python.entities._base.runtime_entity.builder import RuntimeEntityBuilderRay
|
|
10
|
+
from digitalhub_runtime_python.entities._commons.enums import EntityKinds
|
|
11
|
+
from digitalhub_runtime_python.entities.task.ray_job.entity import TaskRayJob
|
|
12
|
+
from digitalhub_runtime_python.entities.task.ray_job.spec import TaskSpecRayJob, TaskValidatorRayJob
|
|
13
|
+
from digitalhub_runtime_python.entities.task.ray_job.status import TaskStatusRayJob
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class TaskRayJobBuilder(TaskBuilder, RuntimeEntityBuilderRay):
|
|
17
|
+
"""
|
|
18
|
+
TaskRayJobBuilder jober.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
ENTITY_CLASS = TaskRayJob
|
|
22
|
+
ENTITY_SPEC_CLASS = TaskSpecRayJob
|
|
23
|
+
ENTITY_SPEC_VALIDATOR = TaskValidatorRayJob
|
|
24
|
+
ENTITY_STATUS_CLASS = TaskStatusRayJob
|
|
25
|
+
ENTITY_KIND = EntityKinds.TASK_RAY_JOB.value
|
|
@@ -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
|
+
import typing
|
|
8
|
+
|
|
9
|
+
from digitalhub.entities.task._base.entity import Task
|
|
10
|
+
|
|
11
|
+
if typing.TYPE_CHECKING:
|
|
12
|
+
from digitalhub_runtime_python.entities.task.ray_job.spec import TaskSpecRayJob
|
|
13
|
+
from digitalhub_runtime_python.entities.task.ray_job.status import TaskStatusRayJob
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class TaskRayJob(Task):
|
|
17
|
+
"""
|
|
18
|
+
TaskRayJob class.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
def __init__(self, *args, **kwargs) -> None:
|
|
22
|
+
super().__init__(*args, **kwargs)
|
|
23
|
+
|
|
24
|
+
self.spec: TaskSpecRayJob
|
|
25
|
+
self.status: TaskStatusRayJob
|
|
@@ -0,0 +1,52 @@
|
|
|
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.task._base.spec import TaskSpecFunction, TaskValidatorFunction
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TaskSpecRayJob(TaskSpecFunction):
|
|
11
|
+
"""
|
|
12
|
+
TaskSpecRayJob specifications.
|
|
13
|
+
"""
|
|
14
|
+
def __init__(
|
|
15
|
+
self,
|
|
16
|
+
function: str,
|
|
17
|
+
volumes: list[dict] | None = None,
|
|
18
|
+
resources: dict | None = None,
|
|
19
|
+
envs: list[dict] | None = None,
|
|
20
|
+
secrets: list[str] | None = None,
|
|
21
|
+
profile: str | None = None,
|
|
22
|
+
replicas: int | None = None,
|
|
23
|
+
min_replicas: int | None = None,
|
|
24
|
+
max_replicas: int | None = None,
|
|
25
|
+
**kwargs,
|
|
26
|
+
) -> None:
|
|
27
|
+
super().__init__(
|
|
28
|
+
function=function,
|
|
29
|
+
volumes=volumes,
|
|
30
|
+
resources=resources,
|
|
31
|
+
envs=envs,
|
|
32
|
+
secrets=secrets,
|
|
33
|
+
profile=profile,
|
|
34
|
+
**kwargs,
|
|
35
|
+
)
|
|
36
|
+
self.replicas = replicas
|
|
37
|
+
self.min_replicas = min_replicas
|
|
38
|
+
self.max_replicas = max_replicas
|
|
39
|
+
|
|
40
|
+
class TaskValidatorRayJob(TaskValidatorFunction):
|
|
41
|
+
"""
|
|
42
|
+
TaskValidatorRayJob validator.
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
replicas: int | None = None
|
|
46
|
+
"""Number of replicas."""
|
|
47
|
+
|
|
48
|
+
min_replicas: int | None = None
|
|
49
|
+
"""Minimum number of replicas."""
|
|
50
|
+
|
|
51
|
+
max_replicas: int | None = None
|
|
52
|
+
"""Maximum number of replicas."""
|
|
@@ -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.entities.task._base.status import TaskStatus
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TaskStatusRayJob(TaskStatus):
|
|
11
|
+
"""
|
|
12
|
+
TaskStatusRayJob status.
|
|
13
|
+
"""
|
|
@@ -16,6 +16,7 @@ from digitalhub_runtime_python.runtimes.runtime import (
|
|
|
16
16
|
RuntimeOpeninference,
|
|
17
17
|
RuntimePython,
|
|
18
18
|
RuntimePythonJob,
|
|
19
|
+
RuntimeRay,
|
|
19
20
|
)
|
|
20
21
|
|
|
21
22
|
|
|
@@ -59,3 +60,8 @@ class RuntimeHydraSubtaskBuilder(RuntimeBuilder):
|
|
|
59
60
|
"""RuntimeHydraSubtaskBuilder class."""
|
|
60
61
|
|
|
61
62
|
RUNTIME_CLASS = RuntimeHydraSubtask
|
|
63
|
+
|
|
64
|
+
class RuntimeRayBuilder(RuntimeBuilder):
|
|
65
|
+
"""RuntimeRayBuilder class."""
|
|
66
|
+
|
|
67
|
+
RUNTIME_CLASS = RuntimeRay
|
|
@@ -132,7 +132,6 @@ class RuntimeHydraJob(RuntimePythonJob):
|
|
|
132
132
|
if "parameters" in spec:
|
|
133
133
|
sys.argv += [f"{key}={value}" for key, value in spec["parameters"].items()]
|
|
134
134
|
|
|
135
|
-
|
|
136
135
|
# import from source
|
|
137
136
|
fnc = import_function_from_source(
|
|
138
137
|
source_path,
|
|
@@ -149,6 +148,10 @@ class RuntimeHydraSubtask(RuntimePythonJob):
|
|
|
149
148
|
"""
|
|
150
149
|
|
|
151
150
|
def _configure_execution(self, spec: dict) -> tuple[Callable, bool]:
|
|
151
|
+
from hydra.core.utils import setup_globals
|
|
152
|
+
|
|
153
|
+
setup_globals()
|
|
154
|
+
|
|
152
155
|
source_spec = spec.get("source", {})
|
|
153
156
|
path = self.runtime_dir
|
|
154
157
|
|
|
@@ -158,13 +161,13 @@ class RuntimeHydraSubtask(RuntimePythonJob):
|
|
|
158
161
|
return fnc, False
|
|
159
162
|
|
|
160
163
|
def _compose_args(self, func, spec, project):
|
|
161
|
-
# expect to be wrapped with hydra.main, '
|
|
164
|
+
# expect to be wrapped with hydra.main, 'cfg_passthrough' is in the parameters, and Omecaconf is present
|
|
162
165
|
from omegaconf import OmegaConf
|
|
163
166
|
|
|
164
|
-
|
|
167
|
+
cfg = spec.get("parameters", {}).get("cfg_passthrough", {})
|
|
165
168
|
try:
|
|
166
|
-
args
|
|
169
|
+
args = {"cfg_passthrough": OmegaConf.create(cfg)}
|
|
167
170
|
except Exception as e: # noqa: BLE001
|
|
168
171
|
print(f"Failed to convert cfg to container. Exception: {e.__class__}. Error: {e.args}")
|
|
169
|
-
args
|
|
172
|
+
args = {"cfg_passthrough": {}}
|
|
170
173
|
return args
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: digitalhub-runtime-python
|
|
3
|
-
Version: 0.16.
|
|
3
|
+
Version: 0.16.0b7
|
|
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>
|
{digitalhub_runtime_python-0.16.0b5.dist-info → digitalhub_runtime_python-0.16.0b7.dist-info}/RECORD
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
digitalhub_runtime_python/__init__.py,sha256=
|
|
1
|
+
digitalhub_runtime_python/__init__.py,sha256=qy17THET_iivXjtbaV0UfuN8tAWtEqND2Y_BXWt8NQ8,7623
|
|
2
2
|
digitalhub_runtime_python/entities/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
3
3
|
digitalhub_runtime_python/entities/_base/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
4
4
|
digitalhub_runtime_python/entities/_base/runtime_entity/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
5
|
-
digitalhub_runtime_python/entities/_base/runtime_entity/builder.py,sha256=
|
|
5
|
+
digitalhub_runtime_python/entities/_base/runtime_entity/builder.py,sha256=VaARLEaABav4-xCe6GDS6HhkPI4akmHLVHyobDi3sPk,4361
|
|
6
6
|
digitalhub_runtime_python/entities/_commons/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
7
|
-
digitalhub_runtime_python/entities/_commons/enums.py,sha256=
|
|
7
|
+
digitalhub_runtime_python/entities/_commons/enums.py,sha256=nnCvH9EOzf8V7GQsr91FPV8U2eB7ITzPQGb6C2lY6j8,1536
|
|
8
8
|
digitalhub_runtime_python/entities/_commons/utils.py,sha256=nmwB-4KoruimUK0NhGvzMeo2P4ulFnr13zfuxgE9ZMs,5714
|
|
9
9
|
digitalhub_runtime_python/entities/_commons/requirement_parser/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
10
10
|
digitalhub_runtime_python/entities/_commons/requirement_parser/enums.py,sha256=plZQOcr83YVYxfStdIFFw8U3BG9u8716H0B8KZUYzBc,540
|
|
@@ -44,6 +44,11 @@ digitalhub_runtime_python/entities/function/python/entity.py,sha256=P62w_UKVfFzC
|
|
|
44
44
|
digitalhub_runtime_python/entities/function/python/models.py,sha256=sJ0Gd_EV66zRmKbYPjrHgLt3cgAmz5JhkFOJkSeG0yo,1031
|
|
45
45
|
digitalhub_runtime_python/entities/function/python/spec.py,sha256=6TkwV0kGVryvZmvMY12RzfsTzw4D2Pm43dRNi3IvGy0,1428
|
|
46
46
|
digitalhub_runtime_python/entities/function/python/status.py,sha256=XK3KPKovCRiMfEFzFeCzaVkoQyuwfci9nI2JzYxCIec,308
|
|
47
|
+
digitalhub_runtime_python/entities/function/ray/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
48
|
+
digitalhub_runtime_python/entities/function/ray/builder.py,sha256=JdA-w_7hdNeJv0EAQNEqp5Mo_UjB5KTHBCABKBjBJwI,1012
|
|
49
|
+
digitalhub_runtime_python/entities/function/ray/entity.py,sha256=lw5rgO-FLb7fgiYEOVMotwDexSQjwaNJVdoNcy-l1PM,698
|
|
50
|
+
digitalhub_runtime_python/entities/function/ray/spec.py,sha256=ZVL6e8W6bmW5QSS4Vy3L32ixXkZHEQjBpW6xD8c6BZM,1548
|
|
51
|
+
digitalhub_runtime_python/entities/function/ray/status.py,sha256=oaZ4E7sgOlmAqVNtWP3XSbERki0NaimyX_jN4DBSi00,302
|
|
47
52
|
digitalhub_runtime_python/entities/run/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
48
53
|
digitalhub_runtime_python/entities/run/_base/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
49
54
|
digitalhub_runtime_python/entities/run/_base/entity.py,sha256=BusdxsgFU6pTwxawOodRGqAr_26h0RFBl6_8A2UmVDQ,6130
|
|
@@ -100,6 +105,16 @@ digitalhub_runtime_python/entities/run/python_serve/builder.py,sha256=bMpSF05YdE
|
|
|
100
105
|
digitalhub_runtime_python/entities/run/python_serve/entity.py,sha256=AqDYz7vg2D_pTkdpUaJBZhrpt8ciN_tWsyxM0GJdwb0,2438
|
|
101
106
|
digitalhub_runtime_python/entities/run/python_serve/spec.py,sha256=JWgbuBn4a0HtwPNQkCUNzRHAmn4KlSnqTarcykf76ak,442
|
|
102
107
|
digitalhub_runtime_python/entities/run/python_serve/status.py,sha256=eYrDLQy2rTxdhr1UfmwlhEPn2ZqYf7nr11OiCO3tziY,328
|
|
108
|
+
digitalhub_runtime_python/entities/run/ray_build/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
109
|
+
digitalhub_runtime_python/entities/run/ray_build/builder.py,sha256=nXrMlwImOdmCiWNOr0cJ31Dcqu8GxD40vpxVGUCgR0M,1007
|
|
110
|
+
digitalhub_runtime_python/entities/run/ray_build/entity.py,sha256=RJ9HfBVVeITGt3UxtdbYVxGcQYUHfYrX9IlWiTAafYk,703
|
|
111
|
+
digitalhub_runtime_python/entities/run/ray_build/spec.py,sha256=kKAmp-c1_-YF77pRYTNl57GOdahua2a7EiHaLyh4leU,430
|
|
112
|
+
digitalhub_runtime_python/entities/run/ray_build/status.py,sha256=GB40PoeN9_qyagmpfLELn4QzCBsdbT6Y4Wfw3hGn2uM,322
|
|
113
|
+
digitalhub_runtime_python/entities/run/ray_job/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
114
|
+
digitalhub_runtime_python/entities/run/ray_job/builder.py,sha256=X5e-qQFqokdnR9JQJoSpyshy4DRzTUuWG8vhwUm6b6k,985
|
|
115
|
+
digitalhub_runtime_python/entities/run/ray_job/entity.py,sha256=C8xYddOROdYoBuAaJg9JdJfgr3akJWKodK2LlbrGFIM,1829
|
|
116
|
+
digitalhub_runtime_python/entities/run/ray_job/spec.py,sha256=yWa3RjW03K8x7esa8ZZNqMTu7ODMnZ296phV0LysxtA,1964
|
|
117
|
+
digitalhub_runtime_python/entities/run/ray_job/status.py,sha256=fNvKxkyYGh-SuNOZk_dL4vqhzrXdaNOi4hlyhY_jGu8,318
|
|
103
118
|
digitalhub_runtime_python/entities/task/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
104
119
|
digitalhub_runtime_python/entities/task/guardrail_build/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
105
120
|
digitalhub_runtime_python/entities/task/guardrail_build/builder.py,sha256=TSPhUAvKv_bu7SOMNSRMR72KenDsHr8ynkR3iB-eJDo,1097
|
|
@@ -151,16 +166,26 @@ digitalhub_runtime_python/entities/task/python_serve/builder.py,sha256=brciGDBI0
|
|
|
151
166
|
digitalhub_runtime_python/entities/task/python_serve/entity.py,sha256=UP9iLJJ5bwRymGdvmEq9RCSryfPaVLUl8N3iPBqhW2I,681
|
|
152
167
|
digitalhub_runtime_python/entities/task/python_serve/spec.py,sha256=VDkEvgoxYv5O7v5n_xR2PQnRJW4fxPPNeEHZpV1kvBc,1504
|
|
153
168
|
digitalhub_runtime_python/entities/task/python_serve/status.py,sha256=OqKVBAhiQDXJb_qogxV8qqh6eyPjudT4puXx8bg_6XU,298
|
|
169
|
+
digitalhub_runtime_python/entities/task/ray_build/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
170
|
+
digitalhub_runtime_python/entities/task/ray_build/builder.py,sha256=lmcVrWgrqE1bhYtfifBSbbcKdjVpVwx5A-yfBWHRhRE,988
|
|
171
|
+
digitalhub_runtime_python/entities/task/ray_build/entity.py,sha256=ccalJFjpgtX3JkMvS9tM4OL_kMTkyh8dVnp6skGb59A,657
|
|
172
|
+
digitalhub_runtime_python/entities/task/ray_build/spec.py,sha256=VCDMBdJiafe4z20XZbfZrRV5xPxeu9EJSPfw1GgZoNM,1103
|
|
173
|
+
digitalhub_runtime_python/entities/task/ray_build/status.py,sha256=Ipmuz093ODy0gOXs-ZG-9qO8Bqtw6bmspbVc-Czt5Tk,292
|
|
174
|
+
digitalhub_runtime_python/entities/task/ray_job/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
175
|
+
digitalhub_runtime_python/entities/task/ray_job/builder.py,sha256=3kwmbaofzNdBySAHGg3AAlkMkXHngxKu0M3fkmQgEMQ,965
|
|
176
|
+
digitalhub_runtime_python/entities/task/ray_job/entity.py,sha256=JklCYqnbseC7Ds0Zd76av7jM901WWd7QjDHDMI5diCo,641
|
|
177
|
+
digitalhub_runtime_python/entities/task/ray_job/spec.py,sha256=fe1qDy4uiquidErcLEanUDWJ6AExgwBP8tJi81f9EN8,1394
|
|
178
|
+
digitalhub_runtime_python/entities/task/ray_job/status.py,sha256=Ouc9v4pKQ93ECp5CjnWeedFoDLe3FxuhaPRhQiF1JT4,288
|
|
154
179
|
digitalhub_runtime_python/runtimes/__init__.py,sha256=IRY2i9U97wptE3OcC_NO-EBmcAH6-Q36gMCspKetQ0k,107
|
|
155
|
-
digitalhub_runtime_python/runtimes/builder.py,sha256=
|
|
156
|
-
digitalhub_runtime_python/runtimes/hydra_runtime.py,sha256=
|
|
157
|
-
digitalhub_runtime_python/runtimes/runtime.py,sha256=
|
|
180
|
+
digitalhub_runtime_python/runtimes/builder.py,sha256=dw6cR459hHqyaf4veC9MohOGBvpGBWJzSTmGR6CHNc0,1494
|
|
181
|
+
digitalhub_runtime_python/runtimes/hydra_runtime.py,sha256=kC_C-OX6jlpwozheH0YVEQ6gNGBgkO0cm70AQNob28A,6386
|
|
182
|
+
digitalhub_runtime_python/runtimes/runtime.py,sha256=IlcHcI_75-xMFIlFaly-QyVnjdHAiZLqJbh1axqaxyA,4038
|
|
158
183
|
digitalhub_runtime_python/utils/configuration.py,sha256=1GyCOtl-mQ4lgv6UplpaB-wj1E-VoWChAC_G6HbYXzE,9177
|
|
159
184
|
digitalhub_runtime_python/utils/inputs.py,sha256=c-dU61jHXrTd-5XJt4LacjfDzi_vWZFKwuJCbqAGdJQ,5806
|
|
160
185
|
digitalhub_runtime_python/utils/outputs.py,sha256=irGUqy43F26NC1_ruH831NDyDTIVQHwIf15oXpR-q2M,9571
|
|
161
186
|
digitalhub_runtime_python/utils/utils.py,sha256=qO-wh-9qJFvoJnWIWNeajtFQuBSYw3xhCI3JqV9gVHE,1936
|
|
162
|
-
digitalhub_runtime_python-0.16.
|
|
163
|
-
digitalhub_runtime_python-0.16.
|
|
164
|
-
digitalhub_runtime_python-0.16.
|
|
165
|
-
digitalhub_runtime_python-0.16.
|
|
166
|
-
digitalhub_runtime_python-0.16.
|
|
187
|
+
digitalhub_runtime_python-0.16.0b7.dist-info/METADATA,sha256=AmUyYfESy88itgSrzQrrZpBJ2-oGHgCFyCKBYSIVfLI,17080
|
|
188
|
+
digitalhub_runtime_python-0.16.0b7.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
|
|
189
|
+
digitalhub_runtime_python-0.16.0b7.dist-info/licenses/AUTHORS,sha256=iDleK_2EAMmh0o8Te_E9mdXQCP4rBfFr9dW9d0-pCno,301
|
|
190
|
+
digitalhub_runtime_python-0.16.0b7.dist-info/licenses/LICENSE,sha256=z3xQCHfGmTnigfoUe3uidW_GUSVeFBdos30w9VNTRec,11361
|
|
191
|
+
digitalhub_runtime_python-0.16.0b7.dist-info/RECORD,,
|
{digitalhub_runtime_python-0.16.0b5.dist-info → digitalhub_runtime_python-0.16.0b7.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|