digitalhub-runtime-python 0.15.0b10__tar.gz → 0.15.0b11__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 (143) hide show
  1. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/PKG-INFO +1 -1
  2. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/__init__.py +0 -1
  3. digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/_commons/requirement_parser/enums.py +27 -0
  4. digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/_commons/requirement_parser/factory.py +75 -0
  5. digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_base.py +14 -0
  6. digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_conda.py +38 -0
  7. digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_pip.py +43 -0
  8. digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/_commons/requirement_parser/modules/_pyproject.py +41 -0
  9. digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/_commons/requirement_parser/parser.py +96 -0
  10. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/guardrail/entity.py +2 -2
  11. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/openinference/entity.py +2 -2
  12. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/python/entity.py +2 -4
  13. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/python/utils.py +0 -93
  14. digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/task/python_serve/__init__.py +3 -0
  15. digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/runtimes/__init__.py +3 -0
  16. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/pyproject.toml +2 -2
  17. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/.github/scripts/bump.sh +0 -0
  18. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/.github/scripts/changelog.sh +0 -0
  19. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/.github/scripts/cliff.toml +0 -0
  20. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/.github/workflows/release.yml +0 -0
  21. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/.github/workflows/run_local_test.yml +0 -0
  22. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/.github/workflows/test_release.yml +0 -0
  23. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/.gitignore +0 -0
  24. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/AUTHORS +0 -0
  25. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/CONTRIBUTING +0 -0
  26. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/COPYRIGHT +0 -0
  27. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/LICENSE +0 -0
  28. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/README.md +0 -0
  29. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/__init__.py +0 -0
  30. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/_base/__init__.py +0 -0
  31. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/_base/runtime_entity/__init__.py +0 -0
  32. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/_base/runtime_entity/builder.py +0 -0
  33. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/_commons/__init__.py +0 -0
  34. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/_commons/enums.py +0 -0
  35. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/function → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/_commons/requirement_parser}/__init__.py +0 -0
  36. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/function/guardrail → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/_commons/requirement_parser/modules}/__init__.py +0 -0
  37. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/function/openinference → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/function}/__init__.py +0 -0
  38. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/function/python → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/function/guardrail}/__init__.py +0 -0
  39. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/guardrail/builder.py +0 -0
  40. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/guardrail/spec.py +0 -0
  41. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/guardrail/status.py +0 -0
  42. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/run → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/function/openinference}/__init__.py +0 -0
  43. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/openinference/builder.py +0 -0
  44. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/openinference/models.py +0 -0
  45. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/openinference/spec.py +0 -0
  46. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/openinference/status.py +0 -0
  47. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/run/_base → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/function/python}/__init__.py +0 -0
  48. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/python/builder.py +0 -0
  49. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/python/models.py +0 -0
  50. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/python/spec.py +0 -0
  51. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/function/python/status.py +0 -0
  52. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/run/guardrail_build → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/run}/__init__.py +0 -0
  53. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/run/guardrail_serve → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/run/_base}/__init__.py +0 -0
  54. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/_base/entity.py +0 -0
  55. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/_base/spec.py +0 -0
  56. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/_base/status.py +0 -0
  57. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/_base/utils.py +0 -0
  58. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/run/openinference_build → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/run/guardrail_build}/__init__.py +0 -0
  59. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/guardrail_build/builder.py +0 -0
  60. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/guardrail_build/entity.py +0 -0
  61. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/guardrail_build/spec.py +0 -0
  62. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/guardrail_build/status.py +0 -0
  63. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/run/openinference_serve → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/run/guardrail_serve}/__init__.py +0 -0
  64. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/guardrail_serve/builder.py +0 -0
  65. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/guardrail_serve/entity.py +0 -0
  66. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/guardrail_serve/spec.py +0 -0
  67. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/guardrail_serve/status.py +0 -0
  68. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/run/python_build → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/run/openinference_build}/__init__.py +0 -0
  69. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/openinference_build/builder.py +0 -0
  70. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/openinference_build/entity.py +0 -0
  71. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/openinference_build/spec.py +0 -0
  72. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/openinference_build/status.py +0 -0
  73. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/run/python_job → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/run/openinference_serve}/__init__.py +0 -0
  74. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/openinference_serve/builder.py +0 -0
  75. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/openinference_serve/entity.py +0 -0
  76. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/openinference_serve/spec.py +0 -0
  77. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/openinference_serve/status.py +0 -0
  78. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/run/python_serve → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/run/python_build}/__init__.py +0 -0
  79. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/python_build/builder.py +0 -0
  80. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/python_build/entity.py +0 -0
  81. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/python_build/spec.py +0 -0
  82. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/python_build/status.py +0 -0
  83. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/task → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/run/python_job}/__init__.py +0 -0
  84. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/python_job/builder.py +0 -0
  85. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/python_job/entity.py +0 -0
  86. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/python_job/spec.py +0 -0
  87. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/python_job/status.py +0 -0
  88. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/task/guardrail_build → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/run/python_serve}/__init__.py +0 -0
  89. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/python_serve/builder.py +0 -0
  90. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/python_serve/entity.py +0 -0
  91. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/python_serve/spec.py +0 -0
  92. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/run/python_serve/status.py +0 -0
  93. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/task/guardrail_serve → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/task}/__init__.py +0 -0
  94. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/task/openinference_build → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/task/guardrail_build}/__init__.py +0 -0
  95. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/guardrail_build/builder.py +0 -0
  96. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/guardrail_build/entity.py +0 -0
  97. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/guardrail_build/spec.py +0 -0
  98. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/guardrail_build/status.py +0 -0
  99. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/task/openinference_serve → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/task/guardrail_serve}/__init__.py +0 -0
  100. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/guardrail_serve/builder.py +0 -0
  101. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/guardrail_serve/entity.py +0 -0
  102. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/guardrail_serve/spec.py +0 -0
  103. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/guardrail_serve/status.py +0 -0
  104. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/task/python_build → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/task/openinference_build}/__init__.py +0 -0
  105. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/openinference_build/builder.py +0 -0
  106. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/openinference_build/entity.py +0 -0
  107. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/openinference_build/spec.py +0 -0
  108. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/openinference_build/status.py +0 -0
  109. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/task/python_job → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/task/openinference_serve}/__init__.py +0 -0
  110. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/openinference_serve/builder.py +0 -0
  111. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/openinference_serve/entity.py +0 -0
  112. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/openinference_serve/spec.py +0 -0
  113. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/openinference_serve/status.py +0 -0
  114. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/entities/task/python_serve → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/task/python_build}/__init__.py +0 -0
  115. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/python_build/builder.py +0 -0
  116. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/python_build/entity.py +0 -0
  117. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/python_build/spec.py +0 -0
  118. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/python_build/status.py +0 -0
  119. {digitalhub_runtime_python-0.15.0b10/digitalhub_runtime_python/runtimes → digitalhub_runtime_python-0.15.0b11/digitalhub_runtime_python/entities/task/python_job}/__init__.py +0 -0
  120. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/python_job/builder.py +0 -0
  121. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/python_job/entity.py +0 -0
  122. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/python_job/spec.py +0 -0
  123. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/python_job/status.py +0 -0
  124. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/python_serve/builder.py +0 -0
  125. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/python_serve/entity.py +0 -0
  126. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/python_serve/spec.py +0 -0
  127. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/entities/task/python_serve/status.py +0 -0
  128. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/runtimes/builder.py +0 -0
  129. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/runtimes/runtime.py +0 -0
  130. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/utils/configuration.py +0 -0
  131. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/utils/inputs.py +0 -0
  132. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/utils/outputs.py +0 -0
  133. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/digitalhub_runtime_python/utils/utils.py +0 -0
  134. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/test/instances/entities/function/function-python-git.json +0 -0
  135. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/test/instances/entities/function/function-python-local.json +0 -0
  136. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/test/instances/entities/function/function-python-zip.json +0 -0
  137. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/test/instances/entities/run/run-python+build:run.json +0 -0
  138. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/test/instances/entities/run/run-python+job:run.json +0 -0
  139. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/test/instances/entities/run/run-python+serve:run.json +0 -0
  140. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/test/instances/entities/task/task-python+build.json +0 -0
  141. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/test/instances/entities/task/task-python+job.json +0 -0
  142. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/test/instances/entities/task/task-python+serve.json +0 -0
  143. {digitalhub_runtime_python-0.15.0b10 → digitalhub_runtime_python-0.15.0b11}/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.0b10
