digitalhub 0.12.0__tar.gz → 0.13.0b1__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 (312) hide show
  1. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/.github/scripts/cliff.toml +0 -1
  2. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/PKG-INFO +1 -1
  3. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/__init__.py +1 -1
  4. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/executable/entity.py +105 -57
  5. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/material/entity.py +8 -15
  6. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/material/utils.py +1 -1
  7. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_processors/context.py +3 -3
  8. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/crud.py +4 -0
  9. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/crud.py +4 -0
  10. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/crud.py +4 -0
  11. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/project/_base/entity.py +0 -2
  12. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/run/_base/entity.py +2 -2
  13. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/_base/entity.py +11 -0
  14. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/dhcore/client.py +57 -20
  15. digitalhub-0.13.0b1/digitalhub/stores/client/dhcore/configurator.py +480 -0
  16. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/dhcore/enums.py +3 -0
  17. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/dhcore/utils.py +8 -8
  18. {digitalhub-0.12.0/digitalhub/stores/configurator → digitalhub-0.13.0b1/digitalhub/stores/credentials}/api.py +3 -3
  19. digitalhub-0.13.0b1/digitalhub/stores/credentials/configurator.py +37 -0
  20. digitalhub-0.13.0b1/digitalhub/stores/credentials/enums.py +54 -0
  21. digitalhub-0.12.0/digitalhub/stores/configurator/configurator.py → digitalhub-0.13.0b1/digitalhub/stores/credentials/handler.py +23 -77
  22. {digitalhub-0.12.0/digitalhub/stores/configurator → digitalhub-0.13.0b1/digitalhub/stores/credentials}/ini_module.py +1 -1
  23. digitalhub-0.13.0b1/digitalhub/stores/credentials/store.py +49 -0
  24. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/_base/store.py +19 -6
  25. digitalhub-0.12.0/digitalhub/stores/data/utils.py → digitalhub-0.13.0b1/digitalhub/stores/data/api.py +33 -2
  26. digitalhub-0.13.0b1/digitalhub/stores/data/builder.py +90 -0
  27. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/local/store.py +4 -7
  28. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/remote/store.py +4 -7
  29. digitalhub-0.13.0b1/digitalhub/stores/data/s3/configurator.py +74 -0
  30. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/s3/store.py +42 -57
  31. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/s3/utils.py +1 -1
  32. digitalhub-0.13.0b1/digitalhub/stores/data/sql/configurator.py +69 -0
  33. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/sql/store.py +15 -15
  34. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/pyproject.toml +2 -2
  35. digitalhub-0.12.0/digitalhub/stores/client/dhcore/configurator.py +0 -383
  36. digitalhub-0.12.0/digitalhub/stores/configurator/credentials_store.py +0 -69
  37. digitalhub-0.12.0/digitalhub/stores/configurator/enums.py +0 -25
  38. digitalhub-0.12.0/digitalhub/stores/data/api.py +0 -33
  39. digitalhub-0.12.0/digitalhub/stores/data/builder.py +0 -97
  40. digitalhub-0.12.0/digitalhub/stores/data/s3/configurator.py +0 -130
  41. digitalhub-0.12.0/digitalhub/stores/data/s3/enums.py +0 -20
  42. digitalhub-0.12.0/digitalhub/stores/data/sql/configurator.py +0 -117
  43. digitalhub-0.12.0/digitalhub/stores/data/sql/enums.py +0 -20
  44. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/.github/scripts/bump.sh +0 -0
  45. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/.github/scripts/changelog.sh +0 -0
  46. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/.github/workflows/release.yml +0 -0
  47. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/.github/workflows/run_local_test.yml +0 -0
  48. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/.github/workflows/test_release.yml +0 -0
  49. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/.gitignore +0 -0
  50. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/AUTHORS +0 -0
  51. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/CONTRIBUTING +0 -0
  52. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/COPYRIGHT +0 -0
  53. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/LICENSE +0 -0
  54. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/README.md +0 -0
  55. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/context/api.py +0 -0
  56. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/context/builder.py +0 -0
  57. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/context/context.py +0 -0
  58. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/__init__.py +0 -0
  59. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/__init__.py +0 -0
  60. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/_base/__init__.py +0 -0
  61. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/_base/entity.py +0 -0
  62. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/context/__init__.py +0 -0
  63. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/context/entity.py +0 -0
  64. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/entity/__init__.py +0 -0
  65. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/entity/_constructors/__init__.py +0 -0
  66. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/entity/_constructors/metadata.py +0 -0
  67. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/entity/_constructors/name.py +0 -0
  68. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/entity/_constructors/spec.py +0 -0
  69. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/entity/_constructors/status.py +0 -0
  70. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/entity/_constructors/uuid.py +0 -0
  71. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/entity/builder.py +0 -0
  72. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/entity/entity.py +0 -0
  73. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/entity/metadata.py +0 -0
  74. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/entity/spec.py +0 -0
  75. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/entity/status.py +0 -0
  76. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/executable/__init__.py +0 -0
  77. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/material/__init__.py +0 -0
  78. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/material/spec.py +0 -0
  79. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/material/status.py +0 -0
  80. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/runtime_entity/__init__.py +0 -0
  81. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/runtime_entity/builder.py +0 -0
  82. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/unversioned/__init__.py +0 -0
  83. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/unversioned/builder.py +0 -0
  84. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/unversioned/entity.py +0 -0
  85. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/versioned/__init__.py +0 -0
  86. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/versioned/builder.py +0 -0
  87. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_base/versioned/entity.py +0 -0
  88. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_commons/__init__.py +0 -0
  89. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_commons/enums.py +0 -0
  90. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_commons/metrics.py +0 -0
  91. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_commons/types.py +0 -0
  92. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_commons/utils.py +0 -0
  93. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_processors/__init__.py +0 -0
  94. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_processors/base.py +0 -0
  95. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/_processors/utils.py +0 -0
  96. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/__init__.py +0 -0
  97. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/_base/__init__.py +0 -0
  98. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/_base/builder.py +0 -0
  99. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/_base/entity.py +0 -0
  100. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/_base/spec.py +0 -0
  101. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/_base/status.py +0 -0
  102. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/artifact/__init__.py +0 -0
  103. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/artifact/builder.py +0 -0
  104. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/artifact/entity.py +0 -0
  105. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/artifact/spec.py +0 -0
  106. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/artifact/status.py +0 -0
  107. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/artifact/utils.py +0 -0
  108. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/builders.py +0 -0
  109. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/__init__.py +0 -0
  110. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/_base/__init__.py +0 -0
  111. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/_base/builder.py +0 -0
  112. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/_base/entity.py +0 -0
  113. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/_base/spec.py +0 -0
  114. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/_base/status.py +0 -0
  115. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/dataitem/__init__.py +0 -0
  116. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/dataitem/builder.py +0 -0
  117. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/dataitem/entity.py +0 -0
  118. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/dataitem/spec.py +0 -0
  119. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/dataitem/status.py +0 -0
  120. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/iceberg/__init__.py +0 -0
  121. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/iceberg/builder.py +0 -0
  122. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/iceberg/entity.py +0 -0
  123. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/iceberg/spec.py +0 -0
  124. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/iceberg/status.py +0 -0
  125. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/table/__init__.py +0 -0
  126. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/table/builder.py +0 -0
  127. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/table/entity.py +0 -0
  128. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/table/models.py +0 -0
  129. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/table/spec.py +0 -0
  130. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/table/status.py +0 -0
  131. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/table/utils.py +0 -0
  132. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/dataitem/utils.py +0 -0
  133. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/function/__init__.py +0 -0
  134. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/function/_base/__init__.py +0 -0
  135. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/function/_base/builder.py +0 -0
  136. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/function/_base/entity.py +0 -0
  137. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/function/_base/spec.py +0 -0
  138. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/function/_base/status.py +0 -0
  139. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/function/crud.py +0 -0
  140. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/__init__.py +0 -0
  141. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/_base/__init__.py +0 -0
  142. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/_base/builder.py +0 -0
  143. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/_base/entity.py +0 -0
  144. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/_base/spec.py +0 -0
  145. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/_base/status.py +0 -0
  146. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/huggingface/__init__.py +0 -0
  147. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/huggingface/builder.py +0 -0
  148. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/huggingface/entity.py +0 -0
  149. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/huggingface/spec.py +0 -0
  150. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/huggingface/status.py +0 -0
  151. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/mlflow/__init__.py +0 -0
  152. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/mlflow/builder.py +0 -0
  153. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/mlflow/entity.py +0 -0
  154. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/mlflow/models.py +0 -0
  155. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/mlflow/spec.py +0 -0
  156. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/mlflow/status.py +0 -0
  157. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/mlflow/utils.py +0 -0
  158. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/model/__init__.py +0 -0
  159. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/model/builder.py +0 -0
  160. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/model/entity.py +0 -0
  161. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/model/spec.py +0 -0
  162. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/model/status.py +0 -0
  163. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/sklearn/__init__.py +0 -0
  164. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/sklearn/builder.py +0 -0
  165. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/sklearn/entity.py +0 -0
  166. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/sklearn/spec.py +0 -0
  167. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/sklearn/status.py +0 -0
  168. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/model/utils.py +0 -0
  169. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/project/__init__.py +0 -0
  170. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/project/_base/__init__.py +0 -0
  171. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/project/_base/builder.py +0 -0
  172. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/project/_base/models.py +0 -0
  173. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/project/_base/spec.py +0 -0
  174. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/project/_base/status.py +0 -0
  175. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/project/crud.py +0 -0
  176. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/project/utils.py +0 -0
  177. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/run/__init__.py +0 -0
  178. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/run/_base/__init__.py +0 -0
  179. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/run/_base/builder.py +0 -0
  180. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/run/_base/spec.py +0 -0
  181. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/run/_base/status.py +0 -0
  182. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/run/crud.py +0 -0
  183. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/secret/__init__.py +0 -0
  184. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/secret/_base/__init__.py +0 -0
  185. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/secret/_base/builder.py +0 -0
  186. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/secret/_base/entity.py +0 -0
  187. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/secret/_base/spec.py +0 -0
  188. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/secret/_base/status.py +0 -0
  189. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/secret/crud.py +0 -0
  190. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/task/__init__.py +0 -0
  191. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/task/_base/__init__.py +0 -0
  192. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/task/_base/builder.py +0 -0
  193. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/task/_base/entity.py +0 -0
  194. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/task/_base/models.py +0 -0
  195. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/task/_base/spec.py +0 -0
  196. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/task/_base/status.py +0 -0
  197. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/task/_base/utils.py +0 -0
  198. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/task/crud.py +0 -0
  199. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/__init__.py +0 -0
  200. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/_base/__init__.py +0 -0
  201. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/_base/builder.py +0 -0
  202. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/_base/spec.py +0 -0
  203. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/_base/status.py +0 -0
  204. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/crud.py +0 -0
  205. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/lifecycle/__init__.py +0 -0
  206. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/lifecycle/builder.py +0 -0
  207. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/lifecycle/entity.py +0 -0
  208. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/lifecycle/spec.py +0 -0
  209. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/lifecycle/status.py +0 -0
  210. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/scheduler/__init__.py +0 -0
  211. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/scheduler/builder.py +0 -0
  212. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/scheduler/entity.py +0 -0
  213. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/scheduler/spec.py +0 -0
  214. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/trigger/scheduler/status.py +0 -0
  215. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/workflow/__init__.py +0 -0
  216. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/workflow/_base/__init__.py +0 -0
  217. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/workflow/_base/builder.py +0 -0
  218. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/workflow/_base/entity.py +0 -0
  219. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/workflow/_base/spec.py +0 -0
  220. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/workflow/_base/status.py +0 -0
  221. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/entities/workflow/crud.py +0 -0
  222. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/factory/__init__.py +0 -0
  223. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/factory/factory.py +0 -0
  224. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/factory/utils.py +0 -0
  225. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/runtimes/__init__.py +0 -0
  226. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/runtimes/_base.py +0 -0
  227. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/runtimes/builder.py +0 -0
  228. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/runtimes/enums.py +0 -0
  229. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/__init__.py +0 -0
  230. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/__init__.py +0 -0
  231. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/_base/__init__.py +0 -0
  232. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/_base/api_builder.py +0 -0
  233. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/_base/client.py +0 -0
  234. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/_base/key_builder.py +0 -0
  235. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/_base/params_builder.py +0 -0
  236. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/api.py +0 -0
  237. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/builder.py +0 -0
  238. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/dhcore/__init__.py +0 -0
  239. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/dhcore/api_builder.py +0 -0
  240. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/dhcore/error_parser.py +0 -0
  241. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/dhcore/key_builder.py +0 -0
  242. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/dhcore/models.py +0 -0
  243. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/dhcore/params_builder.py +0 -0
  244. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/local/__init__.py +0 -0
  245. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/local/api_builder.py +0 -0
  246. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/local/client.py +0 -0
  247. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/local/enums.py +0 -0
  248. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/local/key_builder.py +0 -0
  249. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/client/local/params_builder.py +0 -0
  250. {digitalhub-0.12.0/digitalhub/stores/configurator → digitalhub-0.13.0b1/digitalhub/stores/credentials}/__init__.py +0 -0
  251. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/__init__.py +0 -0
  252. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/_base/__init__.py +0 -0
  253. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/enums.py +0 -0
  254. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/local/__init__.py +0 -0
  255. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/remote/__init__.py +0 -0
  256. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/s3/__init__.py +0 -0
  257. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/data/sql/__init__.py +0 -0
  258. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/readers/__init__.py +0 -0
  259. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/readers/data/__init__.py +0 -0
  260. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/readers/data/_base/__init__.py +0 -0
  261. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/readers/data/_base/builder.py +0 -0
  262. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/readers/data/_base/reader.py +0 -0
  263. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/readers/data/api.py +0 -0
  264. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/readers/data/factory.py +0 -0
  265. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/readers/data/pandas/__init__.py +0 -0
  266. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/readers/data/pandas/builder.py +0 -0
  267. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/readers/data/pandas/reader.py +0 -0
  268. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/stores/readers/query/__init__.py +0 -0
  269. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/utils/__init__.py +0 -0
  270. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/utils/enums.py +0 -0
  271. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/utils/exceptions.py +0 -0
  272. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/utils/file_utils.py +0 -0
  273. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/utils/generic_utils.py +0 -0
  274. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/utils/git_utils.py +0 -0
  275. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/utils/io_utils.py +0 -0
  276. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/utils/logger.py +0 -0
  277. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/utils/types.py +0 -0
  278. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/digitalhub/utils/uri_utils.py +0 -0
  279. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/scripts/README.md +0 -0
  280. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/scripts/local-copy/README.md +0 -0
  281. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/scripts/local-copy/local_copy.sh +0 -0
  282. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/scripts/quick-docker-copy/DBT.dockerfile +0 -0
  283. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/scripts/quick-docker-copy/KFP.dockerfile +0 -0
  284. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/scripts/quick-docker-copy/PY10.dockerfile +0 -0
  285. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/scripts/quick-docker-copy/PY11.dockerfile +0 -0
  286. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/scripts/quick-docker-copy/PY9.dockerfile +0 -0
  287. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/scripts/quick-docker-copy/README.md +0 -0
  288. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/scripts/quick-docker-copy/build_containers.sh +0 -0
  289. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/scripts/spec_exporter/README.md +0 -0
  290. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/scripts/spec_exporter/exporter.sh +0 -0
  291. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/CRUD/test_artifacts.py +0 -0
  292. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/CRUD/test_dataitems.py +0 -0
  293. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/CRUD/test_models.py +0 -0
  294. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/imports/test_imports.py +0 -0
  295. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/entities/artifact/artifact-http.json +0 -0
  296. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/entities/artifact/artifact-local.json +0 -0
  297. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/entities/artifact/artifact-s3.json +0 -0
  298. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/entities/artifact/artifact-sql.json +0 -0
  299. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/entities/dataitem/dataitem-table.json +0 -0
  300. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/entities/dataitem/dataitem.json +0 -0
  301. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/entities/model/model-huggingface.json +0 -0
  302. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/entities/model/model-mlflow.json +0 -0
  303. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/entities/model/model-sklearn.json +0 -0
  304. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/entities/model/model.json +0 -0
  305. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/entities/project.json +0 -0
  306. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/entities/secret.json +0 -0
  307. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/local/instances/test_validate.py +0 -0
  308. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/test_crud_functions.py +0 -0
  309. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/test_crud_runs.py +0 -0
  310. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/test_crud_tasks.py +0 -0
  311. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/testkfp.py +0 -0
  312. {digitalhub-0.12.0 → digitalhub-0.13.0b1}/test/testkfp_pipeline.py +0 -0
