digitalhub-runtime-python 0.15.1__tar.gz → 0.16.0b0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/PKG-INFO +1 -1
  2. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/__init__.py +24 -0
  3. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_base/runtime_entity/builder.py +35 -0
  4. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_commons/enums.py +8 -0
  5. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/function/hydra/builder.py +92 -0
  6. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/function/hydra/entity.py +81 -0
  7. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/function/hydra/models.py +60 -0
  8. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/function/hydra/spec.py +58 -0
  9. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/function/hydra/status.py +13 -0
  10. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/function/hydra/utils.py +111 -0
  11. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/_base/entity.py +26 -8
  12. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/_base/spec.py +4 -4
  13. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/_base/status.py +2 -2
  14. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/_base/utils.py +5 -1
  15. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/guardrail_build/entity.py +2 -2
  16. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/guardrail_build/status.py +2 -2
  17. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/guardrail_serve/entity.py +2 -2
  18. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/guardrail_serve/status.py +2 -2
  19. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_build/builder.py +25 -0
  20. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_build/entity.py +25 -0
  21. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_build/spec.py +15 -0
  22. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_build/status.py +13 -0
  23. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_job/builder.py +25 -0
  24. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_job/entity.py +69 -0
  25. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_job/spec.py +78 -0
  26. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_job/status.py +13 -0
  27. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_subtask/builder.py +42 -0
  28. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_subtask/entity.py +23 -0
  29. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_subtask/spec.py +70 -0
  30. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_subtask/status.py +13 -0
  31. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/openinference_build/entity.py +2 -2
  32. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/openinference_build/status.py +2 -2
  33. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/openinference_serve/entity.py +2 -2
  34. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/openinference_serve/status.py +2 -2
  35. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/python_build/entity.py +2 -2
  36. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/python_build/spec.py +3 -3
  37. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/python_build/status.py +2 -2
  38. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/python_job/entity.py +2 -2
  39. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/python_job/spec.py +3 -3
  40. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/python_job/status.py +2 -2
  41. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/python_serve/entity.py +2 -2
  42. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/python_serve/spec.py +3 -3
  43. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/python_serve/status.py +2 -2
  44. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_build/builder.py +25 -0
  45. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_build/entity.py +25 -0
  46. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_build/spec.py +42 -0
  47. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_build/status.py +13 -0
  48. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_job/builder.py +25 -0
  49. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_job/entity.py +24 -0
  50. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_job/spec.py +19 -0
  51. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_job/status.py +13 -0
  52. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_subtask/__init__.py +3 -0
  53. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_subtask/builder.py +25 -0
  54. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_subtask/entity.py +24 -0
  55. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_subtask/spec.py +19 -0
  56. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_subtask/status.py +13 -0
  57. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/openinference_build/__init__.py +3 -0
  58. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/openinference_serve/__init__.py +3 -0
  59. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/python_build/__init__.py +3 -0
  60. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/python_job/__init__.py +3 -0
  61. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/python_serve/__init__.py +3 -0
  62. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/runtimes/__init__.py +3 -0
  63. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/runtimes/builder.py +21 -0
  64. digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/runtimes/hydra_runtime.py +141 -0
  65. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/runtimes/runtime.py +4 -2
  66. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/utils/inputs.py +2 -2
  67. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/pyproject.toml +2 -2
  68. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/.github/scripts/bump.sh +0 -0
  69. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/.github/scripts/changelog.sh +0 -0
  70. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/.github/scripts/cliff.toml +0 -0
  71. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/.github/workflows/release.yml +0 -0
  72. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/.github/workflows/run_local_test.yml +0 -0
  73. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/.github/workflows/test_release.yml +0 -0
  74. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/.gitignore +0 -0
  75. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/AUTHORS +0 -0
  76. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/CONTRIBUTING +0 -0
  77. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/COPYRIGHT +0 -0
  78. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/LICENSE +0 -0
  79. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/README.md +0 -0
  80. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/__init__.py +0 -0
  81. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_base/__init__.py +0 -0
  82. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_base/runtime_entity/__init__.py +0 -0
  83. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_commons/__init__.py +0 -0
  84. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_commons/requirement_parser/__init__.py +0 -0
  85. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_commons/requirement_parser/enums.py +0 -0
  86. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_commons/requirement_parser/factory.py +0 -0
  87. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/__init__.py +0 -0
  88. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_base.py +0 -0
  89. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_conda.py +0 -0
  90. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_pip.py +0 -0
  91. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_pyproject.py +0 -0
  92. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/_commons/requirement_parser/parser.py +0 -0
  93. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/__init__.py +0 -0
  94. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/guardrail/__init__.py +0 -0
  95. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/guardrail/builder.py +0 -0
  96. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/guardrail/entity.py +0 -0
  97. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/guardrail/models.py +0 -0
  98. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/guardrail/spec.py +0 -0
  99. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/guardrail/status.py +0 -0
  100. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/function/openinference → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/function/hydra}/__init__.py +0 -0
  101. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/function/python → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/function/openinference}/__init__.py +0 -0
  102. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/openinference/builder.py +0 -0
  103. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/openinference/entity.py +0 -0
  104. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/openinference/models.py +0 -0
  105. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/openinference/spec.py +0 -0
  106. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/openinference/status.py +0 -0
  107. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/run → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/function/python}/__init__.py +0 -0
  108. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/python/builder.py +0 -0
  109. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/python/entity.py +0 -0
  110. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/python/models.py +0 -0
  111. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/python/spec.py +0 -0
  112. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/python/status.py +0 -0
  113. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/function/python/utils.py +0 -0
  114. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/run/_base → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run}/__init__.py +0 -0
  115. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/run/guardrail_build → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/_base}/__init__.py +0 -0
  116. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/run/guardrail_serve → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/guardrail_build}/__init__.py +0 -0
  117. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/guardrail_build/builder.py +0 -0
  118. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/guardrail_build/spec.py +0 -0
  119. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/run/openinference_build → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/guardrail_serve}/__init__.py +0 -0
  120. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/guardrail_serve/builder.py +0 -0
  121. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/guardrail_serve/spec.py +0 -0
  122. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/run/openinference_serve → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_build}/__init__.py +0 -0
  123. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/run/python_build → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_job}/__init__.py +0 -0
  124. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/run/python_job → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/hydra_subtask}/__init__.py +0 -0
  125. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/run/python_serve → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/openinference_build}/__init__.py +0 -0
  126. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/openinference_build/builder.py +0 -0
  127. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/openinference_build/spec.py +0 -0
  128. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/task → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/openinference_serve}/__init__.py +0 -0
  129. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/openinference_serve/builder.py +0 -0
  130. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/openinference_serve/spec.py +0 -0
  131. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/task/guardrail_build → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/python_build}/__init__.py +0 -0
  132. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/python_build/builder.py +0 -0
  133. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/task/guardrail_serve → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/python_job}/__init__.py +0 -0
  134. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/python_job/builder.py +0 -0
  135. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/task/openinference_build → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/run/python_serve}/__init__.py +0 -0
  136. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/run/python_serve/builder.py +0 -0
  137. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/task/openinference_serve → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task}/__init__.py +0 -0
  138. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/task/python_build → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/guardrail_build}/__init__.py +0 -0
  139. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/guardrail_build/builder.py +0 -0
  140. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/guardrail_build/entity.py +0 -0
  141. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/guardrail_build/spec.py +0 -0
  142. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/guardrail_build/status.py +0 -0
  143. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/task/python_job → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/guardrail_serve}/__init__.py +0 -0
  144. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/guardrail_serve/builder.py +0 -0
  145. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/guardrail_serve/entity.py +0 -0
  146. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/guardrail_serve/spec.py +0 -0
  147. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/guardrail_serve/status.py +0 -0
  148. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/entities/task/python_serve → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_build}/__init__.py +0 -0
  149. {digitalhub_runtime_python-0.15.1/digitalhub_runtime_python/runtimes → digitalhub_runtime_python-0.16.0b0/digitalhub_runtime_python/entities/task/hydra_job}/__init__.py +0 -0
  150. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/openinference_build/builder.py +0 -0
  151. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/openinference_build/entity.py +0 -0
  152. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/openinference_build/spec.py +0 -0
  153. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/openinference_build/status.py +0 -0
  154. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/openinference_serve/builder.py +0 -0
  155. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/openinference_serve/entity.py +0 -0
  156. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/openinference_serve/spec.py +0 -0
  157. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/openinference_serve/status.py +0 -0
  158. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/python_build/builder.py +0 -0
  159. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/python_build/entity.py +0 -0
  160. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/python_build/spec.py +0 -0
  161. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/python_build/status.py +0 -0
  162. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/python_job/builder.py +0 -0
  163. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/python_job/entity.py +0 -0
  164. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/python_job/spec.py +0 -0
  165. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/python_job/status.py +0 -0
  166. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/python_serve/builder.py +0 -0
  167. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/python_serve/entity.py +0 -0
  168. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/python_serve/spec.py +0 -0
  169. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/entities/task/python_serve/status.py +0 -0
  170. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/utils/configuration.py +0 -0
  171. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/utils/outputs.py +0 -0
  172. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/digitalhub_runtime_python/utils/utils.py +0 -0
  173. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/test/instances/entities/function/function-python-git.json +0 -0
  174. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/test/instances/entities/function/function-python-local.json +0 -0
  175. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/test/instances/entities/function/function-python-zip.json +0 -0
  176. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/test/instances/entities/run/run-python+build:run.json +0 -0
  177. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/test/instances/entities/run/run-python+job:run.json +0 -0
  178. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/test/instances/entities/run/run-python+serve:run.json +0 -0
  179. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/test/instances/entities/task/task-python+build.json +0 -0
  180. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/test/instances/entities/task/task-python+job.json +0 -0
  181. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/test/instances/entities/task/task-python+serve.json +0 -0
  182. {digitalhub_runtime_python-0.15.1 → digitalhub_runtime_python-0.16.0b0}/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.1
