digitalhub 0.13.0b3__tar.gz → 0.14.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.

Potentially problematic release.


This version of digitalhub might be problematic. Click here for more details.

Files changed (316) hide show
  1. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/.github/scripts/cliff.toml +4 -3
  2. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/.github/workflows/release.yml +1 -1
  3. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/PKG-INFO +3 -2
  4. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/README.md +2 -1
  5. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/__init__.py +3 -8
  6. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/_base/entity.py +0 -11
  7. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/entity/builder.py +5 -5
  8. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/executable/entity.py +1 -1
  9. digitalhub-0.14.0b0/digitalhub/entities/_base/runtime_entity/builder.py +145 -0
  10. digitalhub-0.14.0b0/digitalhub/entities/_commons/metrics.py +202 -0
  11. digitalhub-0.14.0b0/digitalhub/entities/_commons/utils.py +157 -0
  12. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_processors/base.py +160 -81
  13. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_processors/context.py +424 -224
  14. digitalhub-0.14.0b0/digitalhub/entities/_processors/utils.py +206 -0
  15. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/artifact/crud.py +20 -4
  16. digitalhub-0.14.0b0/digitalhub/entities/artifact/utils.py +81 -0
  17. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/crud.py +20 -4
  18. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/table/entity.py +0 -21
  19. digitalhub-0.14.0b0/digitalhub/entities/dataitem/utils.py +238 -0
  20. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/function/_base/entity.py +1 -1
  21. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/function/crud.py +15 -4
  22. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/_base/entity.py +21 -1
  23. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/crud.py +21 -5
  24. digitalhub-0.14.0b0/digitalhub/entities/model/utils.py +81 -0
  25. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/project/_base/entity.py +65 -33
  26. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/project/crud.py +8 -1
  27. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/run/_base/entity.py +21 -1
  28. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/run/crud.py +22 -5
  29. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/secret/crud.py +22 -5
  30. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/task/crud.py +22 -5
  31. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/crud.py +20 -4
  32. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/workflow/_base/entity.py +1 -1
  33. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/workflow/crud.py +15 -4
  34. digitalhub-0.14.0b0/digitalhub/factory/enums.py +18 -0
  35. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/factory/factory.py +136 -57
  36. digitalhub-0.14.0b0/digitalhub/factory/utils.py +68 -0
  37. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/api.py +6 -10
  38. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/builder.py +3 -3
  39. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/dhcore/client.py +104 -162
  40. digitalhub-0.14.0b0/digitalhub/stores/client/dhcore/configurator.py +478 -0
  41. digitalhub-0.14.0b0/digitalhub/stores/client/dhcore/enums.py +18 -0
  42. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/dhcore/params_builder.py +41 -83
  43. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/dhcore/utils.py +14 -22
  44. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/local/client.py +77 -45
  45. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/credentials/enums.py +1 -0
  46. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/credentials/ini_module.py +0 -16
  47. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/api.py +1 -1
  48. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/builder.py +66 -4
  49. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/local/store.py +0 -103
  50. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/s3/configurator.py +60 -6
  51. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/s3/store.py +44 -2
  52. digitalhub-0.14.0b0/digitalhub/stores/data/sql/configurator.py +120 -0
  53. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/sql/store.py +184 -78
  54. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/utils/file_utils.py +0 -17
  55. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/utils/generic_utils.py +1 -2
  56. digitalhub-0.14.0b0/digitalhub/utils/store_utils.py +44 -0
  57. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/pyproject.toml +2 -2
  58. digitalhub-0.13.0b3/digitalhub/entities/_base/runtime_entity/builder.py +0 -110
  59. digitalhub-0.13.0b3/digitalhub/entities/_commons/metrics.py +0 -168
  60. digitalhub-0.13.0b3/digitalhub/entities/_commons/types.py +0 -9
  61. digitalhub-0.13.0b3/digitalhub/entities/_commons/utils.py +0 -87
  62. digitalhub-0.13.0b3/digitalhub/entities/_processors/utils.py +0 -162
  63. digitalhub-0.13.0b3/digitalhub/entities/artifact/utils.py +0 -66
  64. digitalhub-0.13.0b3/digitalhub/entities/dataitem/utils.py +0 -188
  65. digitalhub-0.13.0b3/digitalhub/entities/model/utils.py +0 -66
  66. digitalhub-0.13.0b3/digitalhub/entities/task/_base/utils.py +0 -22
  67. digitalhub-0.13.0b3/digitalhub/factory/utils.py +0 -119
  68. digitalhub-0.13.0b3/digitalhub/stores/client/dhcore/configurator.py +0 -675
  69. digitalhub-0.13.0b3/digitalhub/stores/client/dhcore/enums.py +0 -34
  70. digitalhub-0.13.0b3/digitalhub/stores/client/dhcore/models.py +0 -40
  71. digitalhub-0.13.0b3/digitalhub/stores/data/s3/utils.py +0 -78
  72. digitalhub-0.13.0b3/digitalhub/stores/data/sql/configurator.py +0 -70
  73. digitalhub-0.13.0b3/test/test_crud_functions.py +0 -111
  74. digitalhub-0.13.0b3/test/test_crud_runs.py +0 -88
  75. digitalhub-0.13.0b3/test/test_crud_tasks.py +0 -83
  76. digitalhub-0.13.0b3/test/testkfp.py +0 -40
  77. digitalhub-0.13.0b3/test/testkfp_pipeline.py +0 -25
  78. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/.github/scripts/bump.sh +0 -0
  79. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/.github/scripts/changelog.sh +0 -0
  80. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/.github/workflows/run_local_test.yml +0 -0
  81. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/.github/workflows/test_release.yml +0 -0
  82. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/.gitignore +0 -0
  83. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/AUTHORS +0 -0
  84. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/CONTRIBUTING +0 -0
  85. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/COPYRIGHT +0 -0
  86. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/LICENSE +0 -0
  87. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/context/api.py +0 -0
  88. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/context/builder.py +0 -0
  89. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/context/context.py +0 -0
  90. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/__init__.py +0 -0
  91. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/__init__.py +0 -0
  92. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/_base/__init__.py +0 -0
  93. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/context/__init__.py +0 -0
  94. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/context/entity.py +0 -0
  95. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/entity/__init__.py +0 -0
  96. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/entity/entity.py +0 -0
  97. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/entity/metadata.py +0 -0
  98. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/entity/spec.py +0 -0
  99. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/entity/status.py +0 -0
  100. {digitalhub-0.13.0b3/digitalhub/entities/_base/entity/_constructors → digitalhub-0.14.0b0/digitalhub/entities/_base/executable}/__init__.py +0 -0
  101. {digitalhub-0.13.0b3/digitalhub/entities/_base/executable → digitalhub-0.14.0b0/digitalhub/entities/_base/material}/__init__.py +0 -0
  102. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/material/entity.py +0 -0
  103. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/material/spec.py +0 -0
  104. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/material/status.py +0 -0
  105. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/material/utils.py +0 -0
  106. {digitalhub-0.13.0b3/digitalhub/entities/_base/material → digitalhub-0.14.0b0/digitalhub/entities/_base/runtime_entity}/__init__.py +0 -0
  107. {digitalhub-0.13.0b3/digitalhub/entities/_base/runtime_entity → digitalhub-0.14.0b0/digitalhub/entities/_base/unversioned}/__init__.py +0 -0
  108. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/unversioned/builder.py +0 -0
  109. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/unversioned/entity.py +0 -0
  110. {digitalhub-0.13.0b3/digitalhub/entities/_base/unversioned → digitalhub-0.14.0b0/digitalhub/entities/_base/versioned}/__init__.py +0 -0
  111. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/versioned/builder.py +0 -0
  112. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_base/versioned/entity.py +0 -0
  113. {digitalhub-0.13.0b3/digitalhub/entities/_base/versioned → digitalhub-0.14.0b0/digitalhub/entities/_commons}/__init__.py +0 -0
  114. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_commons/enums.py +0 -0
  115. {digitalhub-0.13.0b3/digitalhub/entities/_commons → digitalhub-0.14.0b0/digitalhub/entities/_constructors}/__init__.py +0 -0
  116. {digitalhub-0.13.0b3/digitalhub/entities/_base/entity → digitalhub-0.14.0b0/digitalhub/entities}/_constructors/metadata.py +0 -0
  117. {digitalhub-0.13.0b3/digitalhub/entities/_base/entity → digitalhub-0.14.0b0/digitalhub/entities}/_constructors/name.py +0 -0
  118. {digitalhub-0.13.0b3/digitalhub/entities/_base/entity → digitalhub-0.14.0b0/digitalhub/entities}/_constructors/spec.py +0 -0
  119. {digitalhub-0.13.0b3/digitalhub/entities/_base/entity → digitalhub-0.14.0b0/digitalhub/entities}/_constructors/status.py +0 -0
  120. {digitalhub-0.13.0b3/digitalhub/entities/_base/entity → digitalhub-0.14.0b0/digitalhub/entities}/_constructors/uuid.py +0 -0
  121. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/_processors/__init__.py +0 -0
  122. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/artifact/__init__.py +0 -0
  123. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/artifact/_base/__init__.py +0 -0
  124. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/artifact/_base/builder.py +0 -0
  125. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/artifact/_base/entity.py +0 -0
  126. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/artifact/_base/spec.py +0 -0
  127. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/artifact/_base/status.py +0 -0
  128. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/artifact/artifact/__init__.py +0 -0
  129. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/artifact/artifact/builder.py +0 -0
  130. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/artifact/artifact/entity.py +0 -0
  131. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/artifact/artifact/spec.py +0 -0
  132. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/artifact/artifact/status.py +0 -0
  133. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/builders.py +0 -0
  134. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/__init__.py +0 -0
  135. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/_base/__init__.py +0 -0
  136. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/_base/builder.py +0 -0
  137. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/_base/entity.py +0 -0
  138. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/_base/spec.py +0 -0
  139. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/_base/status.py +0 -0
  140. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/dataitem/__init__.py +0 -0
  141. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/dataitem/builder.py +0 -0
  142. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/dataitem/entity.py +0 -0
  143. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/dataitem/spec.py +0 -0
  144. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/dataitem/status.py +0 -0
  145. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/iceberg/__init__.py +0 -0
  146. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/iceberg/builder.py +0 -0
  147. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/iceberg/entity.py +0 -0
  148. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/iceberg/spec.py +0 -0
  149. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/iceberg/status.py +0 -0
  150. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/table/__init__.py +0 -0
  151. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/table/builder.py +0 -0
  152. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/table/models.py +0 -0
  153. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/table/spec.py +0 -0
  154. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/table/status.py +0 -0
  155. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/dataitem/table/utils.py +0 -0
  156. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/function/__init__.py +0 -0
  157. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/function/_base/__init__.py +0 -0
  158. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/function/_base/builder.py +0 -0
  159. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/function/_base/spec.py +0 -0
  160. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/function/_base/status.py +0 -0
  161. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/__init__.py +0 -0
  162. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/_base/__init__.py +0 -0
  163. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/_base/builder.py +0 -0
  164. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/_base/spec.py +0 -0
  165. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/_base/status.py +0 -0
  166. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/huggingface/__init__.py +0 -0
  167. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/huggingface/builder.py +0 -0
  168. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/huggingface/entity.py +0 -0
  169. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/huggingface/spec.py +0 -0
  170. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/huggingface/status.py +0 -0
  171. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/mlflow/__init__.py +0 -0
  172. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/mlflow/builder.py +0 -0
  173. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/mlflow/entity.py +0 -0
  174. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/mlflow/models.py +0 -0
  175. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/mlflow/spec.py +0 -0
  176. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/mlflow/status.py +0 -0
  177. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/mlflow/utils.py +0 -0
  178. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/model/__init__.py +0 -0
  179. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/model/builder.py +0 -0
  180. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/model/entity.py +0 -0
  181. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/model/spec.py +0 -0
  182. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/model/status.py +0 -0
  183. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/sklearn/__init__.py +0 -0
  184. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/sklearn/builder.py +0 -0
  185. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/sklearn/entity.py +0 -0
  186. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/sklearn/spec.py +0 -0
  187. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/model/sklearn/status.py +0 -0
  188. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/project/__init__.py +0 -0
  189. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/project/_base/__init__.py +0 -0
  190. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/project/_base/builder.py +0 -0
  191. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/project/_base/models.py +0 -0
  192. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/project/_base/spec.py +0 -0
  193. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/project/_base/status.py +0 -0
  194. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/project/utils.py +0 -0
  195. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/run/__init__.py +0 -0
  196. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/run/_base/__init__.py +0 -0
  197. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/run/_base/builder.py +0 -0
  198. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/run/_base/spec.py +0 -0
  199. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/run/_base/status.py +0 -0
  200. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/secret/__init__.py +0 -0
  201. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/secret/_base/__init__.py +0 -0
  202. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/secret/_base/builder.py +0 -0
  203. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/secret/_base/entity.py +0 -0
  204. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/secret/_base/spec.py +0 -0
  205. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/secret/_base/status.py +0 -0
  206. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/task/__init__.py +0 -0
  207. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/task/_base/__init__.py +0 -0
  208. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/task/_base/builder.py +0 -0
  209. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/task/_base/entity.py +0 -0
  210. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/task/_base/models.py +0 -0
  211. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/task/_base/spec.py +0 -0
  212. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/task/_base/status.py +0 -0
  213. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/__init__.py +0 -0
  214. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/_base/__init__.py +0 -0
  215. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/_base/builder.py +0 -0
  216. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/_base/entity.py +0 -0
  217. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/_base/spec.py +0 -0
  218. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/_base/status.py +0 -0
  219. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/lifecycle/__init__.py +0 -0
  220. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/lifecycle/builder.py +0 -0
  221. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/lifecycle/entity.py +0 -0
  222. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/lifecycle/spec.py +0 -0
  223. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/lifecycle/status.py +0 -0
  224. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/scheduler/__init__.py +0 -0
  225. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/scheduler/builder.py +0 -0
  226. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/scheduler/entity.py +0 -0
  227. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/scheduler/spec.py +0 -0
  228. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/trigger/scheduler/status.py +0 -0
  229. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/workflow/__init__.py +0 -0
  230. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/workflow/_base/__init__.py +0 -0
  231. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/workflow/_base/builder.py +0 -0
  232. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/workflow/_base/spec.py +0 -0
  233. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/entities/workflow/_base/status.py +0 -0
  234. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/factory/__init__.py +0 -0
  235. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/runtimes/__init__.py +0 -0
  236. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/runtimes/_base.py +0 -0
  237. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/runtimes/builder.py +0 -0
  238. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/runtimes/enums.py +0 -0
  239. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/__init__.py +0 -0
  240. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/__init__.py +0 -0
  241. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/_base/__init__.py +0 -0
  242. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/_base/api_builder.py +0 -0
  243. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/_base/client.py +0 -0
  244. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/_base/key_builder.py +0 -0
  245. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/_base/params_builder.py +0 -0
  246. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/dhcore/__init__.py +0 -0
  247. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/dhcore/api_builder.py +0 -0
  248. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/dhcore/error_parser.py +0 -0
  249. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/dhcore/key_builder.py +0 -0
  250. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/local/__init__.py +0 -0
  251. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/local/api_builder.py +0 -0
  252. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/local/enums.py +0 -0
  253. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/local/key_builder.py +0 -0
  254. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/client/local/params_builder.py +0 -0
  255. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/credentials/__init__.py +0 -0
  256. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/credentials/api.py +0 -0
  257. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/credentials/configurator.py +0 -0
  258. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/credentials/handler.py +0 -0
  259. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/credentials/store.py +0 -0
  260. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/__init__.py +0 -0
  261. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/_base/__init__.py +0 -0
  262. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/_base/store.py +0 -0
  263. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/enums.py +0 -0
  264. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/local/__init__.py +0 -0
  265. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/remote/__init__.py +0 -0
  266. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/remote/store.py +0 -0
  267. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/s3/__init__.py +0 -0
  268. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/data/sql/__init__.py +0 -0
  269. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/readers/__init__.py +0 -0
  270. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/readers/data/__init__.py +0 -0
  271. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/readers/data/_base/__init__.py +0 -0
  272. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/readers/data/_base/builder.py +0 -0
  273. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/readers/data/_base/reader.py +0 -0
  274. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/readers/data/api.py +0 -0
  275. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/readers/data/factory.py +0 -0
  276. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/readers/data/pandas/__init__.py +0 -0
  277. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/readers/data/pandas/builder.py +0 -0
  278. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/readers/data/pandas/reader.py +0 -0
  279. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/stores/readers/query/__init__.py +0 -0
  280. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/utils/__init__.py +0 -0
  281. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/utils/enums.py +0 -0
  282. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/utils/exceptions.py +0 -0
  283. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/utils/git_utils.py +0 -0
  284. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/utils/io_utils.py +0 -0
  285. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/utils/logger.py +0 -0
  286. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/utils/types.py +0 -0
  287. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/digitalhub/utils/uri_utils.py +0 -0
  288. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/scripts/README.md +0 -0
  289. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/scripts/local-copy/README.md +0 -0
  290. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/scripts/local-copy/local_copy.sh +0 -0
  291. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/scripts/quick-docker-copy/DBT.dockerfile +0 -0
  292. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/scripts/quick-docker-copy/KFP.dockerfile +0 -0
  293. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/scripts/quick-docker-copy/PY10.dockerfile +0 -0
  294. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/scripts/quick-docker-copy/PY11.dockerfile +0 -0
  295. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/scripts/quick-docker-copy/PY9.dockerfile +0 -0
  296. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/scripts/quick-docker-copy/README.md +0 -0
  297. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/scripts/quick-docker-copy/build_containers.sh +0 -0
  298. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/scripts/spec_exporter/README.md +0 -0
  299. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/scripts/spec_exporter/exporter.sh +0 -0
  300. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/CRUD/test_artifacts.py +0 -0
  301. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/CRUD/test_dataitems.py +0 -0
  302. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/CRUD/test_models.py +0 -0
  303. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/imports/test_imports.py +0 -0
  304. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/entities/artifact/artifact-http.json +0 -0
  305. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/entities/artifact/artifact-local.json +0 -0
  306. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/entities/artifact/artifact-s3.json +0 -0
  307. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/entities/artifact/artifact-sql.json +0 -0
  308. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/entities/dataitem/dataitem-table.json +0 -0
  309. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/entities/dataitem/dataitem.json +0 -0
  310. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/entities/model/model-huggingface.json +0 -0
  311. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/entities/model/model-mlflow.json +0 -0
  312. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/entities/model/model-sklearn.json +0 -0
  313. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/entities/model/model.json +0 -0
  314. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/entities/project.json +0 -0
  315. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/entities/secret.json +0 -0
  316. {digitalhub-0.13.0b3 → digitalhub-0.14.0b0}/test/local/instances/test_validate.py +0 -0
