digitalhub 0.8.0b7__tar.gz → 0.8.0b11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (247) hide show
  1. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/PKG-INFO +1 -1
  2. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/__init__.py +1 -1
  3. digitalhub-0.8.0b7/digitalhub/client/builder.py → digitalhub-0.8.0b11/digitalhub/client/api.py +15 -57
  4. digitalhub-0.8.0b11/digitalhub/client/builder.py +50 -0
  5. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/client/dhcore/client.py +39 -11
  6. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/client/dhcore/utils.py +1 -1
  7. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/client/local/client.py +1 -1
  8. digitalhub-0.8.0b11/digitalhub/context/api.py +93 -0
  9. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/context/builder.py +0 -84
  10. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/datastores/_base/datastore.py +2 -2
  11. digitalhub-0.8.0b11/digitalhub/datastores/api.py +37 -0
  12. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/datastores/builder.py +7 -31
  13. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/datastores/local/datastore.py +9 -1
  14. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/datastores/remote/datastore.py +8 -0
  15. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/datastores/s3/datastore.py +9 -1
  16. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/datastores/sql/datastore.py +9 -1
  17. digitalhub-0.8.0b7/digitalhub/entities/_base/crud.py → digitalhub-0.8.0b11/digitalhub/entities/_base/api_utils.py +59 -49
  18. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/context/entity.py +2 -2
  19. digitalhub-0.8.0b11/digitalhub/entities/_base/crud.py +406 -0
  20. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/entity/entity.py +1 -1
  21. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/executable/entity.py +7 -6
  22. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/material/entity.py +2 -2
  23. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/runtime_entity/builder.py +11 -0
  24. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/artifact/_base/builder.py +1 -1
  25. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/artifact/crud.py +17 -43
  26. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/_base/builder.py +1 -1
  27. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/crud.py +20 -46
  28. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/table/entity.py +1 -1
  29. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/function/_base/builder.py +1 -1
  30. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/function/crud.py +14 -40
  31. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/_base/builder.py +1 -1
  32. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/crud.py +16 -43
  33. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/project/_base/entity.py +71 -44
  34. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/project/crud.py +8 -8
  35. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/run/_base/builder.py +21 -1
  36. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/run/_base/entity.py +1 -1
  37. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/run/crud.py +17 -30
  38. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/secret/_base/entity.py +1 -1
  39. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/secret/crud.py +16 -28
  40. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/task/_base/builder.py +22 -1
  41. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/task/_base/entity.py +3 -2
  42. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/task/crud.py +17 -30
  43. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/workflow/_base/builder.py +1 -1
  44. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/workflow/crud.py +14 -40
  45. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/factory/api.py +31 -25
  46. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/factory/factory.py +7 -5
  47. digitalhub-0.8.0b11/digitalhub/readers/_base/builder.py +26 -0
  48. digitalhub-0.8.0b11/digitalhub/readers/api.py +80 -0
  49. digitalhub-0.8.0b11/digitalhub/readers/factory.py +133 -0
  50. digitalhub-0.8.0b11/digitalhub/readers/pandas/builder.py +29 -0
  51. digitalhub-0.8.0b7/digitalhub/readers/pandas/readers.py → digitalhub-0.8.0b11/digitalhub/readers/pandas/reader.py +1 -1
  52. digitalhub-0.8.0b11/digitalhub/stores/api.py +54 -0
  53. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/stores/builder.py +0 -46
  54. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/utils/io_utils.py +38 -2
  55. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub.egg-info/PKG-INFO +1 -1
  56. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub.egg-info/SOURCES.txt +11 -13
  57. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/pyproject.toml +2 -2
  58. digitalhub-0.8.0b7/digitalhub/entities/artifact/builder.py +0 -51
  59. digitalhub-0.8.0b7/digitalhub/entities/dataitem/builder.py +0 -51
  60. digitalhub-0.8.0b7/digitalhub/entities/function/builder.py +0 -51
  61. digitalhub-0.8.0b7/digitalhub/entities/model/builder.py +0 -51
  62. digitalhub-0.8.0b7/digitalhub/entities/project/builder.py +0 -51
  63. digitalhub-0.8.0b7/digitalhub/entities/run/builder.py +0 -51
  64. digitalhub-0.8.0b7/digitalhub/entities/secret/builder.py +0 -51
  65. digitalhub-0.8.0b7/digitalhub/entities/task/builder.py +0 -51
  66. digitalhub-0.8.0b7/digitalhub/entities/workflow/builder.py +0 -51
  67. digitalhub-0.8.0b7/digitalhub/readers/builder.py +0 -54
  68. digitalhub-0.8.0b7/digitalhub/readers/registry.py +0 -15
  69. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/LICENSE.txt +0 -0
  70. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/README.md +0 -0
  71. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/client/__init__.py +0 -0
  72. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/client/_base/__init__.py +0 -0
  73. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/client/_base/client.py +0 -0
  74. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/client/dhcore/__init__.py +0 -0
  75. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/client/dhcore/env.py +0 -0
  76. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/client/dhcore/models.py +0 -0
  77. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/client/local/__init__.py +0 -0
  78. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/context/__init__.py +0 -0
  79. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/context/context.py +0 -0
  80. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/datastores/__init__.py +0 -0
  81. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/datastores/_base/__init__.py +0 -0
  82. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/datastores/local/__init__.py +0 -0
  83. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/datastores/remote/__init__.py +0 -0
  84. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/datastores/s3/__init__.py +0 -0
  85. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/datastores/sql/__init__.py +0 -0
  86. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/__init__.py +0 -0
  87. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/__init__.py +0 -0
  88. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/_base/__init__.py +0 -0
  89. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/_base/entity.py +0 -0
  90. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/context/__init__.py +0 -0
  91. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/entity/__init__.py +0 -0
  92. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/entity/_constructors/__init__.py +0 -0
  93. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/entity/_constructors/metadata.py +0 -0
  94. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/entity/_constructors/name.py +0 -0
  95. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/entity/_constructors/spec.py +0 -0
  96. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/entity/_constructors/status.py +0 -0
  97. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/entity/_constructors/uuid.py +0 -0
  98. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/entity/builder.py +0 -0
  99. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/entity/metadata.py +0 -0
  100. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/entity/spec.py +0 -0
  101. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/entity/status.py +0 -0
  102. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/executable/__init__.py +0 -0
  103. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/material/__init__.py +0 -0
  104. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/material/spec.py +0 -0
  105. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/material/status.py +0 -0
  106. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/runtime_entity/__init__.py +0 -0
  107. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/unversioned/__init__.py +0 -0
  108. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/unversioned/builder.py +0 -0
  109. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/unversioned/entity.py +0 -0
  110. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/versioned/__init__.py +0 -0
  111. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/versioned/builder.py +0 -0
  112. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/_base/versioned/entity.py +0 -0
  113. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/artifact/__init__.py +0 -0
  114. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/artifact/_base/__init__.py +0 -0
  115. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/artifact/_base/entity.py +0 -0
  116. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/artifact/_base/spec.py +0 -0
  117. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/artifact/_base/status.py +0 -0
  118. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/artifact/artifact/__init__.py +0 -0
  119. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/artifact/artifact/builder.py +0 -0
  120. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/artifact/artifact/entity.py +0 -0
  121. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/artifact/artifact/spec.py +0 -0
  122. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/artifact/artifact/status.py +0 -0
  123. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/builders.py +0 -0
  124. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/__init__.py +0 -0
  125. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/_base/__init__.py +0 -0
  126. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/_base/entity.py +0 -0
  127. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/_base/spec.py +0 -0
  128. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/_base/status.py +0 -0
  129. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/dataitem/__init__.py +0 -0
  130. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/dataitem/builder.py +0 -0
  131. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/dataitem/entity.py +0 -0
  132. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/dataitem/spec.py +0 -0
  133. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/dataitem/status.py +0 -0
  134. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/iceberg/__init__.py +0 -0
  135. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/iceberg/builder.py +0 -0
  136. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/iceberg/entity.py +0 -0
  137. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/iceberg/spec.py +0 -0
  138. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/iceberg/status.py +0 -0
  139. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/table/__init__.py +0 -0
  140. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/table/builder.py +0 -0
  141. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/table/models.py +0 -0
  142. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/table/spec.py +0 -0
  143. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/dataitem/table/status.py +0 -0
  144. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/function/__init__.py +0 -0
  145. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/function/_base/__init__.py +0 -0
  146. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/function/_base/entity.py +0 -0
  147. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/function/_base/models.py +0 -0
  148. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/function/_base/spec.py +0 -0
  149. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/function/_base/status.py +0 -0
  150. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/__init__.py +0 -0
  151. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/_base/__init__.py +0 -0
  152. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/_base/entity.py +0 -0
  153. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/_base/spec.py +0 -0
  154. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/_base/status.py +0 -0
  155. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/huggingface/__init__.py +0 -0
  156. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/huggingface/builder.py +0 -0
  157. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/huggingface/entity.py +0 -0
  158. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/huggingface/spec.py +0 -0
  159. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/huggingface/status.py +0 -0
  160. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/mlflow/__init__.py +0 -0
  161. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/mlflow/builder.py +0 -0
  162. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/mlflow/entity.py +0 -0
  163. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/mlflow/models.py +0 -0
  164. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/mlflow/spec.py +0 -0
  165. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/mlflow/status.py +0 -0
  166. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/mlflow/utils.py +0 -0
  167. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/model/__init__.py +0 -0
  168. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/model/builder.py +0 -0
  169. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/model/entity.py +0 -0
  170. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/model/spec.py +0 -0
  171. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/model/status.py +0 -0
  172. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/sklearn/__init__.py +0 -0
  173. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/sklearn/builder.py +0 -0
  174. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/sklearn/entity.py +0 -0
  175. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/sklearn/spec.py +0 -0
  176. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/model/sklearn/status.py +0 -0
  177. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/project/__init__.py +0 -0
  178. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/project/_base/__init__.py +0 -0
  179. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/project/_base/builder.py +0 -0
  180. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/project/_base/spec.py +0 -0
  181. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/project/_base/status.py +0 -0
  182. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/run/__init__.py +0 -0
  183. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/run/_base/__init__.py +0 -0
  184. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/run/_base/spec.py +0 -0
  185. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/run/_base/status.py +0 -0
  186. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/secret/__init__.py +0 -0
  187. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/secret/_base/__init__.py +0 -0
  188. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/secret/_base/builder.py +0 -0
  189. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/secret/_base/spec.py +0 -0
  190. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/secret/_base/status.py +0 -0
  191. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/task/__init__.py +0 -0
  192. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/task/_base/__init__.py +0 -0
  193. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/task/_base/models.py +0 -0
  194. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/task/_base/spec.py +0 -0
  195. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/task/_base/status.py +0 -0
  196. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/utils/__init__.py +0 -0
  197. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/utils/api.py +0 -0
  198. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/utils/entity_types.py +0 -0
  199. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/utils/state.py +0 -0
  200. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/utils/utils.py +0 -0
  201. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/workflow/__init__.py +0 -0
  202. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/workflow/_base/__init__.py +0 -0
  203. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/workflow/_base/entity.py +0 -0
  204. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/workflow/_base/spec.py +0 -0
  205. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/entities/workflow/_base/status.py +0 -0
  206. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/factory/__init__.py +0 -0
  207. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/factory/utils.py +0 -0
  208. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/readers/__init__.py +0 -0
  209. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/readers/_base/__init__.py +0 -0
  210. /digitalhub-0.8.0b7/digitalhub/readers/_base/readers.py → /digitalhub-0.8.0b11/digitalhub/readers/_base/reader.py +0 -0
  211. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/readers/pandas/__init__.py +0 -0
  212. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/runtimes/__init__.py +0 -0
  213. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/runtimes/_base.py +0 -0
  214. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/runtimes/builder.py +0 -0
  215. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/stores/__init__.py +0 -0
  216. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/stores/_base/__init__.py +0 -0
  217. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/stores/_base/store.py +0 -0
  218. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/stores/local/__init__.py +0 -0
  219. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/stores/local/store.py +0 -0
  220. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/stores/remote/__init__.py +0 -0
  221. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/stores/remote/store.py +0 -0
  222. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/stores/s3/__init__.py +0 -0
  223. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/stores/s3/store.py +0 -0
  224. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/stores/sql/__init__.py +0 -0
  225. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/stores/sql/store.py +0 -0
  226. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/utils/__init__.py +0 -0
  227. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/utils/data_utils.py +0 -0
  228. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/utils/exceptions.py +0 -0
  229. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/utils/file_utils.py +0 -0
  230. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/utils/generic_utils.py +0 -0
  231. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/utils/git_utils.py +0 -0
  232. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/utils/logger.py +0 -0
  233. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/utils/s3_utils.py +0 -0
  234. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub/utils/uri_utils.py +0 -0
  235. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub.egg-info/dependency_links.txt +0 -0
  236. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub.egg-info/requires.txt +0 -0
  237. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/digitalhub.egg-info/top_level.txt +0 -0
  238. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/setup.cfg +0 -0
  239. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/test/local/CRUD/test_artifacts.py +0 -0
  240. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/test/local/CRUD/test_dataitems.py +0 -0
  241. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/test/local/CRUD/test_models.py +0 -0
  242. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/test/local/imports/test_imports.py +0 -0
  243. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/test/test_crud_functions.py +0 -0
  244. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/test/test_crud_runs.py +0 -0
  245. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/test/test_crud_tasks.py +0 -0
  246. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/test/testkfp.py +0 -0
  247. {digitalhub-0.8.0b7 → digitalhub-0.8.0b11}/test/testkfp_pipeline.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: digitalhub