3
+ Version: 0.16.0b0
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>
@@ -3,10 +3,14 @@
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.guardrail.builder import FunctionGuardrailBuilder
6
+ from digitalhub_runtime_python.entities.function.hydra.builder import FunctionHydraBuilder
6
7
  from digitalhub_runtime_python.entities.function.openinference.builder import FunctionOpeninferenceBuilder
7
8
  from digitalhub_runtime_python.entities.function.python.builder import FunctionPythonBuilder
8
9
  from digitalhub_runtime_python.entities.run.guardrail_build.builder import RunGuardrailRunBuildBuilder
9
10
  from digitalhub_runtime_python.entities.run.guardrail_serve.builder import RunGuardrailRunServeBuilder
11
+ from digitalhub_runtime_python.entities.run.hydra_build.builder import RunHydraRunBuildBuilder
12
+ from digitalhub_runtime_python.entities.run.hydra_job.builder import RunHydraRunJobBuilder
13
+ from digitalhub_runtime_python.entities.run.hydra_subtask.builder import RunHydraRunSubtaskBuilder
10
14
  from digitalhub_runtime_python.entities.run.openinference_build.builder import RunOpeninferenceRunBuildBuilder
11
15
  from digitalhub_runtime_python.entities.run.openinference_serve.builder import RunOpeninferenceRunServeBuilder