3
+ Version: 0.15.0b11
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>
@@ -70,7 +70,6 @@ try:
70
70
  )
71
71
  except ImportError as e:
72
72
  from digitalhub.utils.logger.logger import get_logger
73
-
74
73
  logger = get_logger(__name__)
75
74
  logger.debug(f"Error importing runtime builders: {e}")
76
75
  runtime_builders = tuple()
@@ -0,0 +1,27 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from enum import Enum
6
+
7
+
8
+ class RequirementFormat(Enum):
9
+ """
10
+ Enum for requirement file formats.
11
+ """
12
+
13
+ PIP = "pip"
14
+ PYPROJECT = "pyproject"
15
+ CONDA = "conda"
16
+
17
+
18
+ class RequirementFile(Enum):
19
+ """
20
+ Enum for requirement file names.
21
+ """
22
+
23
+ REQUIREMENTS_TXT = "requirements.txt"
24
+ SETUP_PY = "setup.py"
25
+ PYPROJECT_TOML = "pyproject.toml"
26
+ CONDA_ENV_YAML = "conda.yaml"
27
+ CONDA_ENV_YML = "conda.yml"
@@ -0,0 +1,75 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+ from __future__ import annotations
5
+
6
+ from pathlib import Path
7
+
8
+ from digitalhub_runtime_python.entities._commons.requirement_parser.enums import RequirementFile, RequirementFormat
9
+ from digitalhub_runtime_python.entities._commons.requirement_parser.modules._base import BaseParser
10
+ from digitalhub_runtime_python.entities._commons.requirement_parser.modules._conda import CondaParser
11
+ from digitalhub_runtime_python.entities._commons.requirement_parser.modules._pip import PipParser
12
+ from digitalhub_runtime_python.entities._commons.requirement_parser.modules._pyproject import PyProjectParser
13
+
14
+
15
+ class RequirementParserFactory:
16
+ """
17
+ Factory for requirement parsers.
18
+ """
19
+
20
+ def get_parser(self, requirements_file: str) -> BaseParser:
21
+ """
22
+ Get the requirement parser based on the format.
23
+
24
+ Parameters
25
+ ----------
26
+ requirements_file : str
27
+ The path to the requirements file.
28
+
29
+ Returns
30
+ -------
31
+ BaseParser
32
+ The requirement parser.
33
+ """
34
+ req_type = self._requirements_format(requirements_file)
35
+ match req_type:
36
+ case RequirementFormat.PIP:
37
+ return PipParser()
38
+ case RequirementFormat.PYPROJECT:
39
+ return PyProjectParser()
40
+ case RequirementFormat.CONDA:
41
+ return CondaParser()
42
+ case _:
43
+ raise ValueError(f"No parser found for format: {requirements_file}")
44
+
45
+ @staticmethod
46
+ def _requirements_format(requirements_file: str) -> RequirementFormat:
47
+ """
48
+ Understand requirements file format.
49
+
50
+ Parameters
51
+ ----------
52
+ requirements_file : str
53
+ The path to the requirements file.
54
+
55
+ Returns
56
+ -------
57
+ RequirementFormat
58
+ The format of the requirements file (e.g., 'pip', 'pyproject', 'conda').
59
+ """
60
+ match Path(requirements_file).name:
61
+ case RequirementFile.REQUIREMENTS_TXT.value:
62
+ return RequirementFormat.PIP
63
+ case RequirementFile.SETUP_PY.value:
64
+ return RequirementFormat.PIP
65
+ case RequirementFile.PYPROJECT_TOML.value:
66
+ return RequirementFormat.PYPROJECT
67
+ case RequirementFile.CONDA_ENV_YML.value:
68
+ return RequirementFormat.CONDA
69
+ case RequirementFile.CONDA_ENV_YAML.value:
70
+ return RequirementFormat.CONDA
71
+ case _:
72
+ raise ValueError(
73
+ f"Unsupported requirements file: {Path(requirements_file).name}."
74
+ f" Supported filenames are: {', '.join([f.value for f in RequirementFile])}."
75
+ )
@@ -0,0 +1,14 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from abc import abstractmethod
6
+
7
+
8
+ class BaseParser:
9
+ @staticmethod
10
+ @abstractmethod
11
+ def parse_requirements(source: str) -> list[str]:
12
+ """
13
+ Parses the requirements file and returns a list of dependencies.
14
+ """
@@ -0,0 +1,38 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ import yaml
6
+
7
+ from digitalhub_runtime_python.entities._commons.requirement_parser.modules._base import BaseParser
8
+
9
+
10
+ class CondaParser(BaseParser):
11
+ @staticmethod
12
+ def parse_requirements(source: str) -> list[str]:
13
+ """
14
+ Parse an environment.yml file.
15
+
16
+ Parameters
17
+ ----------
18
+ source : str
19
+ Path to an environment.yml file.
20
+
21
+ Returns
22
+ -------
23
+ list[str]
24
+ A list of requirement strings.
25
+ """
26
+ requirements = []
27
+
28
+ with open(source, "r") as f:
29
+ data = yaml.safe_load(f)
30
+
31
+ if not data or "dependencies" not in data:
32
+ return requirements
33
+
34
+ for dep in data["dependencies"]:
35
+ if isinstance(dep, dict) and "pip" in dep:
36
+ requirements.extend(dep["pip"])
37
+
38
+ return requirements
@@ -0,0 +1,43 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from pip._internal.network.session import PipSession
6
+ from pip._internal.req import parse_requirements as pip_parse
7
+
8
+ from digitalhub_runtime_python.entities._commons.requirement_parser.modules._base import BaseParser
9
+
10
+
11
+ class PipParser(BaseParser):
12
+ @staticmethod
13
+ def parse_requirements(source: str) -> list[str]:
14
+ """
15
+ Parse a requirements.txt file using pip's internal parser.
16
+
17
+ Parameters
18
+ ----------
19
+ source : str
20
+ Path to a requirements.txt file.
21
+
22
+ Returns
23
+ -------
24
+ list[str]
25
+ A list of requirement strings as they would be understood by pip.
26
+
27
+ Examples
28
+ --------
29
+ >>> requirements = parse_requirements_with_pip("/path/to/requirements.txt")
30
+ >>> print(requirements)
31
+ ['numpy>=1.0', 'pandas==2.0.0', 'git+https://github.com/user/repo.git@main']
32
+ """
33
+ # Parse using pip's internal parser
34
+ session = PipSession()
35
+ parsed = pip_parse(source, session=session)
36
+
37
+ # Extract requirement strings
38
+ requirements = []
39
+ for req in parsed:
40
+ if req.requirement:
41
+ requirements.append(str(req.requirement))
42
+
43
+ return requirements
@@ -0,0 +1,41 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ try:
6
+ import tomllib
7
+ except ImportError:
8
+ import tomli as tomllib
9
+
10
+ from digitalhub_runtime_python.entities._commons.requirement_parser.modules._base import BaseParser
11
+
12
+
13
+ class PyProjectParser(BaseParser):
14
+ @staticmethod
15
+ def parse_requirements(source: str) -> list[str]:
16
+ """
17
+ Parse a pyproject.toml file.
18
+
19
+ Parameters
20
+ ----------
21
+ source : str
22
+ Path to a pyproject.toml file.
23
+
24
+ Returns
25
+ -------
26
+ list[str]
27
+ A list of requirement strings.
28
+ """
29
+ requirements = []
30
+
31
+ with open(source, "rb") as f:
32
+ data = tomllib.load(f)
33
+
34
+ project = data.get("project", {})
35
+
36
+ # Dependencies
37
+ dependencies = project.get("dependencies", [])
38
+ if isinstance(dependencies, list):
39
+ requirements.extend(dependencies)
40
+
41
+ return requirements
@@ -0,0 +1,96 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+ from __future__ import annotations
5
+
6
+ from pathlib import Path
7
+
8
+ from pip._internal.operations import freeze
9
+
10
+ from digitalhub_runtime_python.entities._commons.requirement_parser.factory import RequirementParserFactory
11
+
12
+
13
+ class RequirementParser:
14
+ """
15
+ A utility class for parsing requirements files using pip's internal parser.
16
+ """
17
+
18
+ def parse(self, requirements: list[str] | str | None = None) -> list[str] | None:
19
+ """
20
+ Parse the requirements file.
21
+
22
+ Returns
23
+ -------
24
+ list[str] | None
25
+ A list of requirement strings or None if no requirements are provided.
26
+ """
27
+ if requirements is None:
28
+ return
29
+ elif isinstance(requirements, str):
30
+ self._validate_path(requirements)
31
+ parser = RequirementParserFactory().get_parser(requirements)
32
+ parsed = parser.parse_requirements(requirements)
33
+ return self.read_installed_packages(parsed)
34
+ return self.read_installed_packages(requirements)
35
+
36
+ def _validate_path(self, path: str) -> None:
37
+ """
38
+ Validate the provided path.
39
+ """
40
+ if not Path(path).exists():
41
+ raise FileNotFoundError(f"Requirements file not found: {path}")
42
+ if not Path(path).is_file():
43
+ raise ValueError(f"Provided path is not a file: {path}")
44
+
45
+ @staticmethod
46
+ def read_installed_packages(requirements: list[str] | None = None) -> list[str] | None:
47
+ """
48
+ Read installed packages in execution context.
49
+
50
+ If requirements is provided, returns only those packages with their
51
+ versions filled in from the environment. Package names without versions
52
+ in the requirements list will have their versions added if found.
53
+
54
+ Parameters
55
+ ----------
56
+ requirements : list[str]
57
+ Optional list of package names (e.g., ['pandas', 'torch']) or
58
+ requirements with versions (e.g., ['pandas==2.0.0']).
59
+
60
+ Returns
61
+ -------
62
+ list[str]
63
+ List of installed packages in pip freeze format (e.g., ['numpy==1.24.0', 'pandas==2.0.0']).
64
+ """
65
+ separators = ["==", ">=", "<=", ">", "<", "~=", "!="]
66
+
67
+ # Build a mapping of normalized package names to their installed versions
68
+ installed_map: dict[str, str] = {}
69
+ for pkg in freeze.freeze():
70
+ # Handle different separators
71
+ for sep in separators:
72
+ if sep in pkg:
73
+ name, version = pkg.split(sep, 1)
74
+ # Normalize package name (lowercase, replace _ with -)
75
+ installed_map[name.lower().replace("_", "-")] = f"{name}{sep}{version}"
76
+ break
77
+
78
+ result = []
79
+ for req in requirements:
80
+ # Check if requirement already has a version specifier
81
+ has_version = any(sep in req for sep in separators)
82
+
83
+ if has_version:
84
+ # Keep as-is if version is already specified
85
+ result.append(req)
86
+ else:
87
+ # Normalize the requirement name for lookup
88
+ normalized_name = req.lower().replace("_", "-")
89
+ if normalized_name in installed_map:
90
+ # Use the installed version
91
+ result.append(installed_map[normalized_name])
92
+ else:
93
+ # Package not found in environment, keep without version
94
+ result.append(req)
95
+
96
+ return result
@@ -11,7 +11,7 @@ from digitalhub.utils.generic_utils import decode_base64_string
11
11
  from digitalhub.utils.io_utils import write_text