3
- Version: 0.8.0b7
3
+ Version: 0.8.0b11
4
4
  Summary: Python SDK for Digitalhub
5
5
  Author-email: Fondazione Bruno Kessler <dslab@fbk.eu>, Matteo Martini <mmartini@fbk.eu>
6
6
  License: Apache License
@@ -76,7 +76,7 @@ from digitalhub.client.dhcore.utils import refresh_token, set_dhcore_env
76
76
 
77
77
  # Register entities into registry
78
78
  from digitalhub.factory.utils import register_entities, register_runtimes_entities
79
- from digitalhub.stores.builder import set_store
79
+ from digitalhub.stores.api import set_store
80
80
 
81
81
  register_entities()
82
82
  register_runtimes_entities()
@@ -2,66 +2,29 @@ from __future__ import annotations
2
2
 
3
3
  import typing
4
4
 
5
- from digitalhub.client.dhcore.client import ClientDHCore
6
- from digitalhub.client.local.client import ClientLocal
5
+ from digitalhub.client.builder import client_builder
7
6
 
8
7
  if typing.TYPE_CHECKING:
9
8
  from digitalhub.client._base.client import Client
10
9
 
11
10
 
12
- class ClientBuilder:
13
- """
14
- Client builder class.
15
-
16
- This class is used to create two possible client instances:
17
- Local and DHCore.
18
- It saves the client instances in the class attributes using
19
- singleton pattern.
20
- """
21
-
22
- def __init__(self) -> None:
23
- self._local = None
24
- self._dhcore = None
25
-
26
- def build(self, local: bool = False, config: dict | None = None) -> Client:
27
- """
28
- Method to create a client instance.
29
-
30
- Parameters
31
- ----------
32
- local : bool
33
- Whether to create a local client or not.
34
-
35
- Returns
36
- -------
37
- Client
38
- Returns the client instance.
39
- """
40
- if local:
41
- if self._local is None:
42
- self._local = ClientLocal()
43
- return self._local
44
-
45
- if self._dhcore is None:
46
- self._dhcore = ClientDHCore(config)
47
- return self._dhcore
48
-
49
-
50
- def get_client(local: bool = False) -> Client:
11
+ def check_client_exists(local: bool = False) -> bool:
51
12
  """
52
- Wrapper around ClientBuilder.build.
13
+ Check if client exists.
53
14
 
54
15
  Parameters
55
16
  ----------
56
17
  local : bool
57
- Whether to create a local client or not.
18
+ Check client existence by local.
58
19
 
59
20
  Returns
60
21
  -------
61
- Client
62
- The client instance.
22
+ bool
23
+ True if client exists, False otherwise.
63
24
  """