12
16
  from digitalhub_runtime_python.entities.run.python_build.builder import RunPythonRunBuildBuilder
@@ -14,6 +18,9 @@ from digitalhub_runtime_python.entities.run.python_job.builder import RunPythonR
14
18
  from digitalhub_runtime_python.entities.run.python_serve.builder import RunPythonRunServeBuilder
15
19
  from digitalhub_runtime_python.entities.task.guardrail_build.builder import TaskGuardrailBuildBuilder
16
20
  from digitalhub_runtime_python.entities.task.guardrail_serve.builder import TaskGuardrailServeBuilder
21
+ from digitalhub_runtime_python.entities.task.hydra_build.builder import TaskHydraBuildBuilder
22
+ from digitalhub_runtime_python.entities.task.hydra_job.builder import TaskHydraJobBuilder
23
+ from digitalhub_runtime_python.entities.task.hydra_subtask.builder import TaskHydraSubtaskBuilder
17
24
  from digitalhub_runtime_python.entities.task.openinference_build.builder import TaskOpeninferenceBuildBuilder
18
25
  from digitalhub_runtime_python.entities.task.openinference_serve.builder import TaskOpeninferenceServeBuilder
19
26
  from digitalhub_runtime_python.entities.task.python_build.builder import TaskPythonBuildBuilder