@@ -62,7 +62,6 @@ commit_preprocessors = [
62
62
  commit_parsers = [
63
63
  { message = "^feat", group = "<!-- 0 --> Features" },
64
64
  { message = "^fix", group = "<!-- 1 --> Bug Fixes" },
65
- { message = "^refactor", group = "<!-- 2 --> Refactor" },
66
65
  { message = "^perf", group = "<!-- 3 --> Performance" },
67
66
  { message = "^build", group = "<!-- 4 --> Build" },
68
67
  { message = "^doc", group = "<!-- 5 --> Documentation" },
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalhub
3
- Version: 0.12.0
3
+ Version: 0.13.0b1
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>
@@ -104,7 +104,7 @@ except ImportError:
104
104
  # Register entities into registry
105
105
  from digitalhub.factory.utils import register_entities, register_runtimes_entities
106
106
  from digitalhub.stores.client.dhcore.utils import refresh_token, set_dhcore_env
107
- from digitalhub.stores.configurator.api import get_current_env, set_current_env
107
+ from digitalhub.stores.credentials.api import get_current_env, set_current_env
108
108
 
109
109
  register_entities()
110
110
  register_runtimes_entities()
@@ -5,12 +5,14 @@
5
5
  from __future__ import annotations
6
6
 
7
7
  import typing
8
+ from abc import abstractmethod
8
9
 
9
10
  from digitalhub.entities._base.versioned.entity import VersionedEntity
10
11
  from digitalhub.entities._commons.enums import EntityTypes
11
12
  from digitalhub.entities._processors.context import context_processor
12
- from digitalhub.entities.run.crud import delete_run, get_run, list_runs
13
- from digitalhub.entities.task.crud import delete_task
13
+ from digitalhub.entities.run.crud import list_runs
14
+ from digitalhub.entities.task.crud import delete_task, list_tasks
15
+ from digitalhub.entities.trigger.crud import list_triggers
14
16
  from digitalhub.factory.factory import factory
15
17
  from digitalhub.utils.exceptions import EntityAlreadyExistsError, EntityError
16
18
 
@@ -123,13 +125,13 @@ class ExecutableEntity(VersionedEntity):
123
125
  if task_obj.spec.function == self._get_executable_string():
124
126
  self._tasks[task_obj.kind] = task_obj
125
127
 
126
- def new_task(self, task_kind: str, **kwargs) -> Task:
128
+ def new_task(self, kind: str, **kwargs) -> Task:
127
129
  """
128
130
  Create new task. If the task already exists, update it.
129
131
 
130
132
  Parameters
131
133
  ----------
132
- task_kind : str
134
+ kind : str
133
135
  Kind the object.
134
136
  **kwargs : dict
135
137
  Keyword arguments.
@@ -139,21 +141,18 @@ class ExecutableEntity(VersionedEntity):
139
141
  Task
140
142
  New task.
141
143
  """
142
- self._raise_if_exists(task_kind)
143
-
144
- if kwargs is None:
145
- kwargs = {}
144
+ self._raise_if_exists(kind)
146
145
 
147
146
  # Override kwargs
148
147
  kwargs["project"] = self.project
149
148
  kwargs[self.ENTITY_TYPE] = self._get_executable_string()
150
- kwargs["kind"] = task_kind
149
+ kwargs["kind"] = kind
151
150
 
152
151
  # Create object instance
153
152
  task: Task = factory.build_entity_from_params(**kwargs)
154
153
  task.save()
155
154
 
156
- self._tasks[task_kind] = task
155
+ self._tasks[kind] = task
157
156
  return task
158
157
 
159
158
  def get_task(self, kind: str) -> Task:
@@ -184,6 +183,23 @@ class ExecutableEntity(VersionedEntity):
184
183
  self._tasks[kind] = resp[0]
185
184
  return self._tasks[kind]
186
185
 
186
+ def list_task(self, **kwargs) -> list[Task]:
187
+ """
188
+ List tasks.
189
+
190
+ Parameters
191
+ ----------
192
+ **kwargs : dict
193
+ Keyword arguments.
194
+
195
+ Returns
196
+ -------
197
+ list
198
+ List of tasks.
199
+ """
200
+ kwargs["params"] = {self.ENTITY_TYPE: self._get_executable_string()}
201
+ return list_tasks(self.project, **kwargs)
202
+
187
203
  def update_task(self, kind: str, **kwargs) -> Task:
188
204
  """
189
205
  Update task.
@@ -202,9 +218,6 @@ class ExecutableEntity(VersionedEntity):
202
218
  """
203
219
  self._raise_if_not_exists(kind)
204
220
 
205
- if kwargs is None:
206
- kwargs = {}
207
-
208
221
  # Update kwargs
209
222
  kwargs["project"] = self.project
210
223
  kwargs["kind"] = kind
@@ -319,6 +332,12 @@ class ExecutableEntity(VersionedEntity):
319
332
  # Runs
320
333
  ##############################
321
334
 
335
+ @abstractmethod
336
+ def run(self, *args, **kwargs) -> Run:
337
+ """
338
+ Create and execute a new run.
339
+ """
340
+
322
341
  def get_run(
323
342
  self,
324
343
  identifier: str,
@@ -347,13 +366,14 @@ class ExecutableEntity(VersionedEntity):
347
366
  Using entity ID:
348
367
  >>> obj = executable.get_run("123")
349
368
  """
350
- obj = get_run(
351
- identifier=identifier,
352
- project=self.project,
353
- **kwargs,
354
- )
355
- self.refresh()
356
- return obj
369
+ entities = self.list_runs(**kwargs)
370
+ for entity in entities:
371
+ if getattr(entity.spec, self.ENTITY_TYPE) == self._get_executable_string():
372
+ if entity.id == identifier:
373
+ return entity
374
+ if entity.key == identifier:
375
+ return entity
376
+ raise EntityError(f"Run '{identifier}' does not exist or does not belong to this executable.")
357
377
 
358
378
  def list_runs(self, **kwargs) -> list[Run]:
359
379
  """
@@ -373,47 +393,20 @@ class ExecutableEntity(VersionedEntity):
373
393
  --------
374
394
  >>> objs = executable.list_runs()
375
395
  """
376
- if kwargs is None:
377
- kwargs = {}
378
396
  kwargs["params"] = {self.ENTITY_TYPE: self._get_executable_string()}
379
397
  return list_runs(self.project, **kwargs)
380
398
 
381
- def delete_run(
382
- self,
383
- identifier: str,
384
- **kwargs,
385
- ) -> None:
386
- """
387
- Delete run from backend.
388
-
389
- Parameters
390
- ----------
391
- identifier : str
392
- Entity key (store://...) or entity ID.
393
- **kwargs : dict
394
- Parameters to pass to the API call.
395
-
396
- Returns
397
- -------
398
- dict
399
- Response from backend.
400
-
401
- Examples
402
- --------
403
- >>> executable.delete_run("store://my-run-key")
404
-
405
- """
406
- delete_run(
407
- identifier=identifier,
408
- project=self.project,
409
- **kwargs,
410
- )
411
-
412
399
  ##############################
413
400
  # Trigger
414
401
  ##############################
415
402
 
416
- def trigger(self, action: str, trigger_kind: str, trigger_name: str, **kwargs) -> Trigger:
403
+ def trigger(
404
+ self,
405
+ action: str,
406
+ trigger_kind: str,
407
+ trigger_name: str,
408
+ **kwargs,
409
+ ) -> Trigger:
417
410
  """
418
411
  Trigger function.
419
412
 
@@ -439,9 +432,6 @@ class ExecutableEntity(VersionedEntity):
439
432
  # Get run validator for building trigger template
440
433
  run_kind = factory.get_run_kind(self.kind)
441
434
  run_validator: SpecValidator = factory.get_spec_validator(run_kind)
442
- if kwargs is None:
443
- kwargs = {}
444
-
445
435
  # Override kwargs
446
436
  kwargs["project"] = self.project
447
437
  kwargs["kind"] = trigger_kind
@@ -454,3 +444,61 @@ class ExecutableEntity(VersionedEntity):
454
444
  trigger: Trigger = factory.build_entity_from_params(**kwargs)
455
445
  trigger.save()
456
446
  return trigger
447
+
448
+ def get_trigger(
449
+ self,
450
+ identifier: str,
451
+ **kwargs,
452
+ ) -> Trigger:
453
+ """
454
+ Get object from backend.
455
+
456
+ Parameters
457
+ ----------
458
+ identifier : str
459
+ Entity key (store://...) or entity ID.
460
+ **kwargs : dict
461
+ Parameters to pass to the API call.
462
+
463
+ Returns
464
+ -------
465
+ Trigger
466
+ Object instance.
467
+
468
+ Examples
469
+ --------
470
+ Using entity key:
471
+ >>> obj = executable.get_trigger("store://my-trigger-key")
472
+
473
+ Using entity ID:
474
+ >>> obj = executable.get_trigger("123")
475
+ """
476
+ entities = self.list_triggers(**kwargs)
477
+ for entity in entities:
478
+ if getattr(entity.spec, self.ENTITY_TYPE) == self._get_executable_string():
479
+ if entity.id == identifier:
480
+ return entity
481
+ if entity.key == identifier:
482
+ return entity
483
+ raise EntityError(f"Trigger '{identifier}' does not exist or does not belong to this executable.")
484
+
485
+ def list_triggers(self, **kwargs) -> list[Trigger]:
486
+ """
487
+ List all triggers from backend.
488
+
489
+ Parameters
490
+ ----------
491
+ **kwargs : dict
492
+ Parameters to pass to the API call.
493
+
494
+ Returns
495
+ -------
496
+ list[Trigger]
497
+ List of object instances.
498
+
499
+ Examples
500
+ --------
501
+ >>> objs = executable.list_triggers()
502
+ """
503
+ kwargs["params"] = {self.ENTITY_TYPE: self._get_executable_string()}
504
+ return list_triggers(self.project, **kwargs)
@@ -83,9 +83,8 @@ class MaterialEntity(VersionedEntity):
83
83
  List of file paths.
84
84
  """
85
85
  store = get_store(self.project, self.spec.path)
86
- paths = self.get_file_paths()
87
86
  dst = store._build_temp()
88
- return store.download(self.spec.path, dst=dst, src=paths)
87
+ return store.download(self.spec.path, dst=dst)
89
88
 
90
89
  def download(
91
90
  self,
@@ -94,10 +93,7 @@ class MaterialEntity(VersionedEntity):
94
93
  ) -> str:
95
94
  """
96
95
  This function downloads one or more file from storage on local
97
- machine.
98
- It looks inside the object's status for the file(s) path under
99
- files attribute. If it does not find it, it will try to download
100
- what it can from spec.path.
96
+ machine from spec.path.
101
97
  The files are downloaded into a destination folder. If the destination
102
98
  is not specified, it will set by default under the context path
103
99
  as '<ctx-root>/<entity_type>', e.g. './dataitem'.
@@ -115,31 +111,24 @@ class MaterialEntity(VersionedEntity):
115
111
  Returns
116
112
  -------
117
113
  str
118
- Downloaded path.
114
+ Download path.
119
115
 
120
116
  Examples
121
117
  --------
122
118
  Download a single file:
123
119
 
124
- >>> entity.status.files[0]
125
- {
126
- "path ": "data.csv",
127
- "name ": "data.csv",
128
- "content_type ": "text/csv;charset=utf-8 "
129
- }
130
120
  >>> path = entity.download()
131
121
  >>> print(path)
132
122
  dataitem/data.csv
133
123
  """
134
124
  store = get_store(self.project, self.spec.path)
135
- paths = self.get_file_paths()
136
125
 
137
126
  if destination is None:
138
127
  dst = self._context().root / self.ENTITY_TYPE
139
128
  else:
140
129
  dst = Path(destination)
141
130
 
142
- return store.download(self.spec.path, dst=dst, src=paths, overwrite=overwrite)
131
+ return store.download(self.spec.path, dst, overwrite=overwrite)
143
132
 
144
133
  def upload(self, source: SourcesOrListOfSources) -> None:
145
134
  """
@@ -193,6 +182,10 @@ class MaterialEntity(VersionedEntity):
193
182
  -------
194
183
  None
195
184
  """
185
+ available = 100 - len(self.status.files)
186
+ if len(files) > available:
187
+ files = files[:available]
188
+
196
189
  path_list = self.get_file_paths()
197
190
  for f in files:
198
191
  if f.get("path") not in path_list:
@@ -6,7 +6,7 @@ from __future__ import annotations
6
6
 
7
7
  from pathlib import Path
8
8
 
9
- from digitalhub.stores.data.utils import get_default_store
9
+ from digitalhub.stores.data.api import get_default_store
10
10
  from digitalhub.utils.file_utils import eval_zip_type
11
11
  from digitalhub.utils.uri_utils import has_local_scheme
12
12
 
@@ -135,7 +135,7 @@ class ContextEntityOperationsProcessor:
135
135
  msg = None
136
136
  except Exception as e:
137
137
  uploaded = False
138
- msg = str(e)
138
+ msg = str(e.args)
139
139
 
140
140
  new_obj.status.message = msg
141
141
 
@@ -984,7 +984,7 @@ class ContextEntityOperationsProcessor:
984
984
  )
985
985
  return context.client.read_object(api, **kwargs)
986
986
 
987
- def stop_run(
987
+ def stop_entity(
988
988
  self,
989
989
  project: str,
990
990
  entity_type: str,
@@ -1019,7 +1019,7 @@ class ContextEntityOperationsProcessor:
1019
1019
  )
1020
1020
  context.client.create_object(api, **kwargs)
1021
1021
 
1022
- def resume_run(
1022
+ def resume_entity(
1023
1023
  self,
1024
1024
  project: str,
1025
1025
  entity_type: str,
@@ -311,6 +311,7 @@ def delete_artifact(
311
311
  project: str | None = None,
312
312
  entity_id: str | None = None,
313
313
  delete_all_versions: bool = False,
314
+ cascade: bool = True,
314
315
  **kwargs,
315
316
  ) -> dict:
316
317
  """
@@ -326,6 +327,8 @@ def delete_artifact(
326
327
  Entity ID.
327
328
  delete_all_versions : bool
328
329
  Delete all versions of the named entity. If True, use entity name instead of entity key as identifier.
330
+ cascade : bool
331
+ Cascade delete.
329
332
  **kwargs : dict
330
333
  Parameters to pass to the API call.
331
334
 
@@ -350,5 +353,6 @@ def delete_artifact(
350
353
  project=project,
351
354
  entity_id=entity_id,
352
355
  delete_all_versions=delete_all_versions,
356
+ cascade=cascade,
353
357
  **kwargs,
354
358
  )
@@ -329,6 +329,7 @@ def delete_dataitem(
329
329
  project: str | None = None,
330
330
  entity_id: str | None = None,
331
331
  delete_all_versions: bool = False,
332
+ cascade: bool = True,
332
333
  **kwargs,
333
334
  ) -> dict:
334
335
  """
@@ -344,6 +345,8 @@ def delete_dataitem(
344
345
  Entity ID.
345
346
  delete_all_versions : bool
346
347
  Delete all versions of the named entity. If True, use entity name instead of entity key as identifier.
348
+ cascade : bool
349
+ Cascade delete.
347
350
  **kwargs : dict
348
351
  Parameters to pass to the API call.
349
352
 
@@ -368,5 +371,6 @@ def delete_dataitem(
368
371
  project=project,
369
372
  entity_id=entity_id,
370
373
  delete_all_versions=delete_all_versions,
374
+ cascade=cascade,
371
375
  **kwargs,
372
376
  )
@@ -310,6 +310,7 @@ def delete_model(
310
310
  project: str | None = None,
311
311
  entity_id: str | None = None,
312
312
  delete_all_versions: bool = False,
313
+ cascade: bool = True,
313
314
  **kwargs,
314
315
  ) -> dict:
315
316
  """
@@ -325,6 +326,8 @@ def delete_model(
325
326
  Entity ID.
326
327
  delete_all_versions : bool
327
328
  Delete all versions of the named entity. If True, use entity name instead of entity key as identifier.
329
+ cascade : bool
330
+ Cascade delete.
328
331
  **kwargs : dict
329
332
  Parameters to pass to the API call.
330
333
 
@@ -349,5 +352,6 @@ def delete_model(
349
352
  project=project,
350
353
  entity_id=entity_id,
351
354
  delete_all_versions=delete_all_versions,
355
+ cascade=cascade,
352
356
  **kwargs,
353
357
  )
@@ -2092,8 +2092,6 @@ class Project(Entity):
2092
2092
  --------
2093
2093
  >>> objs = project.list_runs()
2094
2094
  """
2095
- if kwargs is None:
2096
- kwargs = {}
2097
2095
  return list_runs(self.name, **kwargs)
2098
2096
 
2099
2097
  def delete_run(
@@ -147,7 +147,7 @@ class Run(UnversionedEntity):
147
147
  None
148
148
  """
149
149
  if not self.spec.local_execution:
150
- return context_processor.stop_run(self.project, self.ENTITY_TYPE, self.id)
150
+ return context_processor.stop_entity(self.project, self.ENTITY_TYPE, self.id)
151
151
 
152
152
  def resume(self) -> None:
153
153
  """
@@ -158,7 +158,7 @@ class Run(UnversionedEntity):
158
158
  None
159
159
  """
160
160
  if not self.spec.local_execution:
161
- return context_processor.resume_run(self.project, self.ENTITY_TYPE, self.id)
161
+ return context_processor.resume_entity(self.project, self.ENTITY_TYPE, self.id)
162
162
 
163
163
  def log_metric(
164
164
  self,
@@ -8,6 +8,7 @@ import typing
8
8
 
9
9
  from digitalhub.entities._base.versioned.entity import VersionedEntity
10
10
  from digitalhub.entities._commons.enums import EntityTypes
11
+ from digitalhub.entities._processors.context import context_processor
11
12
 
12
13
  if typing.TYPE_CHECKING:
13
14
  from digitalhub.entities._base.entity.metadata import Metadata
@@ -36,3 +37,13 @@ class Trigger(VersionedEntity):
36
37
  super().__init__(project, name, uuid, kind, metadata, spec, status, user)
37
38
  self.spec: TriggerSpec
38
39
  self.status: TriggerStatus
40
+
41
+ def stop(self) -> None:
42
+ """
43
+ Stop trigger.
44
+
45
+ Returns
46
+ -------
47
+ None
48
+ """
49
+ return context_processor.stop_entity(self.project, self.ENTITY_TYPE, self.id)
@@ -6,6 +6,7 @@ from __future__ import annotations
6
6
 
7
7
  import typing
8
8
  from typing import Any
9
+ from warnings import warn
9
10
 
10
11
  from requests import request
11
12
  from requests.exceptions import JSONDecodeError
@@ -16,13 +17,19 @@ from digitalhub.stores.client.dhcore.configurator import ClientDHCoreConfigurato
16
17
  from digitalhub.stores.client.dhcore.error_parser import ErrorParser
17
18
  from digitalhub.stores.client.dhcore.key_builder import ClientDHCoreKeyBuilder
18
19
  from digitalhub.stores.client.dhcore.params_builder import ClientDHCoreParametersBuilder
19
- from digitalhub.utils.exceptions import BackendError
20
+ from digitalhub.utils.exceptions import BackendError, ClientError
20
21
  from digitalhub.utils.generic_utils import dump_json
21
22
 
22
23
  if typing.TYPE_CHECKING:
23
24
  from requests import Response
24
25
 
25
26
 
27
+ # API levels that are supported
28
+ MAX_API_LEVEL = 20
29
+ MIN_API_LEVEL = 13
30
+ LIB_VERSION = 13
31
+
32
+
26
33
  class ClientDHCore(Client):
27
34
  """
28
35
  DHCore client.
@@ -56,7 +63,6 @@ class ClientDHCore(Client):
56
63
 
57
64
  # Client Configurator
58
65
  self._configurator = ClientDHCoreConfigurator()
59
- self._configurator.configure(config)
60
66
 
61
67
  ##############################
62
68
  # CRUD methods
@@ -165,9 +171,6 @@ class ClientDHCore(Client):
165
171
  list[dict]
166
172
  Response objects.
167
173
  """
168
- if kwargs is None:
169
- kwargs = {}
170
-
171
174
  if "params" not in kwargs:
172
175
  kwargs["params"] = {}
173
176
 
@@ -224,9 +227,6 @@ class ClientDHCore(Client):
224
227
  list[dict]
225
228
  Response objects.
226
229
  """
227
- if kwargs is None:
228
- kwargs = {}
229
-
230
230
  if "params" not in kwargs:
231
231
  kwargs["params"] = {}
232
232
 
@@ -281,13 +281,28 @@ class ClientDHCore(Client):
281
281
  Response object.
282
282
  """
283
283
  self._configurator.check_config()
284
- if kwargs is None:
285
- kwargs = {}
286
- url = self._configurator.build_url(api)
287
- kwargs = self._configurator.set_request_auth(kwargs)
288
- return self._make_call(call_type, url, **kwargs)
284
+ url = self._build_url(api)
285
+ full_kwargs = self._configurator.get_auth_parameters(kwargs)
286
+ return self._make_call(call_type, url, **full_kwargs)
287
+
288
+ def _build_url(self, api: str) -> str:
289
+ """
290
+ Build the url.
291
+
292
+ Parameters
293
+ ----------
294
+ api : str
295
+ The api to call.
296
+
297
+ Returns
298
+ -------
299
+ str
300
+ The url.
301
+ """
302
+ endpoint = self._configurator.get_endpoint()
303
+ return f"{endpoint}/{api.removeprefix('/')}"
289
304
 
290
- def _make_call(self, call_type: str, url: str, refresh_token: bool = True, **kwargs) -> dict:
305
+ def _make_call(self, call_type: str, url: str, refresh: bool = True, **kwargs) -> dict:
291
306
  """
292
307
  Make a call to the DHCore API.
293
308
 
@@ -297,6 +312,8 @@ class ClientDHCore(Client):
297
312
  The type of call to make.
298
313
  url : str
299
314
  The URL to call.
315
+ refresh : bool
316
+ Whether to refresh the access token.
300
317
  **kwargs : dict
301
318
  Keyword arguments to pass to the request.
302
319
 
@@ -309,17 +326,37 @@ class ClientDHCore(Client):
309
326
  response = request(call_type, url, timeout=60, **kwargs)
310
327
 
311
328
  # Evaluate DHCore API version
312
- self._configurator.check_core_version(response)
329
+ self._check_core_version(response)
313
330
 
314
- # Handle token refresh
315
- if response.status_code in [401] and refresh_token and self._configurator.oauth2_auth():
316
- self._configurator.get_new_access_token()
317
- kwargs = self._configurator.set_request_auth(kwargs)
318
- return self._make_call(call_type, url, refresh_token=False, **kwargs)
331
+ # Handle token refresh (redo call)
332
+ if (response.status_code in [401]) and (refresh) and self._configurator.refreshable_auth_types():
333
+ self._configurator.get_new_access_token(change_origin=True)
334
+ kwargs = self._configurator.get_auth_parameters(kwargs)
335
+ return self._make_call(call_type, url, refresh=False, **kwargs)
319
336
 
320
337
  self._error_parser.parse(response)
321
338
  return self._dictify_response(response)
322
339
 
340
+ def _check_core_version(self, response: Response) -> None:
341
+ """
342
+ Raise an exception if DHCore API version is not supported.
343
+
344
+ Parameters
345
+ ----------
346
+ response : Response
347
+ The response object.
348
+
349
+ Returns
350
+ -------
351
+ None
352
+ """
353
+ if "X-Api-Level" in response.headers:
354
+ core_api_level = int(response.headers["X-Api-Level"])
355
+ if not (MIN_API_LEVEL <= core_api_level <= MAX_API_LEVEL):
356
+ raise ClientError("Backend API level not supported.")
357
+ if LIB_VERSION < core_api_level:
358
+ warn("Backend API level is higher than library version. You should consider updating the library.")
359
+
323
360
  def _dictify_response(self, response: Response) -> dict:
324
361
  """
325
362
  Return dict from response.