64
- return client_builder.build(local)
25
+ if local:
26
+ return client_builder._local is not None
27
+ return client_builder._dhcore is not None
65
28
 
66
29
 
67
30
  def build_client(local: bool = False, config: dict | None = None) -> None:
@@ -83,23 +46,18 @@ def build_client(local: bool = False, config: dict | None = None) -> None:
83
46
  client_builder.build(local, config)
84
47
 
85
48
 
86
- def check_client_exists(local: bool = False) -> bool:
49
+ def get_client(local: bool = False) -> Client:
87
50
  """
88
- Check if client exists.
51
+ Wrapper around ClientBuilder.build.
89
52
 
90
53
  Parameters
91
54
  ----------
92
55
  local : bool
93
- Check client existence by local.
56
+ Whether to create a local client or not.
94
57
 
95
58
  Returns
96
59
  -------
97
- bool
98
- True if client exists, False otherwise.
60
+ Client
61
+ The client instance.
99
62
  """
100
- if local:
101
- return client_builder._local is not None
102
- return client_builder._dhcore is not None
103
-
104
-
105
- client_builder = ClientBuilder()
63
+ return client_builder.build(local)
@@ -0,0 +1,50 @@
1
+ from __future__ import annotations
2
+
3
+ import typing
4
+
5
+ from digitalhub.client.dhcore.client import ClientDHCore
6
+ from digitalhub.client.local.client import ClientLocal
7
+
8
+ if typing.TYPE_CHECKING:
9
+ from digitalhub.client._base.client import Client
10
+
11
+
12
+ class ClientBuilder:
13
+ """
14
+ Client builder class.
15
+
16
+ This class is used to create two possible client instances:
17
+ Local and DHCore.
18
+ It saves the client instances in the class attributes using
19
+ singleton pattern.
20
+ """
21
+
22
+ def __init__(self) -> None:
23
+ self._local = None
24
+ self._dhcore = None
25
+
26
+ def build(self, local: bool = False, config: dict | None = None) -> Client:
27
+ """
28
+ Method to create a client instance.
29
+
30
+ Parameters
31
+ ----------
32
+ local : bool
33
+ Whether to create a local client or not.
34
+
35
+ Returns
36
+ -------
37
+ Client
38
+ Returns the client instance.
39
+ """
40
+ if local:
41
+ if self._local is None:
42
+ self._local = ClientLocal()
43
+ return self._local
44
+
45
+ if self._dhcore is None:
46
+ self._dhcore = ClientDHCore(config)
47
+ return self._dhcore
48
+
49
+
50
+ client_builder = ClientBuilder()
@@ -1,5 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import datetime
4
+ import json
3
5
  import os