@@ -25,6 +32,7 @@ entity_builders = (
25
32
  (EntityKinds.FUNCTION_GUARDRAIL.value, FunctionGuardrailBuilder),
26
33
  (EntityKinds.FUNCTION_OPENINFERENCE.value, FunctionOpeninferenceBuilder),
27
34
  (EntityKinds.FUNCTION_PYTHON.value, FunctionPythonBuilder),
35
+ (EntityKinds.FUNCTION_HYDRA.value, FunctionHydraBuilder),
28
36
  (EntityKinds.RUN_GUARDRAIL_BUILD.value, RunGuardrailRunBuildBuilder),
29
37
  (EntityKinds.RUN_GUARDRAIL_SERVE.value, RunGuardrailRunServeBuilder),
30
38
  (EntityKinds.RUN_OPENINFERENCE_BUILD.value, RunOpeninferenceRunBuildBuilder),
@@ -32,6 +40,9 @@ entity_builders = (
32
40
  (EntityKinds.RUN_PYTHON_BUILD.value, RunPythonRunBuildBuilder),
33
41
  (EntityKinds.RUN_PYTHON_JOB.value, RunPythonRunJobBuilder),
34
42
  (EntityKinds.RUN_PYTHON_SERVE.value, RunPythonRunServeBuilder),
43
+ (EntityKinds.RUN_HYDRA_BUILD.value, RunHydraRunBuildBuilder),
44
+ (EntityKinds.RUN_HYDRA_JOB.value, RunHydraRunJobBuilder),
45
+ (EntityKinds.RUN_HYDRA_SUBTASK.value, RunHydraRunSubtaskBuilder),
35
46
  (EntityKinds.TASK_GUARDRAIL_BUILD.value, TaskGuardrailBuildBuilder),
36
47
  (EntityKinds.TASK_GUARDRAIL_SERVE.value, TaskGuardrailServeBuilder),
37
48
  (EntityKinds.TASK_OPENINFERENCE_BUILD.value, TaskOpeninferenceBuildBuilder),
@@ -39,6 +50,9 @@ entity_builders = (
39
50
  (EntityKinds.TASK_PYTHON_BUILD.value, TaskPythonBuildBuilder),
40
51
  (EntityKinds.TASK_PYTHON_JOB.value, TaskPythonJobBuilder),
41
52
  (EntityKinds.TASK_PYTHON_SERVE.value, TaskPythonServeBuilder),
53
+ (EntityKinds.TASK_HYDRA_BUILD.value, TaskHydraBuildBuilder),
54
+ (EntityKinds.TASK_HYDRA_JOB.value, TaskHydraJobBuilder),
55
+ (EntityKinds.TASK_HYDRA_SUBTASK.value, TaskHydraSubtaskBuilder),
42
56
  )
43
57
 
44
58
  try:
@@ -47,12 +61,16 @@ try:
47
61
  RuntimeOpeninferenceBuilder,
48
62
  RuntimePythonBuilder,
49
63
  RuntimePythonJobBuilder,
64
+ RuntimeHydraBuilder,
65
+ RuntimeHydraSubtaskBuilder,
66
+ RuntimeHydraJobBuilder,
50
67
  )
51
68
 
52
69
  runtime_builders = (
53
70
  (EntityKinds.FUNCTION_GUARDRAIL.value, RuntimeGuardrailBuilder),
54
71
  (EntityKinds.FUNCTION_OPENINFERENCE.value, RuntimeOpeninferenceBuilder),
55
72
  (EntityKinds.FUNCTION_PYTHON.value, RuntimePythonBuilder),
73
+ (EntityKinds.FUNCTION_HYDRA.value, RuntimeHydraBuilder),
56
74
  (EntityKinds.RUN_GUARDRAIL_BUILD.value, RuntimeGuardrailBuilder),
57
75
  (EntityKinds.RUN_GUARDRAIL_SERVE.value, RuntimeGuardrailBuilder),
58
76
  (EntityKinds.RUN_OPENINFERENCE_BUILD.value, RuntimeOpeninferenceBuilder),
@@ -60,6 +78,9 @@ try:
60
78
  (EntityKinds.RUN_PYTHON_BUILD.value, RuntimePythonBuilder),
61
79
  (EntityKinds.RUN_PYTHON_JOB.value, RuntimePythonJobBuilder),
62
80
  (EntityKinds.RUN_PYTHON_SERVE.value, RuntimePythonBuilder),
81
+ (EntityKinds.RUN_HYDRA_BUILD.value, RuntimeHydraBuilder),
82
+ (EntityKinds.RUN_HYDRA_JOB.value, RuntimeHydraJobBuilder),
83
+ (EntityKinds.RUN_HYDRA_SUBTASK.value, RuntimeHydraSubtaskBuilder),
63
84
  (EntityKinds.TASK_GUARDRAIL_BUILD.value, RuntimeGuardrailBuilder),
64
85
  (EntityKinds.TASK_GUARDRAIL_SERVE.value, RuntimeGuardrailBuilder),
65
86
  (EntityKinds.TASK_OPENINFERENCE_BUILD.value, RuntimeOpeninferenceBuilder),
@@ -67,6 +88,9 @@ try:
67
88
  (EntityKinds.TASK_PYTHON_BUILD.value, RuntimePythonBuilder),
68
89
  (EntityKinds.TASK_PYTHON_JOB.value, RuntimePythonJobBuilder),
69
90
  (EntityKinds.TASK_PYTHON_SERVE.value, RuntimePythonBuilder),
91
+ (EntityKinds.TASK_HYDRA_BUILD.value, RuntimeHydraBuilder),
92
+ (EntityKinds.TASK_HYDRA_JOB.value, RuntimeHydraJobBuilder),
93
+ (EntityKinds.TASK_HYDRA_SUBTASK.value, RuntimeHydraSubtaskBuilder),
70
94
  )
71
95
  except ImportError as e:
72
96
  from digitalhub.utils.logger.logger import get_logger
@@ -100,3 +100,38 @@ class RuntimeEntityBuilderGuardrail(RuntimeEntityBuilder):
100
100
  ),
101
101
  ]
102
102
  )