12
12
  from digitalhub.utils.uri_utils import has_local_scheme
13
13
 
14
- from digitalhub_runtime_python.entities.function.python.utils import read_installed_packages
14
+ from digitalhub_runtime_python.entities._commons.requirement_parser.parser import RequirementParser
15
15
 
16
16
  if typing.TYPE_CHECKING:
17
17
  from digitalhub_runtime_python.entities.function.guardrail.spec import FunctionSpecGuardrail
@@ -66,4 +66,4 @@ class FunctionGuardrail(Function):
66
66
  in Core.
67
67
  Can be overridden in subclasses to implement custom behavior.
68
68
  """
69
- self.spec.requirements = read_installed_packages(self.spec.requirements)
69
+ self.spec.requirements = RequirementParser().parse(self.spec.requirements)
@@ -11,7 +11,7 @@ from digitalhub.utils.generic_utils import decode_base64_string
11
11
  from digitalhub.utils.io_utils import write_text
12
12
  from digitalhub.utils.uri_utils import has_local_scheme
13
13
 
14
- from digitalhub_runtime_python.entities.function.python.utils import read_installed_packages
14
+ from digitalhub_runtime_python.entities._commons.requirement_parser.parser import RequirementParser
15
15
 
16
16
  if typing.TYPE_CHECKING:
17
17
  from digitalhub_runtime_python.entities.function.openinference.spec import FunctionSpecOpeninference
@@ -66,4 +66,4 @@ class FunctionOpeninference(Function):
66
66
  in Core.
67
67
  Can be overridden in subclasses to implement custom behavior.
68
68
  """