4
6
  import typing
5
7
  from urllib.parse import urlparse
@@ -83,7 +85,10 @@ class ClientDHCore(Client):
83
85
  dict
84
86
  Response object.
85
87
  """
86
- kwargs["json"] = obj
88
+ if "headers" not in kwargs:
89
+ kwargs["headers"] = {}
90
+ kwargs["headers"]['Content-Type'] = "application/json"
91
+ kwargs["data"] = json.dumps(obj, default=ClientDHCore._json_serialize)
87
92
  return self._prepare_call("POST", api, **kwargs)
88
93
 
89
94
  def read_object(self, api: str, **kwargs) -> dict:
@@ -122,7 +127,10 @@ class ClientDHCore(Client):
122
127
  dict
123
128
  Response object.
124
129
  """
125
- kwargs["json"] = obj
130
+ if "headers" not in kwargs:
131
+ kwargs["headers"] = {}
132
+ kwargs["headers"]['Content-Type'] = "application/json"
133
+ kwargs["data"] = json.dumps(obj, default=ClientDHCore._json_serialize)
126
134
  return self._prepare_call("PUT", api, **kwargs)
127
135
 
128
136
  def delete_object(self, api: str, **kwargs) -> dict:
@@ -165,7 +173,7 @@ class ClientDHCore(Client):
165
173
  if kwargs is None:
166
174
  kwargs = {}
167
175
 
168
- if kwargs.get("params") is None:
176
+ if "params" not in kwargs:
169
177
  kwargs["params"] = {}
170
178
 
171
179
  start_page = 0
@@ -203,12 +211,31 @@ class ClientDHCore(Client):
203
211
  try:
204
212
  return self.list_objects(api, **kwargs)[0]
205
213
  except IndexError:
206
- raise IndexError("No objects found")
214
+ raise BackendError("No object found.")
207
215
 
208
216
  ##############################
209
217
  # Call methods
210
218
  ##############################
211
219
 
220
+ @staticmethod
221
+ def _json_serialize(obj: dict) -> dict:
222
+ """
223
+ JSON datetime to ISO format serializer.
224
+
225
+ Parameters
226
+ ----------
227
+ obj : dict
228
+ The object to serialize.
229
+
230
+ Returns
231
+ -------
232
+ dict
233
+ The serialized object.
234
+ """
235
+ if isinstance(obj, (datetime.datetime, datetime.date)):
236
+ return obj.isoformat()
237
+ raise TypeError ("Type %s not serializable" % type(obj))
238
+
212
239
  def _prepare_call(self, call_type: str, api: str, **kwargs) -> dict:
213
240
  """
214
241
  Prepare a call to the DHCore API.
@@ -230,12 +257,12 @@ class ClientDHCore(Client):
230
257
  if kwargs is None:
231
258
  kwargs = {}
232
259
  url = self._endpoint_core + api
233
- kwargs = self._set_auth_header(kwargs)
260
+ kwargs = self._set_auth(kwargs)
234
261
  return self._make_call(call_type, url, **kwargs)
235
262
 
236
- def _set_auth_header(self, kwargs: dict) -> dict:
263
+ def _set_auth(self, kwargs: dict) -> dict:
237
264
  """