103
+
104
+ class RuntimeEntityBuilderHydra(RuntimeEntityBuilder):
105
+ EXECUTABLE_KIND = EntityKinds.FUNCTION_HYDRA.value
106
+ TASKS_KINDS = map_actions(
107
+ [
108
+ (
109
+ EntityKinds.TASK_HYDRA_BUILD.value,
110
+ Actions.BUILD.value,
111
+ ),
112
+ (
113
+ EntityKinds.TASK_HYDRA_JOB.value,
114
+ Actions.JOB.value,
115
+ ),
116
+ (
117
+ EntityKinds.TASK_HYDRA_SUBTASK.value,
118
+ Actions.SUBTASK.value,
119
+ ),
120
+ ]
121
+ )
122
+ RUN_KINDS = map_actions(
123
+ [
124
+ (
125
+ EntityKinds.RUN_HYDRA_BUILD.value,
126
+ Actions.BUILD.value,
127
+ ),
128
+ (
129
+ EntityKinds.RUN_HYDRA_JOB.value,
130
+ Actions.JOB.value,
131
+ ),
132
+ (
133
+ EntityKinds.RUN_HYDRA_SUBTASK.value,
134
+ Actions.SUBTASK.value,
135
+ ),
136
+ ]
137
+ )
@@ -32,6 +32,13 @@ class EntityKinds(Enum):
32
32
  RUN_GUARDRAIL_BUILD = "guardrail+build:run"
33
33
  RUN_GUARDRAIL_SERVE = "guardrail+serve:run"
34
34
 
35
+ FUNCTION_HYDRA = "hydra"
36
+ TASK_HYDRA_BUILD = "hydra+build"
37
+ TASK_HYDRA_JOB = "hydra+job"
38
+ TASK_HYDRA_SUBTASK = "hydra+subtask"
39
+ RUN_HYDRA_BUILD = "hydra+build:run"
40
+ RUN_HYDRA_JOB = "hydra+job:run"
41
+ RUN_HYDRA_SUBTASK = "hydra+subtask:run"
35
42
 
36
43
  class Actions(Enum):
