digitalhub-runtime-python 0.15.0b19__tar.gz → 0.15.1__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.15.0b19 → digitalhub_runtime_python-0.15.1}/PKG-INFO +3 -3
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/utils.py +1 -2
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/runtimes/runtime.py +22 -3
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/utils/outputs.py +135 -36
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/utils/utils.py +1 -1
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/pyproject.toml +4 -4
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/scripts/bump.sh +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/scripts/changelog.sh +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/scripts/cliff.toml +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/workflows/release.yml +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/workflows/run_local_test.yml +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/workflows/test_release.yml +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.gitignore +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/AUTHORS +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/CONTRIBUTING +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/COPYRIGHT +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/LICENSE +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/README.md +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_base/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_base/runtime_entity/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_base/runtime_entity/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/enums.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/enums.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/factory.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_base.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_conda.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_pip.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_pyproject.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/parser.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/guardrail/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/guardrail/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/guardrail/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/guardrail/models.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/guardrail/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/guardrail/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/openinference/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/openinference/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/openinference/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/openinference/models.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/openinference/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/openinference/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/models.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/_base/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/_base/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/_base/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/_base/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/_base/utils.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_build/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_build/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_build/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_build/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_build/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_serve/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_serve/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_serve/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_serve/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_serve/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_build/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_build/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_build/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_build/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_build/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_serve/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_serve/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_serve/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_serve/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_serve/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_build/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_build/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_build/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_build/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_build/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_job/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_job/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_job/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_job/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_job/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_serve/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_serve/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_serve/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_serve/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_serve/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_build/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_build/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_build/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_build/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_build/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_serve/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_serve/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_serve/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_serve/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_serve/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_build/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_build/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_build/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_build/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_build/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_serve/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_serve/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_serve/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_serve/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_serve/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_build/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_build/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_build/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_build/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_build/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_job/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_job/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_job/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_job/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_job/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_serve/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_serve/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_serve/entity.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_serve/spec.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_serve/status.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/runtimes/__init__.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/runtimes/builder.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/utils/configuration.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/utils/inputs.py +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/function/function-python-git.json +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/function/function-python-local.json +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/function/function-python-zip.json +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/run/run-python+build:run.json +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/run/run-python+job:run.json +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/run/run-python+serve:run.json +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/task/task-python+build.json +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/task/task-python+job.json +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/task/task-python+serve.json +0 -0
- {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/test_validate.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: digitalhub-runtime-python
|
|
3
|
-
Version: 0.15.
|
|
3
|
+
Version: 0.15.1
|
|
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>
|
|
@@ -215,14 +215,14 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
215
215
|
Classifier: Programming Language :: Python :: 3.13
|
|
216
216
|
Classifier: Programming Language :: Python :: 3.14
|
|
217
217
|
Requires-Python: <3.15,>=3.10
|
|
218
|
-
Requires-Dist: digitalhub[full]<0.16,>=0.15.
|
|
218
|
+
Requires-Dist: digitalhub[full]<0.16,>=0.15.1
|
|
219
219
|
Requires-Dist: msgpack
|
|
220
220
|
Requires-Dist: nuclio-sdk
|
|
221
221
|
Requires-Dist: pip
|
|
222
222
|
Requires-Dist: pyyaml
|
|
223
223
|
Requires-Dist: tomli; python_version < '3.11'
|
|
224
224
|
Provides-Extra: dev
|
|
225
|
-
Requires-Dist: digitalhub[dev]<0.16,>=0.15.
|
|
225
|
+
Requires-Dist: digitalhub[dev]<0.16,>=0.15.1; extra == 'dev'
|
|
226
226
|
Description-Content-Type: text/markdown
|
|
227
227
|
|
|
228
228
|
# DigitalHub SDK Runtime Python
|
|
@@ -147,8 +147,7 @@ def source_post_check(exec: FunctionPython) -> FunctionPython:
|
|
|
147
147
|
|
|
148
148
|
# If source is a folder, zip it and upload it
|
|
149
149
|
if not path_src.is_file():
|
|
150
|
-
archive_path = path_src
|
|
151
|
-
create_archive(path_src, archive_path)
|
|
150
|
+
archive_path = create_archive(path_src)
|
|
152
151
|
dst = build_zip_path(exec, archive_path.name)
|
|
153
152
|
get_store(dst).upload(str(archive_path), dst)
|
|
154
153
|
exec.spec.source["source"] = dst
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Callable
|
|
7
|
+
from typing import Any, Callable
|
|
8
8
|
|
|
9
9
|
from digitalhub.context.api import get_context
|
|
10
10
|
from digitalhub.runtimes._base import Runtime
|
|
@@ -12,7 +12,7 @@ from digitalhub.utils.logger.logger import get_logger
|
|
|
12
12
|
|
|
13
13
|
from digitalhub_runtime_python.utils.configuration import import_function_from_source
|
|
14
14
|
from digitalhub_runtime_python.utils.inputs import compose_inputs
|
|
15
|
-
from digitalhub_runtime_python.utils.outputs import build_new_status,
|
|
15
|
+
from digitalhub_runtime_python.utils.outputs import build_new_status, collect_outputs
|
|
16
16
|
|
|
17
17
|
logger = get_logger(__file__)
|
|
18
18
|
|
|
@@ -63,7 +63,8 @@ class RuntimePythonJob(Runtime):
|
|
|
63
63
|
else:
|
|
64
64
|
exec_result = self._execute(fnc, **fnc_args)
|
|
65
65
|
logger.info("Collecting outputs.")
|
|
66
|
-
|
|
66
|
+
named_outputs = self._get_named_outputs(exec_result)
|
|
67
|
+
results = collect_outputs(exec_result, named_outputs, project, run_key)
|
|
67
68
|
|
|
68
69
|
status = build_new_status(project, results)
|
|
69
70
|
|
|
@@ -118,6 +119,24 @@ class RuntimePythonJob(Runtime):
|
|
|
118
119
|
local_execution = spec.get("local_execution")
|
|
119
120
|
return compose_inputs(inputs, parameters, local_execution, func, project)
|
|
120
121
|
|
|
122
|
+
def _get_named_outputs(self, exec_result: Any) -> list[str]:
|
|
123
|
+
"""
|
|
124
|
+
Get named outputs.
|
|
125
|
+
|
|
126
|
+
Parameters
|
|
127
|
+
----------
|
|
128
|
+
exec_result : Any
|
|
129
|
+
Function execution result.
|
|
130
|
+
|
|
131
|
+
Returns
|
|
132
|
+
-------
|
|
133
|
+
list[str]
|
|
134
|
+
List of named outputs.
|
|
135
|
+
"""
|
|
136
|
+
if isinstance(exec_result, list):
|
|
137
|
+
return [f"output_{idx}" for idx in range(len(exec_result))]
|
|
138
|
+
return []
|
|
139
|
+
|
|
121
140
|
|
|
122
141
|
class RuntimeOpeninference(RuntimePython):
|
|
123
142
|
"""
|
|
@@ -6,8 +6,18 @@ from __future__ import annotations
|
|
|
6
6
|
|
|
7
7
|
import pickle
|
|
8
8
|
import typing
|
|
9
|
+
from dataclasses import dataclass
|
|
9
10
|
from typing import Any
|
|
10
11
|
|
|
12
|
+
from digitalhub import (
|
|
13
|
+
log_croissant,
|
|
14
|
+
log_generic_artifact,
|
|
15
|
+
log_generic_dataitem,
|
|
16
|
+
log_generic_model,
|
|
17
|
+
log_mlflow,
|
|
18
|
+
log_sklearn,
|
|
19
|
+
log_table,
|
|
20
|
+
)
|
|
11
21
|
from digitalhub.context.api import get_context
|
|
12
22
|
from digitalhub.entities._commons.enums import EntityKinds, Relationship, State
|
|
13
23
|
from digitalhub.entities.artifact._base.entity import Artifact
|
|
@@ -25,7 +35,122 @@ if typing.TYPE_CHECKING:
|
|
|
25
35
|
logger = get_logger(__file__)
|
|
26
36
|
|
|
27
37
|
|
|
28
|
-
|
|
38
|
+
mapped_logger = {
|
|
39
|
+
EntityKinds.DATAITEM_DATAITEM.value: log_generic_dataitem,
|
|
40
|
+
EntityKinds.DATAITEM_TABLE.value: log_table,
|
|
41
|
+
EntityKinds.DATAITEM_CROISSANT.value: log_croissant,
|
|
42
|
+
EntityKinds.MODEL_MLFLOW.value: log_mlflow,
|
|
43
|
+
EntityKinds.MODEL_SKLEARN.value: log_sklearn,
|
|
44
|
+
EntityKinds.MODEL_MODEL.value: log_generic_model,
|
|
45
|
+
EntityKinds.ARTIFACT_ARTIFACT.value: log_generic_artifact,
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
@dataclass
|
|
50
|
+
class OutputStruct:
|
|
51
|
+
"""
|
|
52
|
+
OutputStruct is a class that represents the output of a function.
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
name: str | None
|
|
56
|
+
kind: str | None
|
|
57
|
+
kwargs: dict | None = None
|
|
58
|
+
log: bool = False
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _build_default_output_names(outputs_len: int, results_len: int) -> list[str]:
|
|
62
|
+
return [f"output_{idx}" for idx in range(outputs_len, results_len)]
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def _parse_UDF_outputs(outputs: list[str] | list[dict[str, Any]], results_len: int) -> list[OutputStruct]:
|
|
66
|
+
"""
|
|
67
|
+
Parse UDF outputs.
|
|
68
|
+
|
|
69
|
+
Parameters
|
|
70
|
+
----------
|
|
71
|
+
outputs : list[str] | list[dict[str, str]]
|
|
72
|
+
List of named outputs to collect.
|
|
73
|
+
results_len : int
|
|
74
|
+
Number of results produced by the function.
|
|
75
|
+
|
|
76
|
+
Returns
|
|
77
|
+
-------
|
|
78
|
+
list[OutputStruct]
|
|
79
|
+
List of OutputStruct objects.
|
|
80
|
+
"""
|
|
81
|
+
normalized_outputs = list(outputs[:results_len])
|
|
82
|
+
|
|
83
|
+
if len(normalized_outputs) != results_len:
|
|
84
|
+
# Set default names for outputs if the number of outputs is different from the number of results.
|
|
85
|
+
# If the number of outputs is less than the number of results, the missing outputs will be named as output_{idx}.
|
|
86
|
+
# If the number of outputs is greater than the number of results, the extra outputs will be ignored.
|
|
87
|
+
logger.warning(
|
|
88
|
+
f"Number of outputs ({len(outputs)}) is different from number of results ({results_len}). "
|
|
89
|
+
f"Default names will be used for outputs.",
|
|
90
|
+
)
|
|
91
|
+
normalized_outputs.extend(_build_default_output_names(len(normalized_outputs), results_len))
|
|
92
|
+
|
|
93
|
+
parsed_outputs = []
|
|
94
|
+
for idx, item in enumerate(normalized_outputs):
|
|
95
|
+
if isinstance(item, str):
|
|
96
|
+
parsed_outputs.append(OutputStruct(name=item, kind=None))
|
|
97
|
+
continue
|
|
98
|
+
|
|
99
|
+
if not isinstance(item, dict):
|
|
100
|
+
raise ValueError(f"Invalid output format: {item}")
|
|
101
|
+
|
|
102
|
+
name = item.get("name") or f"output_{idx}"
|
|
103
|
+
kind = item.get("kind")
|
|
104
|
+
if kind is None:
|
|
105
|
+
raise ValueError(f"Missing kind for logged output: {name}")
|
|
106
|
+
|
|
107
|
+
if kind not in mapped_logger:
|
|
108
|
+
raise ValueError(f"Unsupported output kind: {kind}")
|
|
109
|
+
|
|
110
|
+
kwargs = dict(item.get("spec_kwargs") or {})
|
|
111
|
+
parsed_outputs.append(OutputStruct(name=name, kind=kind, kwargs=kwargs, log=True))
|
|
112
|
+
return parsed_outputs
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def _log_mapped_output(project_name: str, item: Any, output: OutputStruct) -> None:
|
|
116
|
+
logger.info(f"Logging output {output.name}.")
|
|
117
|
+
spec_kwargs = dict(output.kwargs or {})
|
|
118
|
+
spec_kwargs["source"] = item
|
|
119
|
+
mapped_logger[output.kind](project_name, output.name, **spec_kwargs)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
def _save_existing_object(obj: Dataitem | Artifact | Model, run_key: str) -> Dataitem | Artifact | Model:
|
|
123
|
+
dest = run_key + ":" + run_key.split("/")[-1]
|
|
124
|
+
obj.add_relationship(relation=Relationship.PRODUCEDBY.value, dest=dest)
|
|
125
|
+
|
|
126
|
+
try:
|
|
127
|
+
obj.save(update=True)
|
|
128
|
+
except EntityNotExistsError:
|
|
129
|
+
obj.save()
|
|
130
|
+
|
|
131
|
+
return obj
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def _materialize_output(name: str, item: Any, project_name: str, run_key: str) -> Any:
|
|
135
|
+
if isinstance(item, (str, int, float, bool, bytes)):
|
|
136
|
+
return item
|
|
137
|
+
|
|
138
|
+
if isinstance(item, (Dataitem, Artifact, Model)):
|
|
139
|
+
return _save_existing_object(item, run_key)
|
|
140
|
+
|
|
141
|
+
for df_class in get_supported_dataframes():
|
|
142
|
+
if isinstance(item, df_class):
|
|
143
|
+
return _log_dataitem(name, project_name, item)
|
|
144
|
+
|
|
145
|
+
return _log_artifact(name, project_name, item)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def collect_outputs(
|
|
149
|
+
results: Any,
|
|
150
|
+
outputs: list[str] | list[dict[str, Any]],
|
|
151
|
+
project_name: str,
|
|
152
|
+
run_key: str,
|
|
153
|
+
) -> dict:
|
|
29
154
|
"""
|
|
30
155
|
Collect outputs. Use the produced results directly.
|
|
31
156
|
|
|
@@ -33,7 +158,7 @@ def collect_outputs(results: Any, outputs: list[str], project_name: str, run_key
|
|
|
33
158
|
----------
|
|
34
159
|
results : Any
|
|
35
160
|
Function outputs.
|
|
36
|
-
outputs : list[
|
|
161
|
+
outputs : list[OutputStruct]
|
|
37
162
|
List of named outputs to collect.
|
|
38
163
|
project_name : str
|
|
39
164
|
Project name.
|
|
@@ -48,42 +173,16 @@ def collect_outputs(results: Any, outputs: list[str], project_name: str, run_key
|
|
|
48
173
|
objects = {}
|
|
49
174
|
results = listify_results(results)
|
|
50
175
|
|
|
176
|
+
parsed_outputs = _parse_UDF_outputs(outputs, len(results))
|
|
177
|
+
|
|
51
178
|
for idx, item in enumerate(results):
|
|
52
|
-
|
|
53
|
-
try:
|
|
54
|
-
name = outputs[idx]
|
|
55
|
-
except IndexError:
|
|
56
|
-
name = f"output_{idx}"
|
|
57
|
-
|
|
58
|
-
if isinstance(item, (str, int, float, bool, bytes)):
|
|
59
|
-
objects[name] = item
|
|
60
|
-
|
|
61
|
-
else:
|
|
62
|
-
# Recieve a digitalhub object
|
|
63
|
-
if isinstance(item, (Dataitem, Artifact, Model)):
|
|
64
|
-
obj = item
|
|
65
|
-
|
|
66
|
-
# Add relationship to object, update it
|
|
67
|
-
dest = run_key + ":" + run_key.split("/")[-1]
|
|
68
|
-
obj.add_relationship(relation=Relationship.PRODUCEDBY.value, dest=dest)
|
|
69
|
-
|
|
70
|
-
# Save or update object
|
|
71
|
-
try:
|
|
72
|
-
obj.save(update=True)
|
|
73
|
-
except EntityNotExistsError:
|
|
74
|
-
obj.save()
|
|
179
|
+
output = parsed_outputs[idx]
|
|
75
180
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
break
|
|
82
|
-
# Recieve a generic python object
|
|
83
|
-
else:
|
|
84
|
-
obj = _log_artifact(name, project_name, item)
|
|
85
|
-
|
|
86
|
-
objects[name] = obj
|
|
181
|
+
if output.log:
|
|
182
|
+
_log_mapped_output(project_name, item, output)
|
|
183
|
+
continue
|
|
184
|
+
|
|
185
|
+
objects[output.name] = _materialize_output(output.name, item, project_name, run_key)
|
|
87
186
|
|
|
88
187
|
return objects
|
|
89
188
|
|
|
@@ -10,7 +10,7 @@ from typing import Callable
|
|
|
10
10
|
from digitalhub_runtime_python.utils.outputs import collect_outputs
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
def handler(outputs: list[str] | None = None) -> Callable:
|
|
13
|
+
def handler(outputs: list[str] | list[dict[str, str]] | None = None) -> Callable:
|
|
14
14
|
"""
|
|
15
15
|
Decorator that handles the outputs of the function.
|
|
16
16
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "digitalhub-runtime-python"
|
|
7
|
-
version = "0.15.
|
|
7
|
+
version = "0.15.1"
|
|
8
8
|
description = "Python runtime for DHCore"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [
|
|
@@ -23,7 +23,7 @@ classifiers = [
|
|
|
23
23
|
keywords = ["data", "dataops", "kubernetes"]
|
|
24
24
|
requires-python = ">=3.10, <3.15"
|
|
25
25
|
dependencies = [
|
|
26
|
-
"digitalhub[full]>=0.15.
|
|
26
|
+
"digitalhub[full]>=0.15.1, <0.16",
|
|
27
27
|
"nuclio-sdk",
|
|
28
28
|
"msgpack",
|
|
29
29
|
"pip",
|
|
@@ -33,7 +33,7 @@ dependencies = [
|
|
|
33
33
|
|
|
34
34
|
[project.optional-dependencies]
|
|
35
35
|
dev = [
|
|
36
|
-
"digitalhub[dev]>=0.15.
|
|
36
|
+
"digitalhub[dev]>=0.15.1, <0.16"
|
|
37
37
|
]
|
|
38
38
|
|
|
39
39
|
[project.urls]
|
|
@@ -54,7 +54,7 @@ docstring-code-line-length = 120
|
|
|
54
54
|
convention = "numpy"
|
|
55
55
|
|
|
56
56
|
[tool.bumpver]
|
|
57
|
-
current_version = "0.15.
|
|
57
|
+
current_version = "0.15.1"
|
|
58
58
|
version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
|
|
59
59
|
commit_message = "Bump version {old_version} -> {new_version}"
|
|
60
60
|
commit = false
|
{digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/scripts/bump.sh
RENAMED
|
File without changes
|
|
File without changes
|
{digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/scripts/cliff.toml
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
|
|
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
|
|
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
|
|
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
|