69
- self.spec.requirements = read_installed_packages(self.spec.requirements)
69
+ self.spec.requirements = RequirementParser().parse(self.spec.requirements)
@@ -11,7 +11,7 @@ from digitalhub.utils.generic_utils import decode_base64_string
11
11
  from digitalhub.utils.io_utils import write_text
12
12
  from digitalhub.utils.uri_utils import has_local_scheme
13
13
 
14
- from digitalhub_runtime_python.entities.function.python.utils import parse_requirements, read_installed_packages
14
+ from digitalhub_runtime_python.entities._commons.requirement_parser.parser import RequirementParser
15
15
 
16
16
  if typing.TYPE_CHECKING:
17
17
  from digitalhub_runtime_python.entities.function.python.spec import FunctionSpecPython
@@ -66,6 +66,4 @@ class FunctionPython(Function):
66
66
  in Core.
67
67
  Can be overridden in subclasses to implement custom behavior.
68
68
  """
69
- if isinstance(self.spec.requirements, str):
70
- self.spec.requirements = parse_requirements(self.spec.requirements)
71
- self.spec.requirements = read_installed_packages(self.spec.requirements)
69
+ self.spec.requirements = RequirementParser().parse(self.spec.requirements)
@@ -12,9 +12,6 @@ from digitalhub.utils.exceptions import EntityError
12
12
  from digitalhub.utils.file_utils import eval_py_type, eval_zip_type
13
13
  from digitalhub.utils.generic_utils import encode_string, read_source
14
14
  from digitalhub.utils.uri_utils import has_local_scheme
15
- from pip._internal.network.session import PipSession
16
- from pip._internal.operations import freeze
17
- from pip._internal.req import parse_requirements as pip_parse
18
15
 
19
16
  from digitalhub_runtime_python.entities.function.python.models import Lang
20
17
 
@@ -22,9 +19,6 @@ if typing.TYPE_CHECKING:
22
19
  from digitalhub_runtime_python.entities.function.python.entity import FunctionPython
23
20
 
24
21
 
25
- SEPARATORS = ["==", ">=", "<=", ">", "<", "~=", "!="]
26
-
27
-
28
22
  def source_check(**kwargs) -> dict:
29
23
  """