37
44
  """
@@ -41,3 +48,4 @@ class Actions(Enum):
41
48
  BUILD = "build"
42
49
  JOB = "job"
43
50
  SERVE = "serve"
51
+ SUBTASK = "subtask"
@@ -0,0 +1,92 @@
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.builder import FunctionBuilder
8
+
9
+ from digitalhub_runtime_python.entities._base.runtime_entity.builder import RuntimeEntityBuilderHydra
10
+ from digitalhub_runtime_python.entities._commons.enums import EntityKinds
11
+ from digitalhub_runtime_python.entities.function.hydra.entity import FunctionHydra
12
+ from digitalhub_runtime_python.entities.function.hydra.spec import FunctionSpecHydra, FunctionValidatorHydra
13
+ from digitalhub_runtime_python.entities.function.hydra.status import FunctionStatusHydra
14
+
15
+ from digitalhub_runtime_python.entities.function.python.utils import source_check, source_post_check
16
+ from digitalhub_runtime_python.entities.function.hydra.utils import config_check
17
+
18
+ class FunctionHydraBuilder(FunctionBuilder, RuntimeEntityBuilderHydra):
19
+ """
20
+ FunctionHydra builder.
21
+ """
22
+
23
+ ENTITY_CLASS = FunctionHydra
24
+ ENTITY_SPEC_CLASS = FunctionSpecHydra
25
+ ENTITY_SPEC_VALIDATOR = FunctionValidatorHydra
26
+ ENTITY_STATUS_CLASS = FunctionStatusHydra
27
+ ENTITY_KIND = EntityKinds.FUNCTION_HYDRA.value
28
+
29
+ def build(
30
+ self,
31
+ kind: str,
32
+ project: str,
33
+ name: str,
34
+ uuid: str | None = None,
35
+ description: str | None = None,
36
+ labels: list[str] | None = None,
37
+ embedded: bool = False,
38
+ **kwargs,
39
+ ) -> FunctionHydra:
40
+ kwargs = source_check(**kwargs)
41
+ kwargs = config_check(**kwargs)
42
+ obj = super().build(
43
+ kind,
44
+ project,
45
+ name,
46
+ uuid,
47
+ description,
48
+ labels,
49
+ embedded,
50
+ **kwargs,
51
+ )
52
+ return source_post_check(obj)
53
+
54
+ def from_dict(self, obj: dict) -> FunctionHydra:
55
+ """
56
+ Create a new object from dictionary.
57
+
58
+ Parameters
59
+ ----------
60
+ obj : dict
61
+ Dictionary to create object from.
62
+
63
+ Returns
64
+ -------
65
+ FunctionHydra
66
+ Object instance.
67
+ """
68
+ entity = super().from_dict(obj)
69
+ return source_post_check(entity)
70
+
71
+ def _parse_dict(self, obj: dict) -> dict:
72
+ """
73
+ Get dictionary and parse it to a valid entity dictionary.
74
+
75
+ Parameters
76
+ ----------
77
+ obj : dict
78
+ Dictionary to parse.
79
+
80
+ Returns
81
+ -------
82
+ dict
83
+ A dictionary containing the attributes of the entity instance.
84
+ """
85
+ # Look for source in spec
86
+ if spec_dict := obj.get("spec", {}):
87
+ # Check source
88
+ source = spec_dict.get("source", {})
89
+ if source:
90
+ spec_dict["source"] = source_check(source=source)["source"]
91
+
92
+ return super()._parse_dict(obj)
@@ -0,0 +1,81 @@
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.function._base.entity import Function
10
+ from digitalhub.utils.generic_utils import decode_base64_string
11
+ from digitalhub.utils.io_utils import write_text
12
+ from digitalhub.utils.uri_utils import has_local_scheme
13
+
14
+ from digitalhub_runtime_python.entities._commons.requirement_parser.parser import RequirementParser
15
+
16
+ if typing.TYPE_CHECKING:
17
+ from digitalhub_runtime_python.entities.function.hydra.spec import FunctionSpecHydra
18
+ from digitalhub_runtime_python.entities.function.hydra.status import FunctionStatusHydra
19
+
20
+
21
+ class FunctionHydra(Function):
22
+ """
23
+ FunctionHydra class.
24
+ """
25
+
26
+ def __init__(self, *args, **kwargs) -> None:
27
+ super().__init__(*args, **kwargs)
28
+
29
+ self.spec: FunctionSpecHydra
30
+ self.status: FunctionStatusHydra
31
+
32
+ def export(self) -> str:
33
+ """
34
+ Export object as a YAML file in the context folder.
35
+
36
+ Returns
37
+ -------
38
+ str
39
+ Exported filepath.
40
+ """
41
+ # Strip base64 from source at following conditions:
42
+ # - source is local path
43
+ # - base64 is not None
44
+
45
+ # Check source
46
+ source = self.spec.source.get("source")
47
+ if source is not None and has_local_scheme(source):
48
+ # Check base64. If it is set, decode it in a local file
49
+ # save in variable to restore on object after export
50
+ base64 = self.spec.source.pop("base64", None)
51
+ if base64 is not None:
52
+ # Write local file
53
+ src_pth = self._context().root / source
54
+ write_text(src_pth, decode_base64_string(base64))
55
+
56
+ # Export and restore base64, then return
57
+ pth = super().export()
58
+ self.spec.source["base64"] = base64
59
+
60
+ config = self.spec.config
61
+ # Check base64. If it is set, decode it in a local file
62
+ # save in variable to restore on object after export
63
+ if config is not None:
64
+ base64 = config.pop("base64", None)
65
+ if base64 is not None:
66
+ # Write local file
67
+ config_pth = self._context().root / "config.yaml"
68
+ write_text(config_pth, decode_base64_string(base64))
69
+
70
+ # Export and restore base64, then return
71
+ self.spec.config = base64
72
+
73
+ return super().export()
74
+
75
+ def _post_create_hook_before_save(self) -> None:
76
+ """
77
+ Hook method called after the creation of the entity but before saving
78
+ in Core.
79
+ Can be overridden in subclasses to implement custom behavior.
80
+ """
81
+ self.spec.requirements = RequirementParser().parse(self.spec.requirements)
@@ -0,0 +1,60 @@
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 enum import Enum
8
+
9
+ from pydantic import BaseModel, ConfigDict, Field
10
+
11
+ class Lang(Enum):
12
+ """
13
+ Source code language.
14
+ """
15
+
16
+ PYTHON = "python"
17
+
18
+
19
+ class SourceValidator(BaseModel):
20
+ """
21
+ Source code params.
22
+ """
23
+
24
+ model_config = ConfigDict(use_enum_values=True)
25
+
26
+ source: str = None
27
+ "Pointer to source code."
28
+
29
+ handler: str = None
30
+ "Function entrypoint."
31
+
32
+ init_function: str = None
33
+ """Handler for init function."""
34
+
35
+ complete_function: str = None
36
+ """Handler for complete function."""
37
+
38
+ code: str = None
39
+ "Source code (plain text)."
40
+
41
+ base64: str = None
42
+ "Source code (base64 encoded)."
43
+
44
+ lang: Lang = Field(default=Lang.PYTHON.value)
45
+ "Source code language (hint)."
46
+
47
+ class ConfigValidator(BaseModel):
48
+ """
49
+ Config params.
50
+ """
51
+ model_config = ConfigDict(use_enum_values=True)
52
+
53
+ source: str = None
54
+ "Pointer to source code."
55
+
56
+ path: str = None
57
+ "Config path."
58
+
59
+ base64: str = None
60
+ "Config (base64 encoded)."
@@ -0,0 +1,58 @@
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
10
+ from digitalhub_runtime_python.entities.function.hydra.models import ConfigValidator, SourceValidator
11
+
12
+
13
+ class FunctionSpecHydra(FunctionSpec):
14
+ """
15
+ FunctionSpecHydra specifications.
16
+ """
17
+
18
+ def __init__(
19
+ self,
20
+ source: dict | None = None,
21
+ config: dict | None = None,
22
+ image: str | None = None,
23
+ base_image: str | None = None,
24
+ python_version: str | None = None,
25
+ requirements: list | None = None,
26
+ ) -> None:
27
+ super().__init__()
28
+
29
+ self.image = image
30
+ self.base_image = base_image
31
+ self.python_version = python_version
32
+ self.requirements = requirements
33
+ self.source = source
34
+ self.config = config
35
+
36
+
37
+ class FunctionValidatorHydra(FunctionValidator):
38
+ """
39
+ FunctionValidatorHydra validator.
40
+ """
41
+
42
+ source: SourceValidator
43
+ """Source code validator"""
44
+
45
+ config: ConfigValidator
46
+ """Config validator"""
47
+
48
+ python_version: PythonVersion
49
+ "Python version"
50
+
51
+ image: str | None = None
52
+ "Image where the function will be executed"
53
+
54
+ base_image: str | None = None
55
+ "Base image used to build the image where the function will be executed"
56
+
57
+ requirements: list[str] | str | None = None
58
+ "Requirements list to be installed in the image where the function will be executed"
@@ -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 FunctionStatusHydra(FunctionStatus):
11
+ """
12
+ FunctionStatusHydra status.
13
+ """
@@ -0,0 +1,111 @@
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
+ from pathlib import Path
9
+
10
+ from digitalhub.utils.exceptions import EntityError
11
+ from digitalhub.utils.generic_utils import encode_string, read_source
12
+ from digitalhub.utils.uri_utils import has_local_scheme
13
+
14
+ def config_check(**kwargs) -> dict:
15
+ """
16
+ Check config.
17
+
18
+ Parameters
19
+ ----------
20
+ **kwargs
21
+ Keyword arguments.
22
+
23
+ Returns
24
+ -------
25
+ dict
26
+ Checked config.
27
+ """
28
+ # either config_src or config or config_base64 may be provided
29
+ config_src = kwargs.pop("config_src", None)
30
+ config_base64 = kwargs.pop("config_base64", None)
31
+ config_content = kwargs.pop("config_content", None)
32
+ config = kwargs.pop("config", None)
33
+ config_path = kwargs.pop("config_path", None)
34
+
35
+ if config is not None:
36
+ config_src = config.pop("source", None)
37
+ config_base64 = config.pop("base64", None)
38
+ config_content = None
39
+ config_path = config.pop("path", None)
40
+
41
+ config = _check_params(
42
+ config_src=config_src,
43
+ config_content=config_content,
44
+ config_base64=config_base64,
45
+ path=config_path,
46
+ )
47
+
48
+ if config is not None:
49
+ kwargs["config"] = config
50
+ return kwargs
51
+
52
+ return kwargs
53
+
54
+
55
+ def _check_params(
56
+ config_src: str | None = None,
57
+ config_content: str | None = None,
58
+ config_base64: str | None = None,
59
+ path: str | None = None,
60
+ ) -> dict:
61
+ """
62
+ Check config.
63
+
64
+ Parameters
65
+ ----------
66
+ config_src : str
67
+ Config source.
68
+ config_content : str
69
+ Config.
70
+ config_base64 : str
71
+ Config base64.
72
+ path : str
73
+ Config path.
74
+
75
+ Returns
76
+ -------
77
+ dict
78
+ Checked config.
79
+ """
80
+ config = {}
81
+
82
+ if path is not None:
83
+ config["path"] = path
84
+
85
+ if config_src is None and config_content is None and config_base64 is None:
86
+ raise EntityError("Config must be provided.")
87
+
88
+ if config_src is not None:
89
+ # Check local source
90
+ if has_local_scheme(config_src):
91
+ path_src = Path(config_src)
92
+
93
+ if not path_src.exists():
94
+ raise EntityError(f"Source {config_src} does not exist.")
95
+
96
+ # If source is a folder, zip it and upload it
97
+ if not path_src.is_file():
98
+ raise EntityError(f"Source {config_src} should be a file.")
99
+
100
+ # If source is a file, read it and encode it in base64
101
+ config["base64"] = read_source(config_src)
102
+ else:
103
+ config["source"] = config_src
104
+
105
+ if config_base64 is not None:
106
+ config["base64"] = config_base64
107
+
108
+ if config_content is not None:
109
+ config["base64"] = encode_string(config_content)
110
+
111
+ return config
@@ -15,18 +15,18 @@ from digitalhub.factory.entity import entity_factory
15
15
  from digitalhub.utils.logger.logger import get_logger
16
16
 
17
17
  from digitalhub_runtime_python.entities._commons.enums import Actions
18
- from digitalhub_runtime_python.entities.run._base.utils import get_getter_for_material
18
+ from digitalhub_runtime_python.entities.run._base.utils import get_getters
19
19
 
20
20
  if typing.TYPE_CHECKING:
21
21
  from digitalhub.entities._base.material.entity import MaterialEntity
22
22
 
23
- from digitalhub_runtime_python.entities.run._base.spec import RunSpecPythonRun
24
- from digitalhub_runtime_python.entities.run._base.status import RunStatusPythonRun
23
+ from digitalhub_runtime_python.entities.run._base.spec import RunSpecBaseRun
24
+ from digitalhub_runtime_python.entities.run._base.status import RunStatusBaseRun
25
25
 
26
26
  logger = get_logger(__file__)
27
27
 
28
28
 
29
- class RunPythonRun(Run):
29
+ class RunBaseRun(Run):
30
30
  """