238
- Set the authentication header.
265
+ Set the authentication type.
239
266
 
240
267
  Parameters
241
268
  ----------
@@ -245,13 +272,14 @@ class ClientDHCore(Client):
245
272
  Returns
246
273
  -------
247
274
  dict
248
- Keyword arguments with the authentication header.
275
+ Keyword arguments with the authentication parameters.
249
276
  """
250
277
  if self._auth_type == "basic":
251
278
  kwargs["auth"] = self._user, self._password
252
279
  elif self._auth_type == "oauth2":
253
- kwargs["headers"] = {"Authorization": f"Bearer {self._access_token}"}
254
-
280
+ if "headers" not in kwargs:
281
+ kwargs["headers"] = {}
282
+ kwargs["headers"]["Authorization"] = f"Bearer {self._access_token}"
255
283
  return kwargs
256
284
 
257
285
  def _make_call(self, call_type: str, url: str, refresh_token: bool = True, **kwargs) -> dict:
@@ -281,7 +309,7 @@ class ClientDHCore(Client):
281
309
  # Handle token refresh
282
310
  if response.status_code in [401] and refresh_token:
283
311
  self._get_new_access_token()
284
- kwargs = self._set_auth_header(kwargs)
312
+ kwargs = self._set_auth(kwargs)
285
313
  return self._make_call(call_type, url, refresh_token=False, **kwargs)
286
314
 
287
315
  self._raise_for_error(response)
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import os
4
4
  import typing
5
5
 
6
- from digitalhub.client.builder import check_client_exists, get_client
6
+ from digitalhub.client.api import check_client_exists, get_client
7
7
 
8
8
  if typing.TYPE_CHECKING:
9
9
  from digitalhub.client.dhcore.client import ClientDHCore
@@ -470,7 +470,7 @@ class ClientLocal(Client):
470
470
  copied = deepcopy(entity)
471
471
 
472
472
  # Remove spec if not embedded
473
- if not copied.get("metadata", {}).get("embedded", True):
473
+ if not copied.get("metadata", {}).get("embedded", False):
474
474
  copied.pop("spec", None)
475
475
 
476
476
  # Add to project spec
@@ -0,0 +1,93 @@
1
+ from __future__ import annotations
2
+
3
+ import typing
4
+
5
+ from digitalhub.context.builder import context_builder
6
+
7
+ if typing.TYPE_CHECKING:
8
+ from digitalhub.context.context import Context
9
+ from digitalhub.entities.project._base.entity import Project
10
+
11
+
12
+ def check_context(project: str) -> None:
13
+ """
14
+ Check if the given project is in the context.
15
+
16
+ Parameters
17
+ ----------
18
+ project : str
19
+ Project name.
20
+
21
+ Returns
22
+ -------
23
+ bool
24
+ True if the project is in the context, False otherwise.
25
+ """
26
+ if project not in context_builder._instances:
27
+ msg = f"Context missing. Set context by creating or importing a project named '{project}'."
28
+ raise RuntimeError(msg)
29
+
30
+
31
+ def set_context(project: Project) -> None:
32
+ """
33
+ Wrapper for ContextBuilder.build().
34
+
35
+ Parameters
36
+ ----------
37
+ project : Project
38
+ The project object used to set the current context.
39
+
40
+ Returns
41
+ -------
42
+ None
43
+ """
44
+ context_builder.build(project)
45
+
46
+
47
+ def get_context(project: str) -> Context:
48
+ """
49
+ Wrapper for ContextBuilder.get().
50
+
51
+ Parameters
52
+ ----------
53
+ project : str
54
+ Project name.
55
+
56
+ Returns
57
+ -------
58
+ Context
59
+ The context for the given project name.
60
+ """
61
+ return context_builder.get(project)
62
+
63
+
64
+ def set_context_object(context: Context) -> None:
65
+ """
66
+ Wrapper for ContextBuilder.set().
67
+
68
+ Parameters
69
+ ----------
70
+ context : Context
71
+ The context to set.
72
+
73
+ Returns
74
+ -------
75
+ None
76
+ """
77
+ context_builder.set(context)
78
+
79
+
80
+ def delete_context(project: str) -> None:
81
+ """
82
+ Wrapper for ContextBuilder.remove().
83
+
84
+ Parameters
85
+ ----------
86
+ project : str
87
+ Project name.
88
+
89
+ Returns
90
+ -------
91
+ None
92
+ """
93
+ context_builder.remove(project)
@@ -91,88 +91,4 @@ class ContextBuilder:
91
91
  self._instances[context.name] = context
92
92
 
93
93
 
94
- def set_context(project: Project) -> None:
95
- """
96
- Wrapper for ContextBuilder.build().
97
-
98
- Parameters
99
- ----------
100
- project : Project
101
- The project object used to set the current context.
102
-
103
- Returns
104
- -------
105
- None
106
- """
107
- context_builder.build(project)
108
-
109
-
110
- def set_context_object(context: Context) -> None:
111
- """
112
- Wrapper for ContextBuilder.set().
113
-
114
- Parameters
115
- ----------
116
- context : Context
117
- The context to set.
118
-
119
- Returns
120
- -------
121
- None
122
- """
123
- context_builder.set(context)
124
-
125
-
126
- def get_context(project: str) -> Context:
127
- """
128
- Wrapper for ContextBuilder.get().
129
-
130
- Parameters
131
- ----------
132
- project : str
133
- Project name.
134
-
135
- Returns
136
- -------
137
- Context
138
- The context for the given project name.
139
- """
140
- return context_builder.get(project)
141
-
142
-
143
- def delete_context(project: str) -> None:
144
- """
145
- Wrapper for ContextBuilder.remove().
146
-
147
- Parameters
148
- ----------
149
- project : str
150
- Project name.
151
-
152
- Returns
153
- -------
154
- None
155
- """
156
- context_builder.remove(project)
157
-
158
-
159
- def check_context(project: str) -> None:
160
- """
161
- Check if the given project is in the context.
162
-
163
- Parameters
164
- ----------
165
- project : str
166
- Project name.
167
-
168
- Returns
169
- -------
170
- bool
171
- True if the project is in the context, False otherwise.
172
- """
173
- if project not in context_builder._instances:
174
- msg = f"Context missing. Set context by creating or importing a project named '{project}'."
175
- raise RuntimeError(msg)
176
-
177
-
178
94
  context_builder = ContextBuilder()
@@ -4,7 +4,7 @@ import typing
4
4
  from abc import ABCMeta, abstractmethod
5
5
  from typing import Any
6
6
 
7
- from digitalhub.readers.builder import get_reader_by_engine
7
+ from digitalhub.readers.api import get_reader_by_engine
8
8
 
9
9
  if typing.TYPE_CHECKING:
10
10
  from digitalhub.stores._base.store import Store
@@ -32,7 +32,7 @@ class Datastore(metaclass=ABCMeta):
32
32
  self,
33
33
  path: str | list[str],
34
34
  extension: str,
35
- engine: str | None = "pandas",
35
+ engine: str | None = None,
36
36
  **kwargs,
37
37
  ) -> Any:
38
38
  """