@@ -62,9 +62,10 @@ commit_preprocessors = [
62
62
  commit_parsers = [
63
63
  { message = "^feat", group = "<!-- 0 --> Features" },
64
64
  { message = "^fix", group = "<!-- 1 --> Bug Fixes" },
65
- { message = "^perf", group = "<!-- 3 --> Performance" },
66
- { message = "^build", group = "<!-- 4 --> Build" },
67
- { message = "^doc", group = "<!-- 5 --> Documentation" },
65
+ { message = "^perf", group = "<!-- 2 --> Performance" },
66
+ { message = "^build", group = "<!-- 3 --> Build" },
67
+ { message = "^doc", group = "<!-- 4 --> Documentation" },
68
+ { message = "^BREAKING", group = "<!-- 5 --> Breaking Changes" },
68
69
  { message = ".*", group = "<!-- 10 --> Other" , skip = true },
69
70
  ]
70
71
  # filter out the commits that are not matched by commit parsers
@@ -132,7 +132,7 @@ jobs:
132
132
  branch=${{ github.ref }}
133
133
 
134
134
  # Define the repositories to trigger
135
- repos=("digitalhub-sdk-wrapper-kfp" "jupyter-notebook-custom-image" "digitalhub-sdk-wrapper-hera" "digitalhub-sdk-wrapper-dbt" )
135
+ repos=("digitalhub-sdk-wrapper-kfp" "digitalhub-serverless" "digitalhub-sdk-wrapper-hera" "digitalhub-sdk-wrapper-dbt" )
136
136
 
137
137
  # Loop over the repositories and trigger the workflow
138
138
  for repo in "${repos[@]}"; do
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalhub
3
- Version: 0.13.0b3
3
+ Version: 0.14.0b0
4
4
  Summary: Python SDK for Digitalhub
5
5
  Project-URL: Homepage, https://github.com/scc-digitalhub/digitalhub-sdk
6
6
  Author-email: Fondazione Bruno Kessler <digitalhub@fbk.eu>, Matteo Martini <mmartini@fbk.eu>
@@ -252,7 +252,7 @@ Explore the full documentation at the [link](https://scc-digitalhub.github.io/sd
252
252
  To install the Digitalhub, you can use pip:
253
253
 
254
254
  ```bash
255
- pip install digitalhub
255
+ pip install digitalhub[full]
256
256
  ```
257
257
 
258
258
  To be able to create and execute functions or workflows, you need to install the runtime you want to use. The Digitalhub SDK supports multiple runtimes, each with its own installation instructions:
@@ -261,6 +261,7 @@ To be able to create and execute functions or workflows, you need to install the
261
261
  - [Digitalhub SDK Runtime Dbt](https://github.com/scc-digitalhub/digitalhub-sdk-runtime-dbt)
262
262
  - [Digitalhub SDK Runtime Container](https://github.com/scc-digitalhub/digitalhub-sdk-runtime-container)
263
263
  - [Digitalhub SDK Runtime Kfp](https://github.com/scc-digitalhub/digitalhub-sdk-runtime-kfp)
264
+ - [Digitalhub SDK Runtime Hera](https://github.com/scc-digitalhub/digitalhub-sdk-runtime-hera)
264
265
  - [Digitalhub SDK Runtime Modelserve](https://github.com/scc-digitalhub/digitalhub-sdk-runtime-modelserve)
265
266
 
266
267
  ## Development
@@ -12,7 +12,7 @@ Explore the full documentation at the [link](https://scc-digitalhub.github.io/sd
12
12
  To install the Digitalhub, you can use pip:
13
13
 
14
14
  ```bash
15
- pip install digitalhub
15
+ pip install digitalhub[full]
16
16
  ```
17
17
 
18
18
  To be able to create and execute functions or workflows, you need to install the runtime you want to use. The Digitalhub SDK supports multiple runtimes, each with its own installation instructions:
@@ -21,6 +21,7 @@ To be able to create and execute functions or workflows, you need to install the
21
21
  - [Digitalhub SDK Runtime Dbt](https://github.com/scc-digitalhub/digitalhub-sdk-runtime-dbt)
22
22
  - [Digitalhub SDK Runtime Container](https://github.com/scc-digitalhub/digitalhub-sdk-runtime-container)
23
23
  - [Digitalhub SDK Runtime Kfp](https://github.com/scc-digitalhub/digitalhub-sdk-runtime-kfp)
24
+ - [Digitalhub SDK Runtime Hera](https://github.com/scc-digitalhub/digitalhub-sdk-runtime-hera)
24
25
  - [Digitalhub SDK Runtime Modelserve](https://github.com/scc-digitalhub/digitalhub-sdk-runtime-modelserve)
25
26
 
26
27
  ## Development
@@ -95,16 +95,11 @@ from digitalhub.entities.workflow.crud import (
95
95
  new_workflow,
96
96
  update_workflow,
97
97
  )
98
+ from digitalhub.stores.client.dhcore.utils import refresh_token, set_dhcore_env
99
+ from digitalhub.stores.credentials.api import get_current_profile, set_current_profile
100
+ from digitalhub.utils.store_utils import get_s3_client, get_sql_engine
98
101
 
99
102
  try:
100
103
  from digitalhub.entities.model.mlflow.utils import from_mlflow_run, get_mlflow_model_metrics
101
104
  except ImportError:
102
105
  ...
103
-
104
- # Register entities into registry
105
- from digitalhub.factory.utils import register_entities, register_runtimes_entities
106
- from digitalhub.stores.client.dhcore.utils import refresh_token, set_dhcore_env
107
- from digitalhub.stores.credentials.api import get_current_profile, set_current_profile
108
-
109
- register_entities()
110
- register_runtimes_entities()
@@ -63,17 +63,6 @@ class Base:
63
63
  if k not in self.__dict__:
64
64
  setattr(self, k, v)
65
65
 
66
- def _get_private_attrs(self) -> dict:
67
- """
68
- Return all private attributes of the object.
69
-
70
- Returns
71
- -------
72
- dict
73
- A dictionary containing the private attributes of the entity instance.
74
- """
75
- return {k: v for k, v in self.__dict__.items() if k.startswith("_")}
76
-
77
66
  def __repr__(self) -> str:
78
67
  """
79
68
  Return string representation of the entity object.
@@ -7,11 +7,11 @@ from __future__ import annotations
7
7
  import typing
8
8
  from abc import abstractmethod
9
9
 
10
- from digitalhub.entities._base.entity._constructors.metadata import build_metadata
11
- from digitalhub.entities._base.entity._constructors.name import build_name
12
- from digitalhub.entities._base.entity._constructors.spec import build_spec
13
- from digitalhub.entities._base.entity._constructors.status import build_status
14
- from digitalhub.entities._base.entity._constructors.uuid import build_uuid
10
+ from digitalhub.entities._constructors.metadata import build_metadata
11
+ from digitalhub.entities._constructors.name import build_name
12
+ from digitalhub.entities._constructors.spec import build_spec
13
+ from digitalhub.entities._constructors.status import build_status
14
+ from digitalhub.entities._constructors.uuid import build_uuid
15
15
  from digitalhub.utils.exceptions import BuilderError
16
16
 
17
17
  if typing.TYPE_CHECKING:
@@ -430,7 +430,7 @@ class ExecutableEntity(VersionedEntity):
430
430
  task_string = task._get_task_string()
431
431
 
432
432
  # Get run validator for building trigger template
433
- run_kind = factory.get_run_kind(self.kind)
433
+ run_kind = factory.get_run_kind_from_action(self.kind, action)
434
434
  run_validator: SpecValidator = factory.get_spec_validator(run_kind)
435
435
  # Override kwargs
436
436
  kwargs["project"] = self.project
@@ -0,0 +1,145 @@
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._commons.utils import KindAction
8
+ from digitalhub.utils.exceptions import EntityError
9
+
10
+
11
+ class RuntimeEntityBuilder:
12
+ """
13
+ RuntimeEntity builder.
14
+ """
15
+
16
+ EXECUTABLE_KIND: str = None
17
+ TASKS_KINDS: list[KindAction] = None
18
+ RUN_KINDS: list[KindAction] = None
19
+
20
+ def __init__(self) -> None:
21
+ self._validate()
22
+
23
+ def _validate(self) -> None:
24
+ """
25
+ Validate the entity.
26
+ """
27
+ for attr_name in ["EXECUTABLE_KIND", "TASKS_KINDS", "RUN_KINDS"]:
28
+ value = getattr(self, attr_name)
29
+ if value is None:
30
+ raise EntityError(f"{attr_name} must be set")
31
+
32
+ for attr_name in ["TASKS_KINDS", "RUN_KINDS"]:
33
+ self._instance_validation(getattr(self, attr_name))
34
+
35
+ def _instance_validation(self, attribute: list[KindAction]) -> None:
36
+ """
37
+ Validate if the attribute is a list of KindAction.
38
+
39
+ Parameters
40
+ ----------
41
+ attribute : list[KindAction]
42
+ Attribute to validate.
43
+ """
44
+ if not isinstance(attribute, list):
45
+ raise EntityError(f"{attribute} must be a list")
46
+ for i in attribute:
47
+ if not isinstance(i, KindAction):
48
+ raise EntityError(f"{attribute} must be a list of KindAction")
49
+ if i.kind is None:
50
+ raise EntityError(f"{attribute} must be a list of KindAction with kind set")
51
+
52
+ def get_action_from_task_kind(self, task_kind: str) -> str:
53
+ """
54
+ Get action from task kind.
55
+
56
+ Parameters
57
+ ----------
58
+ task_kind : str
59
+ Task kind.
60
+
61
+ Returns
62
+ -------
63
+ str
64
+ Action.
65
+ """
66
+ for task in self.TASKS_KINDS:
67
+ if task.kind == task_kind:
68
+ return task.action
69
+ msg = f"Task kind {task_kind} not allowed."
70
+ raise EntityError(msg)
71
+
72
+ def get_task_kind_from_action(self, action: str) -> list[str]:
73
+ """
74
+ Get task kinds from action.
75
+
76
+ Parameters
77
+ ----------
78
+ action : str
79
+ Action.
80
+
81
+ Returns
82
+ -------
83
+ list[str]
84
+ Task kinds.
85
+ """
86
+ for task in self.TASKS_KINDS:
87
+ if task.action == action:
88
+ return task.kind
89
+ msg = f"Action {action} not allowed."
90
+ raise EntityError(msg)
91
+
92
+ def get_run_kind_from_action(self, action: str) -> str:
93
+ """
94
+ Get run kind from action.
95
+
96
+ Parameters
97
+ ----------
98
+ action : str
99
+ Action.
100
+
101
+ Returns
102
+ -------
103
+ str
104
+ Run kind.
105
+ """
106
+ for run in self.RUN_KINDS:
107
+ if run.action == action:
108
+ return run.kind
109
+ msg = f"Action {action} not allowed."
110
+ raise EntityError(msg)
111
+
112
+ def get_executable_kind(self) -> str:
113
+ """
114
+ Get executable kind.
115
+
116
+ Returns
117
+ -------
118
+ str
119
+ Executable kind.
120
+ """
121
+ return self.EXECUTABLE_KIND
122
+
123
+ def get_all_kinds(self) -> list[str]:
124
+ """
125
+ Get all kinds.
126
+
127
+ Returns
128
+ -------
129
+ list[str]
130
+ All kinds.
131
+ """
132
+ task_kinds = [i.kind for i in self.TASKS_KINDS]
133
+ run_kinds = [i.kind for i in self.RUN_KINDS]
134
+ return [self.EXECUTABLE_KIND, *run_kinds, *task_kinds]
135
+
136
+ def get_all_actions(self) -> list[str]:
137
+ """
138
+ Get all actions.
139
+
140
+ Returns
141
+ -------
142
+ list[str]
143
+ All actions.
144
+ """
145
+ return [i.action for i in self.TASKS_KINDS]
@@ -0,0 +1,202 @@
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 typing import Any, Union
8
+
9
+ from pydantic import BaseModel, ValidationError
10
+
11
+ MetricType = Union[float, int, list[Union[float, int]]]
12
+
13
+
14
+ class Metric(BaseModel):
15
+ """
16
+ Pydantic model for validating metric values.
17
+
18
+ This model ensures that metric values are of the correct type,
19
+ accepting single numeric values or lists of numeric values.
20
+
21
+ Attributes
22
+ ----------
23
+ value : MetricType
24
+ The metric value, which can be a float, int, or list of floats/ints.
25
+ """
26
+
27
+ value: MetricType
28
+
29
+
30
+ def validate_metric_value(value: Any) -> MetricType:
31
+ """
32
+ Validate and convert a value to a proper metric type.
33
+
34
+ Uses Pydantic validation to ensure the input value conforms to
35
+ the MetricType specification (float, int, or list of floats/ints).
36
+
37
+ Parameters
38
+ ----------
39
+ value : Any
40
+ The value to validate and convert.
41
+
42
+ Returns
43
+ -------
44
+ MetricType
45
+ The validated metric value.
46
+
47
+ Raises
48
+ ------
49
+ ValueError
50
+ If the value cannot be converted to a valid metric type.
51
+ """
52
+ try:
53
+ return Metric(value=value).value
54
+ except ValidationError as e:
55
+ raise ValueError("Invalid metric value. Must be a list of floats or ints or a float or an int.") from e
56
+
57
+
58
+ def set_metrics(
59
+ metrics: dict[str, MetricType],
60
+ key: str,
61
+ value: Any,
62
+ overwrite: bool,
63
+ single_value: bool,
64
+ ) -> dict[str, MetricType]:
65
+ """
66
+ Set or update a metric value in the metrics dictionary.
67
+
68
+ This function routes to appropriate handling based on the value type
69
+ and the single_value flag. It can handle single values, lists, and
70
+ appending to existing metrics.
71
+
72
+ Parameters
73
+ ----------
74
+ metrics : dict[str, MetricType]
75
+ The metrics dictionary to update.
76
+ key : str
77
+ The metric key to set or update.
78
+ value : Any
79
+ The value to set for the metric.
80
+ overwrite : bool
81
+ Whether to overwrite existing metrics.
82
+ single_value : bool
83
+ Whether to treat the value as a single metric rather than
84
+ appending to a list.
85
+
86
+ Returns
87
+ -------
88
+ dict[str, MetricType]
89
+ The updated metrics dictionary.
90
+ """
91
+ if isinstance(value, list):
92
+ return handle_metric_list(metrics, key, value, overwrite)
93
+ elif single_value:
94
+ return handle_metric_single(metrics, key, value, overwrite)
95
+ return handle_metric_list_append(metrics, key, value, overwrite)
96
+
97
+
98
+ def handle_metric_single(
99
+ metrics: dict[str, MetricType],
100
+ key: str,
101
+ value: float | int,
102
+ overwrite: bool,
103
+ ) -> dict:
104
+ """
105
+ Handle setting a single metric value.
106
+
107
+ Sets or overwrites a metric with a single numeric value. If the key
108
+ already exists and overwrite is False, the existing value is preserved.
109
+
110
+ Parameters
111
+ ----------
112
+ metrics : dict[str, MetricType]
113
+ The metrics dictionary to update.
114
+ key : str
115
+ The metric key to set.
116
+ value : float | int
117
+ The single numeric value to set.
118
+ overwrite : bool
119
+ Whether to overwrite an existing metric with the same key.
120
+
121
+ Returns
122
+ -------
123
+ dict
124
+ The updated metrics dictionary.
125
+ """
126
+ if key not in metrics or overwrite:
127
+ metrics[key] = value
128
+ return metrics
129
+
130
+
131
+ def handle_metric_list_append(
132
+ metrics: dict[str, MetricType],
133
+ key: str,
134
+ value: float | int,
135
+ overwrite: bool,
136
+ ) -> dict:
137
+ """
138
+ Handle appending a single value to a metric list.
139
+
140
+ If the metric doesn't exist or overwrite is True, creates a new list
141
+ with the single value. If the metric exists as a list, appends to it.
142
+ If the metric exists as a single value, converts it to a list and appends.
143
+
144
+ Parameters
145
+ ----------
146
+ metrics : dict[str, MetricType]
147
+ The metrics dictionary to update.
148
+ key : str
149
+ The metric key to append to.
150
+ value : float | int
151
+ The numeric value to append.
152
+ overwrite : bool
153
+ Whether to overwrite an existing metric instead of appending.
154
+
155
+ Returns
156
+ -------
157
+ dict
158
+ The updated metrics dictionary.
159
+ """
160
+ if key not in metrics or overwrite:
161
+ metrics[key] = [value]
162
+ elif isinstance(metrics[key], list):
163
+ metrics[key].append(value)
164
+ else:
165
+ metrics[key] = [metrics[key], value]
166
+ return metrics
167
+
168
+
169
+ def handle_metric_list(
170
+ metrics: dict[str, MetricType],
171
+ key: str,
172
+ value: list[int | float],
173
+ overwrite: bool,
174
+ ) -> dict:
175
+ """
176
+ Handle setting or extending a metric with a list of values.
177
+
178
+ If the metric doesn't exist or overwrite is True, sets the metric to
179
+ the provided list. If the metric exists and overwrite is False, extends
180
+ the existing list with the new values.
181
+
182
+ Parameters
183
+ ----------
184
+ metrics : dict[str, MetricType]
185
+ The metrics dictionary to update.
186
+ key : str
187
+ The metric key to set or extend.
188
+ value : list[int | float]
189
+ The list of numeric values to set or extend with.
190
+ overwrite : bool
191
+ Whether to overwrite an existing metric instead of extending it.
192
+
193
+ Returns
194
+ -------
195
+ dict
196
+ The updated metrics dictionary.
197
+ """
198
+ if key not in metrics or overwrite:
199
+ metrics[key] = value
200
+ else:
201
+ metrics[key].extend(value)
202
+ return metrics
@@ -0,0 +1,157 @@
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 re
8
+ from collections import namedtuple
9
+
10
+ from digitalhub.entities._commons.enums import EntityTypes
11
+
12
+ KindAction = namedtuple("KindAction", ["kind", "action"])
13
+
14
+
15
+ KEY_PATTERN_WITH_ID = "store://([^/]+)/([^/]+)/([^/]+)/([^:]+):(.+)"
16
+ KEY_PATTERN_NO_ID = "store://([^/]+)/([^/]+)/([^/]+)/([^:]+)"
17
+
18
+
19
+ def is_valid_key(key: str) -> bool:
20
+ """
21
+ Check if an entity key is valid.
22
+
23
+ Parameters
24
+ ----------
25
+ key : str
26
+ The entity key to validate.
27
+
28
+ Returns
29
+ -------
30
+ bool
31
+ True if the key is valid, False otherwise.
32
+ """
33
+ return bool(re.fullmatch(KEY_PATTERN_WITH_ID, key) or re.fullmatch(KEY_PATTERN_NO_ID, key))
34
+
35
+
36
+ def parse_entity_key(key: str) -> tuple[str, str, str, str | None, str]:
37
+ """
38
+ Parse an entity key into its constituent components.
39
+
40
+ Extracts project name, entity type, kind, name, and UUID from a
41
+ standardized entity key format. Handles special cases for tasks
42
+ and runs which don't have name components.
43
+
44
+ Parameters
45
+ ----------
46
+ key : str
47
+ The entity key in format "store://project/type/kind/name:uuid"
48
+ or "store://project/type/kind/uuid" for tasks and runs.
49
+
50
+ Returns
51
+ -------
52
+ tuple[str, str, str, str | None, str]
53
+ A tuple containing (project, entity_type, kind, name, uuid).
54
+ The name component is None for tasks and runs.
55
+
56
+ Raises
57
+ ------
58
+ ValueError
59
+ If the key format is invalid or cannot be parsed.
60
+ """
61
+ if not is_valid_key(key):
62
+ raise ValueError("Invalid entity key format.")
63
+
64
+ # Remove "store://" from the key
65
+ key = key.replace("store://", "")
66
+
67
+ # Split the key into parts
68
+ parts = key.split("/")
69
+
70
+ # The project is the first part
71
+ project = parts[0]
72
+
73
+ # The entity type is the second part
74
+ entity_type = parts[1]
75
+
76
+ # The kind is the third part
77
+ kind = parts[2]
78
+
79
+ # Tasks and runs have no name and uuid
80
+ if entity_type in (EntityTypes.TASK.value, EntityTypes.RUN.value):
81
+ name = None
82
+ uuid = parts[3]
83
+
84
+ # The name and uuid are separated by a colon in the last part
85
+ else:
86
+ name, uuid = parts[3].split(":")
87
+
88
+ return project, entity_type, kind, name, uuid
89
+
90
+
91
+ def get_entity_type_from_key(key: str) -> str:
92
+ """
93
+ Extract the entity type from an entity key.
94
+
95
+ Parses the entity key and returns only the entity type component,
96
+ which indicates the kind of entity (artifact, function, run, etc.).
97
+
98
+ Parameters
99
+ ----------
100
+ key : str
101
+ The entity key in standardized format.
102
+
103
+ Returns
104
+ -------
105
+ str
106
+ The entity type extracted from the key.
107
+
108
+ Raises
109
+ ------
110
+ ValueError
111
+ If the key format is invalid or cannot be parsed.
112
+ """
113
+ _, entity_type, _, _, _ = parse_entity_key(key)
114
+ return entity_type
115
+
116
+
117
+ def get_project_from_key(key: str) -> str:
118
+ """
119
+ Extract the project name from an entity key.
120
+
121
+ Parses the entity key and returns only the project component,
122
+ which identifies the project context the entity belongs to.
123
+
124
+ Parameters
125
+ ----------
126
+ key : str
127
+ The entity key in standardized format.
128
+
129
+ Returns
130
+ -------
131
+ str
132
+ The project name extracted from the key.
133
+
134
+ Raises
135
+ ------
136
+ ValueError
137
+ If the key format is invalid or cannot be parsed.
138
+ """
139
+ project, _, _, _, _ = parse_entity_key(key)
140
+ return project
141
+
142
+
143
+ def map_actions(kind_action_list: list[tuple[str, str]]) -> list[KindAction]:
144
+ """
145
+ Build task actions as KindAction namedtuples.
146
+
147
+ Parameters
148
+ ----------
149
+ kind_action_list : list[tuple[str, str]]
150
+ List of kind-action couples.
151
+
152
+ Returns
153
+ -------
154
+ list[KindAction]
155
+ Returns the task actions as KindAction namedtuples.
156
+ """
157
+ return [KindAction(kind, action) for (kind, action) in kind_action_list]