31
31
  RunPythonRun class.
32
32
  """
@@ -34,8 +34,8 @@ class RunPythonRun(Run):
34
34
  def __init__(self, *args, **kwargs) -> None:
35
35
  super().__init__(*args, **kwargs)
36
36
 
37
- self.spec: RunSpecPythonRun
38
- self.status: RunStatusPythonRun
37
+ self.spec: RunSpecBaseRun
38
+ self.status: RunStatusBaseRun
39
39
 
40
40
  def _setup_execution(self) -> None:
41
41
  """
@@ -120,7 +120,7 @@ class RunPythonRun(Run):
120
120
 
121
121
  for parameter, key in self.spec.inputs.items():
122
122
  entity_type = get_entity_type_from_key(key)
123
- entity = get_getter_for_material(entity_type)(key)
123
+ entity = get_getters(entity_type)(key)
124
124
  if as_dict:
125
125
  entity = entity.to_dict()
126
126
  inputs[parameter] = entity
@@ -178,7 +178,7 @@ class RunPythonRun(Run):
178
178
 
179
179
  for parameter, key in self.status.outputs.items():
180
180
  entity_type = get_entity_type_from_key(key)
181
- entity = get_getter_for_material(entity_type)(key)
181
+ entity = get_getters(entity_type)(key)
182
182
  if as_key:
183
183
  entity = entity.key
184
184
  if as_dict:
@@ -215,3 +215,21 @@ class RunPythonRun(Run):
215
215
  if self.status.results is None:
216
216
  return {}
217
217
  return self.status.results
218
+
219
+
220
+ class RunBaseBuildRun(RunBaseRun):
221
+ """
222
+ RunBaseBuildRun class.
223
+ """
224
+
225
+ @property
226
+ def image(self) -> str | None:
227
+ """
228
+ Get run's image.
229
+
230
+ Returns
231
+ -------
232
+ str | None
233
+ The image.
234
+ """
235
+ return self.status.outputs.get("image")
@@ -7,8 +7,8 @@ from __future__ import annotations
7
7
  from digitalhub.entities.run._base.spec import RunSpec, RunValidator
8
8
 
9
9
 
10
- class RunSpecPythonRun(RunSpec):
11
- """RunSpecPythonRun specifications."""
10
+ class RunSpecBaseRun(RunSpec):
11
+ """RunSpecBaseRun specifications."""
12
12
 
13
13
  def __init__(
14
14
  self,
@@ -59,8 +59,8 @@ class RunSpecPythonRun(RunSpec):
59
59
  self.init_parameters = init_parameters
60
60
 
61
61
 
62
- class RunValidatorPythonRun(RunValidator):
63
- """RunValidatorPythonRun validator."""
62
+ class RunValidatorBaseRun(RunValidator):
63
+ """RunValidatorBaseRun validator."""
64
64
 
65
65
  # Function parameters
66
66
  source: dict | None = None
@@ -7,9 +7,9 @@ from __future__ import annotations
7
7
  from digitalhub.entities.run._base.status import RunStatus
8
8
 
9
9
 
10
- class RunStatusPythonRun(RunStatus):
10
+ class RunStatusBaseRun(RunStatus):
11
11
  """
12
- RunStatusPythonRun status.
12
+ RunStatusBaseRun status.
13
13
  """
14
14
 
15
15
  def __init__(