@@ -0,0 +1,37 @@
1
+ from __future__ import annotations
2
+
3
+ import typing
4
+
5
+ from digitalhub.datastores.builder import builder
6
+
7
+ if typing.TYPE_CHECKING:
8
+ from digitalhub.datastores._base.datastore import Datastore
9
+
10
+
11
+ def get_datastore(uri: str) -> Datastore:
12
+ """
13
+ Get a datastore instance by URI.
14
+
15
+ Parameters
16
+ ----------
17
+ uri : str
18
+ URI to parse.
19
+
20
+ Returns
21
+ -------
22
+ Datastore
23
+ The datastore instance.
24
+ """
25
+ return builder.get(uri)
26
+
27
+
28
+ def get_default_datastore() -> Datastore:
29
+ """
30
+ Get the default datastore instance.
31
+
32
+ Returns
33
+ -------
34
+ Datastore
35
+ The default datastore instance.
36
+ """
37
+ return builder.default()
@@ -6,7 +6,7 @@ from digitalhub.datastores.local.datastore import LocalDatastore
6
6
  from digitalhub.datastores.remote.datastore import RemoteDatastore
7
7
  from digitalhub.datastores.s3.datastore import S3Datastore
8
8
  from digitalhub.datastores.sql.datastore import SqlDatastore
9
- from digitalhub.stores.builder import get_default_store, get_store
9
+ from digitalhub.stores.api import get_default_store, get_store
10
10
  from digitalhub.utils.uri_utils import map_uri_scheme