30
24
  Check source code.
@@ -162,90 +156,3 @@ def source_post_check(exec: FunctionPython) -> FunctionPython:
162
156
  exec.spec.source["handler"] = f"{Path(code_src).stem}:{exec.spec.source['handler']}"
163
157
 
164
158
  return exec
165
-
166
-
167
- def read_installed_packages(requirements: list[str] | None = None) -> list[str] | None:
168
- """
169
- Read installed packages in execution context.
170
-
171
- If requirements is provided, returns only those packages with their
172
- versions filled in from the environment. Package names without versions
173
- in the requirements list will have their versions added if found.
174
-
175
- Parameters
176
- ----------
177
- requirements : list[str]
178
- Optional list of package names (e.g., ['pandas', 'torch']) or
179
- requirements with versions (e.g., ['pandas==2.0.0']).
180
-
181
- Returns
182
- -------
183
- list[str]
184
- List of installed packages in pip freeze format (e.g., ['numpy==1.24.0', 'pandas==2.0.0']).
185
- """
186
- if requirements is None:
187
- return
188
-
189
- # Build a mapping of normalized package names to their installed versions
190
- installed_map: dict[str, str] = {}
191
- for pkg in freeze.freeze():
192
- # Handle different separators
193
- for sep in SEPARATORS:
194
- if sep in pkg:
195
- name, version = pkg.split(sep, 1)
196
- # Normalize package name (lowercase, replace _ with -)
197
- installed_map[name.lower().replace("_", "-")] = f"{name}{sep}{version}"
198
- break
199
-
200
- result = []
201
- for req in requirements:
202
- # Check if requirement already has a version specifier
203
- has_version = any(sep in req for sep in SEPARATORS)
204
-
205
- if has_version:
206
- # Keep as-is if version is already specified
207
- result.append(req)
208
- else:
209
- # Normalize the requirement name for lookup
210
- normalized_name = req.lower().replace("_", "-")
211
- if normalized_name in installed_map:
212
- # Use the installed version
213
- result.append(installed_map[normalized_name])
214
- else:
215
- # Package not found in environment, keep without version
216
- result.append(req)
217
-
218
- return result
219
-
220
-
221
- def parse_requirements(source: str) -> list[str]:
222
- """
223
- Parse a requirements.txt file using pip's internal parser.
224
-
225
- Parameters
226
- ----------
227
- source : str
228
- Path to a requirements.txt file.
229
-
230
- Returns
231
- -------
232
- list[str]
233
- A list of requirement strings as they would be understood by pip.
234
-
235
- Examples
236
- --------
237
- >>> requirements = parse_requirements_with_pip("/path/to/requirements.txt")
238
- >>> print(requirements)
239
- ['numpy>=1.0', 'pandas==2.0.0', 'git+https://github.com/user/repo.git@main']
240
- """
241
- # Parse using pip's internal parser
242
- session = PipSession()
243
- parsed = pip_parse(source, session=session)
244
-
245
- # Extract requirement strings
246
- requirements = []
247
- for req in parsed:
248
- if req.requirement:
249
- requirements.append(str(req.requirement))
250
-
251
- return requirements
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "digitalhub-runtime-python"
7
- version = "0.15.0b10"
7
+ version = "0.15.0b11"
8
8
  description = "Python runtime for DHCore"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -52,7 +52,7 @@ docstring-code-line-length = 120
52
52
  convention = "numpy"
53
53
 
54
54
  [tool.bumpver]
55
- current_version = "0.15.0b10"
55
+ current_version = "0.15.0b11"
56
56
  version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
57
57
  commit_message = "Bump version {old_version} -> {new_version}"
58
58
  commit = false