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.
Files changed (144) hide show
  1. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/PKG-INFO +3 -3
  2. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/utils.py +1 -2
  3. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/runtimes/runtime.py +22 -3
  4. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/utils/outputs.py +135 -36
  5. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/utils/utils.py +1 -1
  6. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/pyproject.toml +4 -4
  7. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/scripts/bump.sh +0 -0
  8. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/scripts/changelog.sh +0 -0
  9. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/scripts/cliff.toml +0 -0
  10. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/workflows/release.yml +0 -0
  11. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/workflows/run_local_test.yml +0 -0
  12. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.github/workflows/test_release.yml +0 -0
  13. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/.gitignore +0 -0
  14. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/AUTHORS +0 -0
  15. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/CONTRIBUTING +0 -0
  16. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/COPYRIGHT +0 -0
  17. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/LICENSE +0 -0
  18. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/README.md +0 -0
  19. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/__init__.py +0 -0
  20. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/__init__.py +0 -0
  21. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_base/__init__.py +0 -0
  22. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_base/runtime_entity/__init__.py +0 -0
  23. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_base/runtime_entity/builder.py +0 -0
  24. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/__init__.py +0 -0
  25. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/enums.py +0 -0
  26. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/__init__.py +0 -0
  27. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/enums.py +0 -0
  28. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/factory.py +0 -0
  29. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/__init__.py +0 -0
  30. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_base.py +0 -0
  31. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_conda.py +0 -0
  32. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_pip.py +0 -0
  33. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_pyproject.py +0 -0
  34. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/_commons/requirement_parser/parser.py +0 -0
  35. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/__init__.py +0 -0
  36. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/guardrail/__init__.py +0 -0
  37. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/guardrail/builder.py +0 -0
  38. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/guardrail/entity.py +0 -0
  39. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/guardrail/models.py +0 -0
  40. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/guardrail/spec.py +0 -0
  41. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/guardrail/status.py +0 -0
  42. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/openinference/__init__.py +0 -0
  43. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/openinference/builder.py +0 -0
  44. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/openinference/entity.py +0 -0
  45. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/openinference/models.py +0 -0
  46. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/openinference/spec.py +0 -0
  47. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/openinference/status.py +0 -0
  48. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/__init__.py +0 -0
  49. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/builder.py +0 -0
  50. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/entity.py +0 -0
  51. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/models.py +0 -0
  52. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/spec.py +0 -0
  53. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/function/python/status.py +0 -0
  54. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/__init__.py +0 -0
  55. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/_base/__init__.py +0 -0
  56. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/_base/entity.py +0 -0
  57. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/_base/spec.py +0 -0
  58. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/_base/status.py +0 -0
  59. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/_base/utils.py +0 -0
  60. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_build/__init__.py +0 -0
  61. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_build/builder.py +0 -0
  62. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_build/entity.py +0 -0
  63. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_build/spec.py +0 -0
  64. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_build/status.py +0 -0
  65. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_serve/__init__.py +0 -0
  66. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_serve/builder.py +0 -0
  67. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_serve/entity.py +0 -0
  68. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_serve/spec.py +0 -0
  69. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/guardrail_serve/status.py +0 -0
  70. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_build/__init__.py +0 -0
  71. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_build/builder.py +0 -0
  72. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_build/entity.py +0 -0
  73. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_build/spec.py +0 -0
  74. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_build/status.py +0 -0
  75. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_serve/__init__.py +0 -0
  76. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_serve/builder.py +0 -0
  77. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_serve/entity.py +0 -0
  78. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_serve/spec.py +0 -0
  79. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/openinference_serve/status.py +0 -0
  80. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_build/__init__.py +0 -0
  81. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_build/builder.py +0 -0
  82. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_build/entity.py +0 -0
  83. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_build/spec.py +0 -0
  84. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_build/status.py +0 -0
  85. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_job/__init__.py +0 -0
  86. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_job/builder.py +0 -0
  87. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_job/entity.py +0 -0
  88. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_job/spec.py +0 -0
  89. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_job/status.py +0 -0
  90. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_serve/__init__.py +0 -0
  91. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_serve/builder.py +0 -0
  92. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_serve/entity.py +0 -0
  93. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_serve/spec.py +0 -0
  94. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/run/python_serve/status.py +0 -0
  95. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/__init__.py +0 -0
  96. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_build/__init__.py +0 -0
  97. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_build/builder.py +0 -0
  98. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_build/entity.py +0 -0
  99. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_build/spec.py +0 -0
  100. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_build/status.py +0 -0
  101. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_serve/__init__.py +0 -0
  102. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_serve/builder.py +0 -0
  103. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_serve/entity.py +0 -0
  104. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_serve/spec.py +0 -0
  105. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/guardrail_serve/status.py +0 -0
  106. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_build/__init__.py +0 -0
  107. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_build/builder.py +0 -0
  108. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_build/entity.py +0 -0
  109. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_build/spec.py +0 -0
  110. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_build/status.py +0 -0
  111. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_serve/__init__.py +0 -0
  112. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_serve/builder.py +0 -0
  113. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_serve/entity.py +0 -0
  114. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_serve/spec.py +0 -0
  115. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/openinference_serve/status.py +0 -0
  116. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_build/__init__.py +0 -0
  117. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_build/builder.py +0 -0
  118. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_build/entity.py +0 -0
  119. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_build/spec.py +0 -0
  120. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_build/status.py +0 -0
  121. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_job/__init__.py +0 -0
  122. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_job/builder.py +0 -0
  123. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_job/entity.py +0 -0
  124. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_job/spec.py +0 -0
  125. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_job/status.py +0 -0
  126. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_serve/__init__.py +0 -0
  127. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_serve/builder.py +0 -0
  128. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_serve/entity.py +0 -0
  129. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_serve/spec.py +0 -0
  130. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/entities/task/python_serve/status.py +0 -0
  131. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/runtimes/__init__.py +0 -0
  132. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/runtimes/builder.py +0 -0
  133. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/utils/configuration.py +0 -0
  134. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/digitalhub_runtime_python/utils/inputs.py +0 -0
  135. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/function/function-python-git.json +0 -0
  136. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/function/function-python-local.json +0 -0
  137. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/function/function-python-zip.json +0 -0
  138. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/run/run-python+build:run.json +0 -0
  139. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/run/run-python+job:run.json +0 -0
  140. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/run/run-python+serve:run.json +0 -0
  141. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/task/task-python+build.json +0 -0
  142. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/task/task-python+job.json +0 -0
  143. {digitalhub_runtime_python-0.15.0b19 → digitalhub_runtime_python-0.15.1}/test/instances/entities/task/task-python+serve.json +0 -0
  144. {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.0b19
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.0b
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.0b; extra == 'dev'
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.parent / f"{path_src.name}.zip"
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, parse_outputs
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
- results = parse_outputs(exec_result, project, run_key)
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
- def collect_outputs(results: Any, outputs: list[str], project_name: str, run_key: str) -> dict:
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[str]
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
- # Get mapping of outputs, if not found, create a new one
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
- else:
77
- # Recieve a dataframe object
78
- for df_class in get_supported_dataframes():
79
- if isinstance(item, df_class):
80
- obj = _log_dataitem(name, project_name, item)
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.0b19"
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.0b, <0.16",
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.0b, <0.16"
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.0b19"
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