11
11
 
12
12
  if typing.TYPE_CHECKING:
@@ -14,7 +14,12 @@ if typing.TYPE_CHECKING:
14
14
  from digitalhub.stores._base.store import Store
15
15
 
16
16
 
17
- REGISTRY_DATASTORES = {"local": LocalDatastore, "remote": RemoteDatastore, "s3": S3Datastore, "sql": SqlDatastore}
17
+ REGISTRY_DATASTORES = {
18
+ "local": LocalDatastore,
19
+ "remote": RemoteDatastore,
20
+ "s3": S3Datastore,
21
+ "sql": SqlDatastore,
22
+ }
18
23
 
19
24
 
20
25
  class DatastoreBuilder:
@@ -103,32 +108,3 @@ class DatastoreBuilder:
103
108
 
104
109
 
105
110
  builder = DatastoreBuilder()
106
-
107
-
108
- def get_datastore(uri: str) -> Datastore:
109
- """
110
- Get a datastore instance by URI.
111
-
112
- Parameters
113
- ----------
114
- uri : str
115
- URI to parse.
116
-
117
- Returns
118
- -------
119
- Datastore
120
- The datastore instance.
121
- """
122
- return builder.get(uri)
123
-
124
-
125
- def get_default_datastore() -> Datastore:
126
- """
127
- Get the default datastore instance.
128
-
129
- Returns
130
- -------
131
- Datastore
132
- The default datastore instance.
133
- """
134
- return builder.default()
@@ -1,10 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import typing
3
4
  from pathlib import Path
4
5
  from typing import Any
5
6
 
6
7
  from digitalhub.datastores._base.datastore import Datastore
7
- from digitalhub.readers.builder import get_reader_by_object
8
+ from digitalhub.readers.api import get_reader_by_object
9
+
10
+ if typing.TYPE_CHECKING:
11
+ from digitalhub.stores.local.store import LocalStore
8
12
 
9
13
 
10
14
  class LocalDatastore(Datastore):
@@ -12,6 +16,10 @@ class LocalDatastore(Datastore):
12
16
  Local Datastore class.
13
17
  """
14
18
 
19
+ def __init__(self, store: LocalStore, **kwargs) -> None:
20
+ super().__init__(store, **kwargs)
21
+ self.store: LocalStore
22
+
15
23
  def write_df(self, df: Any, dst: str, extension: str | None = None, **kwargs) -> str:
16
24
  """
17
25
  Method to write a dataframe to a file. Kwargs are passed to df.to_parquet().
@@ -1,15 +1,23 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import typing
3
4
  from typing import Any
4
5
 
5
6
  from digitalhub.datastores._base.datastore import Datastore
6
7
 
8
+ if typing.TYPE_CHECKING:
9
+ from digitalhub.stores.remote.store import RemoteStore
10
+
7
11
 
8
12
  class RemoteDatastore(Datastore):
9
13
  """
10
14
  Remote Datastore class.
11
15
  """
12
16
 
17
+ def __init__(self, store: RemoteStore, **kwargs) -> None:
18
+ super().__init__(store, **kwargs)
19
+ self.store: RemoteStore
20
+
13
21
  def write_df(self, df: Any, dst: str, extension: str | None = None, **kwargs) -> str:
14
22
  """
15
23
  Method to write a dataframe to a file. Note that this method is not implemented
@@ -1,10 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import typing
3
4
  from io import BytesIO
4
5
  from typing import Any
5
6
 
6
7
  from digitalhub.datastores._base.datastore import Datastore
7
- from digitalhub.readers.builder import get_reader_by_object
8
+ from digitalhub.readers.api import get_reader_by_object
9
+
10
+ if typing.TYPE_CHECKING:
11
+ from digitalhub.stores.s3.store import S3Store
8
12
 
9
13
 
10
14
  class S3Datastore(Datastore):
@@ -12,6 +16,10 @@ class S3Datastore(Datastore):
12
16
  S3 Datastore class.
13
17
  """
14
18
 
19
+ def __init__(self, store: S3Store, **kwargs) -> None:
20
+ super().__init__(store, **kwargs)
21
+ self.store: S3Store
22
+
15
23
  def write_df(self, df: Any, dst: str, extension: str | None = None, **kwargs) -> str:
16
24
  """
17
25
  Write a dataframe to S3 based storage. Kwargs are passed to df.to_parquet().