dvt-core 1.11.0b5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. dvt_core-1.11.0b5/MANIFEST.in +8 -0
  2. dvt_core-1.11.0b5/PKG-INFO +252 -0
  3. dvt_core-1.11.0b5/README.md +201 -0
  4. dvt_core-1.11.0b5/dvt/__init__.py +7 -0
  5. dvt_core-1.11.0b5/dvt/_pydantic_shim.py +26 -0
  6. dvt_core-1.11.0b5/dvt/adapters/__init__.py +16 -0
  7. dvt_core-1.11.0b5/dvt/adapters/multi_adapter_manager.py +268 -0
  8. dvt_core-1.11.0b5/dvt/adapters/unified.py +257 -0
  9. dvt_core-1.11.0b5/dvt/artifacts/__init__.py +0 -0
  10. dvt_core-1.11.0b5/dvt/artifacts/exceptions/__init__.py +1 -0
  11. dvt_core-1.11.0b5/dvt/artifacts/exceptions/schemas.py +31 -0
  12. dvt_core-1.11.0b5/dvt/artifacts/resources/__init__.py +116 -0
  13. dvt_core-1.11.0b5/dvt/artifacts/resources/base.py +68 -0
  14. dvt_core-1.11.0b5/dvt/artifacts/resources/types.py +93 -0
  15. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/analysis.py +10 -0
  16. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/catalog.py +23 -0
  17. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/components.py +275 -0
  18. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/config.py +300 -0
  19. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/documentation.py +11 -0
  20. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/exposure.py +52 -0
  21. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/function.py +53 -0
  22. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/generic_test.py +32 -0
  23. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/group.py +22 -0
  24. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/hook.py +11 -0
  25. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/macro.py +30 -0
  26. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/metric.py +173 -0
  27. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/model.py +146 -0
  28. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/owner.py +10 -0
  29. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/saved_query.py +112 -0
  30. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/seed.py +42 -0
  31. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/semantic_layer_components.py +72 -0
  32. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/semantic_model.py +315 -0
  33. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/singular_test.py +14 -0
  34. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/snapshot.py +92 -0
  35. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/source_definition.py +97 -0
  36. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/sql_operation.py +10 -0
  37. dvt_core-1.11.0b5/dvt/artifacts/resources/v1/unit_test_definition.py +78 -0
  38. dvt_core-1.11.0b5/dvt/artifacts/schemas/__init__.py +0 -0
  39. dvt_core-1.11.0b5/dvt/artifacts/schemas/base.py +191 -0
  40. dvt_core-1.11.0b5/dvt/artifacts/schemas/batch_results.py +24 -0
  41. dvt_core-1.11.0b5/dvt/artifacts/schemas/catalog/__init__.py +12 -0
  42. dvt_core-1.11.0b5/dvt/artifacts/schemas/catalog/v1/__init__.py +0 -0
  43. dvt_core-1.11.0b5/dvt/artifacts/schemas/catalog/v1/catalog.py +60 -0
  44. dvt_core-1.11.0b5/dvt/artifacts/schemas/freshness/__init__.py +1 -0
  45. dvt_core-1.11.0b5/dvt/artifacts/schemas/freshness/v3/__init__.py +0 -0
  46. dvt_core-1.11.0b5/dvt/artifacts/schemas/freshness/v3/freshness.py +159 -0
  47. dvt_core-1.11.0b5/dvt/artifacts/schemas/manifest/__init__.py +2 -0
  48. dvt_core-1.11.0b5/dvt/artifacts/schemas/manifest/v12/__init__.py +0 -0
  49. dvt_core-1.11.0b5/dvt/artifacts/schemas/manifest/v12/manifest.py +212 -0
  50. dvt_core-1.11.0b5/dvt/artifacts/schemas/results.py +148 -0
  51. dvt_core-1.11.0b5/dvt/artifacts/schemas/run/__init__.py +2 -0
  52. dvt_core-1.11.0b5/dvt/artifacts/schemas/run/v5/__init__.py +0 -0
  53. dvt_core-1.11.0b5/dvt/artifacts/schemas/run/v5/run.py +184 -0
  54. dvt_core-1.11.0b5/dvt/artifacts/schemas/upgrades/__init__.py +4 -0
  55. dvt_core-1.11.0b5/dvt/artifacts/schemas/upgrades/upgrade_manifest.py +174 -0
  56. dvt_core-1.11.0b5/dvt/artifacts/schemas/upgrades/upgrade_manifest_dbt_version.py +2 -0
  57. dvt_core-1.11.0b5/dvt/artifacts/utils/validation.py +153 -0
  58. dvt_core-1.11.0b5/dvt/cli/__init__.py +1 -0
  59. dvt_core-1.11.0b5/dvt/cli/context.py +16 -0
  60. dvt_core-1.11.0b5/dvt/cli/exceptions.py +56 -0
  61. dvt_core-1.11.0b5/dvt/cli/flags.py +559 -0
  62. dvt_core-1.11.0b5/dvt/cli/main.py +1012 -0
  63. dvt_core-1.11.0b5/dvt/cli/option_types.py +121 -0
  64. dvt_core-1.11.0b5/dvt/cli/options.py +79 -0
  65. dvt_core-1.11.0b5/dvt/cli/params.py +803 -0
  66. dvt_core-1.11.0b5/dvt/cli/requires.py +478 -0
  67. dvt_core-1.11.0b5/dvt/cli/resolvers.py +32 -0
  68. dvt_core-1.11.0b5/dvt/cli/types.py +40 -0
  69. dvt_core-1.11.0b5/dvt/clients/__init__.py +0 -0
  70. dvt_core-1.11.0b5/dvt/clients/checked_load.py +82 -0
  71. dvt_core-1.11.0b5/dvt/clients/git.py +164 -0
  72. dvt_core-1.11.0b5/dvt/clients/jinja.py +206 -0
  73. dvt_core-1.11.0b5/dvt/clients/jinja_static.py +245 -0
  74. dvt_core-1.11.0b5/dvt/clients/registry.py +192 -0
  75. dvt_core-1.11.0b5/dvt/clients/yaml_helper.py +68 -0
  76. dvt_core-1.11.0b5/dvt/compilation.py +833 -0
  77. dvt_core-1.11.0b5/dvt/compute/__init__.py +26 -0
  78. dvt_core-1.11.0b5/dvt/compute/base.py +290 -0
  79. dvt_core-1.11.0b5/dvt/compute/data_extractor.py +210 -0
  80. dvt_core-1.11.0b5/dvt/compute/engines/__init__.py +13 -0
  81. dvt_core-1.11.0b5/dvt/compute/engines/duckdb_engine.py +307 -0
  82. dvt_core-1.11.0b5/dvt/compute/engines/spark_engine.py +290 -0
  83. dvt_core-1.11.0b5/dvt/compute/query_analyzer.py +347 -0
  84. dvt_core-1.11.0b5/dvt/compute/router.py +530 -0
  85. dvt_core-1.11.0b5/dvt/config/__init__.py +4 -0
  86. dvt_core-1.11.0b5/dvt/config/catalogs.py +95 -0
  87. dvt_core-1.11.0b5/dvt/config/compute_config.py +406 -0
  88. dvt_core-1.11.0b5/dvt/config/profile.py +411 -0
  89. dvt_core-1.11.0b5/dvt/config/profiles_v2.py +464 -0
  90. dvt_core-1.11.0b5/dvt/config/project.py +893 -0
  91. dvt_core-1.11.0b5/dvt/config/renderer.py +232 -0
  92. dvt_core-1.11.0b5/dvt/config/runtime.py +491 -0
  93. dvt_core-1.11.0b5/dvt/config/selectors.py +209 -0
  94. dvt_core-1.11.0b5/dvt/config/utils.py +78 -0
  95. dvt_core-1.11.0b5/dvt/connectors/.gitignore +6 -0
  96. dvt_core-1.11.0b5/dvt/connectors/README.md +306 -0
  97. dvt_core-1.11.0b5/dvt/connectors/catalog.yml +217 -0
  98. dvt_core-1.11.0b5/dvt/connectors/download_connectors.py +300 -0
  99. dvt_core-1.11.0b5/dvt/constants.py +29 -0
  100. dvt_core-1.11.0b5/dvt/context/__init__.py +0 -0
  101. dvt_core-1.11.0b5/dvt/context/base.py +746 -0
  102. dvt_core-1.11.0b5/dvt/context/configured.py +136 -0
  103. dvt_core-1.11.0b5/dvt/context/context_config.py +350 -0
  104. dvt_core-1.11.0b5/dvt/context/docs.py +82 -0
  105. dvt_core-1.11.0b5/dvt/context/exceptions_jinja.py +179 -0
  106. dvt_core-1.11.0b5/dvt/context/macro_resolver.py +195 -0
  107. dvt_core-1.11.0b5/dvt/context/macros.py +171 -0
  108. dvt_core-1.11.0b5/dvt/context/manifest.py +73 -0
  109. dvt_core-1.11.0b5/dvt/context/providers.py +2198 -0
  110. dvt_core-1.11.0b5/dvt/context/query_header.py +14 -0
  111. dvt_core-1.11.0b5/dvt/context/secret.py +59 -0
  112. dvt_core-1.11.0b5/dvt/context/target.py +74 -0
  113. dvt_core-1.11.0b5/dvt/contracts/__init__.py +0 -0
  114. dvt_core-1.11.0b5/dvt/contracts/files.py +413 -0
  115. dvt_core-1.11.0b5/dvt/contracts/graph/__init__.py +0 -0
  116. dvt_core-1.11.0b5/dvt/contracts/graph/manifest.py +1904 -0
  117. dvt_core-1.11.0b5/dvt/contracts/graph/metrics.py +98 -0
  118. dvt_core-1.11.0b5/dvt/contracts/graph/model_config.py +71 -0
  119. dvt_core-1.11.0b5/dvt/contracts/graph/node_args.py +42 -0
  120. dvt_core-1.11.0b5/dvt/contracts/graph/nodes.py +1806 -0
  121. dvt_core-1.11.0b5/dvt/contracts/graph/semantic_manifest.py +233 -0
  122. dvt_core-1.11.0b5/dvt/contracts/graph/unparsed.py +812 -0
  123. dvt_core-1.11.0b5/dvt/contracts/project.py +417 -0
  124. dvt_core-1.11.0b5/dvt/contracts/results.py +53 -0
  125. dvt_core-1.11.0b5/dvt/contracts/selection.py +23 -0
  126. dvt_core-1.11.0b5/dvt/contracts/sql.py +86 -0
  127. dvt_core-1.11.0b5/dvt/contracts/state.py +69 -0
  128. dvt_core-1.11.0b5/dvt/contracts/util.py +46 -0
  129. dvt_core-1.11.0b5/dvt/deprecations.py +347 -0
  130. dvt_core-1.11.0b5/dvt/deps/__init__.py +0 -0
  131. dvt_core-1.11.0b5/dvt/deps/base.py +153 -0
  132. dvt_core-1.11.0b5/dvt/deps/git.py +196 -0
  133. dvt_core-1.11.0b5/dvt/deps/local.py +80 -0
  134. dvt_core-1.11.0b5/dvt/deps/registry.py +131 -0
  135. dvt_core-1.11.0b5/dvt/deps/resolver.py +149 -0
  136. dvt_core-1.11.0b5/dvt/deps/tarball.py +121 -0
  137. dvt_core-1.11.0b5/dvt/docs/source/_ext/dbt_click.py +118 -0
  138. dvt_core-1.11.0b5/dvt/docs/source/conf.py +32 -0
  139. dvt_core-1.11.0b5/dvt/env_vars.py +64 -0
  140. dvt_core-1.11.0b5/dvt/event_time/event_time.py +40 -0
  141. dvt_core-1.11.0b5/dvt/event_time/sample_window.py +60 -0
  142. dvt_core-1.11.0b5/dvt/events/__init__.py +16 -0
  143. dvt_core-1.11.0b5/dvt/events/base_types.py +37 -0
  144. dvt_core-1.11.0b5/dvt/events/core_types_pb2.py +2 -0
  145. dvt_core-1.11.0b5/dvt/events/logging.py +109 -0
  146. dvt_core-1.11.0b5/dvt/events/types.py +2547 -0
  147. dvt_core-1.11.0b5/dvt/exceptions.py +1487 -0
  148. dvt_core-1.11.0b5/dvt/flags.py +89 -0
  149. dvt_core-1.11.0b5/dvt/graph/__init__.py +11 -0
  150. dvt_core-1.11.0b5/dvt/graph/cli.py +248 -0
  151. dvt_core-1.11.0b5/dvt/graph/graph.py +172 -0
  152. dvt_core-1.11.0b5/dvt/graph/queue.py +213 -0
  153. dvt_core-1.11.0b5/dvt/graph/selector.py +375 -0
  154. dvt_core-1.11.0b5/dvt/graph/selector_methods.py +976 -0
  155. dvt_core-1.11.0b5/dvt/graph/selector_spec.py +223 -0
  156. dvt_core-1.11.0b5/dvt/graph/thread_pool.py +18 -0
  157. dvt_core-1.11.0b5/dvt/hooks.py +21 -0
  158. dvt_core-1.11.0b5/dvt/include/README.md +49 -0
  159. dvt_core-1.11.0b5/dvt/include/__init__.py +3 -0
  160. dvt_core-1.11.0b5/dvt/include/global_project.py +4 -0
  161. dvt_core-1.11.0b5/dvt/include/starter_project/.gitignore +4 -0
  162. dvt_core-1.11.0b5/dvt/include/starter_project/README.md +15 -0
  163. dvt_core-1.11.0b5/dvt/include/starter_project/__init__.py +3 -0
  164. dvt_core-1.11.0b5/dvt/include/starter_project/analyses/.gitkeep +0 -0
  165. dvt_core-1.11.0b5/dvt/include/starter_project/dvt_project.yml +36 -0
  166. dvt_core-1.11.0b5/dvt/include/starter_project/macros/.gitkeep +0 -0
  167. dvt_core-1.11.0b5/dvt/include/starter_project/models/example/my_first_dbt_model.sql +27 -0
  168. dvt_core-1.11.0b5/dvt/include/starter_project/models/example/my_second_dbt_model.sql +6 -0
  169. dvt_core-1.11.0b5/dvt/include/starter_project/models/example/schema.yml +21 -0
  170. dvt_core-1.11.0b5/dvt/include/starter_project/seeds/.gitkeep +0 -0
  171. dvt_core-1.11.0b5/dvt/include/starter_project/snapshots/.gitkeep +0 -0
  172. dvt_core-1.11.0b5/dvt/include/starter_project/tests/.gitkeep +0 -0
  173. dvt_core-1.11.0b5/dvt/internal_deprecations.py +27 -0
  174. dvt_core-1.11.0b5/dvt/jsonschemas/__init__.py +3 -0
  175. dvt_core-1.11.0b5/dvt/jsonschemas/jsonschemas.py +309 -0
  176. dvt_core-1.11.0b5/dvt/jsonschemas/project/0.0.110.json +4717 -0
  177. dvt_core-1.11.0b5/dvt/jsonschemas/project/0.0.85.json +2015 -0
  178. dvt_core-1.11.0b5/dvt/jsonschemas/resources/0.0.110.json +2636 -0
  179. dvt_core-1.11.0b5/dvt/jsonschemas/resources/0.0.85.json +2536 -0
  180. dvt_core-1.11.0b5/dvt/jsonschemas/resources/latest.json +6773 -0
  181. dvt_core-1.11.0b5/dvt/links.py +4 -0
  182. dvt_core-1.11.0b5/dvt/materializations/__init__.py +0 -0
  183. dvt_core-1.11.0b5/dvt/materializations/incremental/__init__.py +0 -0
  184. dvt_core-1.11.0b5/dvt/materializations/incremental/microbatch.py +235 -0
  185. dvt_core-1.11.0b5/dvt/mp_context.py +8 -0
  186. dvt_core-1.11.0b5/dvt/node_types.py +37 -0
  187. dvt_core-1.11.0b5/dvt/parser/__init__.py +23 -0
  188. dvt_core-1.11.0b5/dvt/parser/analysis.py +21 -0
  189. dvt_core-1.11.0b5/dvt/parser/base.py +549 -0
  190. dvt_core-1.11.0b5/dvt/parser/common.py +267 -0
  191. dvt_core-1.11.0b5/dvt/parser/docs.py +52 -0
  192. dvt_core-1.11.0b5/dvt/parser/fixtures.py +51 -0
  193. dvt_core-1.11.0b5/dvt/parser/functions.py +30 -0
  194. dvt_core-1.11.0b5/dvt/parser/generic_test.py +100 -0
  195. dvt_core-1.11.0b5/dvt/parser/generic_test_builders.py +334 -0
  196. dvt_core-1.11.0b5/dvt/parser/hooks.py +119 -0
  197. dvt_core-1.11.0b5/dvt/parser/macros.py +137 -0
  198. dvt_core-1.11.0b5/dvt/parser/manifest.py +2204 -0
  199. dvt_core-1.11.0b5/dvt/parser/models.py +574 -0
  200. dvt_core-1.11.0b5/dvt/parser/partial.py +1179 -0
  201. dvt_core-1.11.0b5/dvt/parser/read_files.py +445 -0
  202. dvt_core-1.11.0b5/dvt/parser/schema_generic_tests.py +423 -0
  203. dvt_core-1.11.0b5/dvt/parser/schema_renderer.py +111 -0
  204. dvt_core-1.11.0b5/dvt/parser/schema_yaml_readers.py +936 -0
  205. dvt_core-1.11.0b5/dvt/parser/schemas.py +1467 -0
  206. dvt_core-1.11.0b5/dvt/parser/search.py +149 -0
  207. dvt_core-1.11.0b5/dvt/parser/seeds.py +28 -0
  208. dvt_core-1.11.0b5/dvt/parser/singular_test.py +20 -0
  209. dvt_core-1.11.0b5/dvt/parser/snapshots.py +44 -0
  210. dvt_core-1.11.0b5/dvt/parser/sources.py +557 -0
  211. dvt_core-1.11.0b5/dvt/parser/sql.py +63 -0
  212. dvt_core-1.11.0b5/dvt/parser/unit_tests.py +622 -0
  213. dvt_core-1.11.0b5/dvt/plugins/__init__.py +20 -0
  214. dvt_core-1.11.0b5/dvt/plugins/contracts.py +10 -0
  215. dvt_core-1.11.0b5/dvt/plugins/exceptions.py +2 -0
  216. dvt_core-1.11.0b5/dvt/plugins/manager.py +164 -0
  217. dvt_core-1.11.0b5/dvt/plugins/manifest.py +21 -0
  218. dvt_core-1.11.0b5/dvt/profiler.py +20 -0
  219. dvt_core-1.11.0b5/dvt/py.typed +1 -0
  220. dvt_core-1.11.0b5/dvt/runners/__init__.py +2 -0
  221. dvt_core-1.11.0b5/dvt/runners/exposure_runner.py +7 -0
  222. dvt_core-1.11.0b5/dvt/runners/no_op_runner.py +46 -0
  223. dvt_core-1.11.0b5/dvt/runners/saved_query_runner.py +7 -0
  224. dvt_core-1.11.0b5/dvt/selected_resources.py +8 -0
  225. dvt_core-1.11.0b5/dvt/task/__init__.py +0 -0
  226. dvt_core-1.11.0b5/dvt/task/base.py +504 -0
  227. dvt_core-1.11.0b5/dvt/task/build.py +197 -0
  228. dvt_core-1.11.0b5/dvt/task/clean.py +57 -0
  229. dvt_core-1.11.0b5/dvt/task/clone.py +162 -0
  230. dvt_core-1.11.0b5/dvt/task/compile.py +151 -0
  231. dvt_core-1.11.0b5/dvt/task/compute.py +512 -0
  232. dvt_core-1.11.0b5/dvt/task/debug.py +650 -0
  233. dvt_core-1.11.0b5/dvt/task/deps.py +280 -0
  234. dvt_core-1.11.0b5/dvt/task/docs/__init__.py +3 -0
  235. dvt_core-1.11.0b5/dvt/task/docs/generate.py +408 -0
  236. dvt_core-1.11.0b5/dvt/task/docs/index.html +250 -0
  237. dvt_core-1.11.0b5/dvt/task/docs/serve.py +28 -0
  238. dvt_core-1.11.0b5/dvt/task/freshness.py +323 -0
  239. dvt_core-1.11.0b5/dvt/task/function.py +122 -0
  240. dvt_core-1.11.0b5/dvt/task/group_lookup.py +46 -0
  241. dvt_core-1.11.0b5/dvt/task/init.py +374 -0
  242. dvt_core-1.11.0b5/dvt/task/list.py +237 -0
  243. dvt_core-1.11.0b5/dvt/task/printer.py +176 -0
  244. dvt_core-1.11.0b5/dvt/task/profile_register.py +430 -0
  245. dvt_core-1.11.0b5/dvt/task/profiles.py +256 -0
  246. dvt_core-1.11.0b5/dvt/task/retry.py +175 -0
  247. dvt_core-1.11.0b5/dvt/task/run.py +1146 -0
  248. dvt_core-1.11.0b5/dvt/task/run_operation.py +142 -0
  249. dvt_core-1.11.0b5/dvt/task/runnable.py +817 -0
  250. dvt_core-1.11.0b5/dvt/task/seed.py +104 -0
  251. dvt_core-1.11.0b5/dvt/task/show.py +150 -0
  252. dvt_core-1.11.0b5/dvt/task/snapshot.py +57 -0
  253. dvt_core-1.11.0b5/dvt/task/sql.py +111 -0
  254. dvt_core-1.11.0b5/dvt/task/test.py +464 -0
  255. dvt_core-1.11.0b5/dvt/tests/fixtures/__init__.py +1 -0
  256. dvt_core-1.11.0b5/dvt/tests/fixtures/project.py +620 -0
  257. dvt_core-1.11.0b5/dvt/tests/util.py +651 -0
  258. dvt_core-1.11.0b5/dvt/tracking.py +529 -0
  259. dvt_core-1.11.0b5/dvt/utils/__init__.py +3 -0
  260. dvt_core-1.11.0b5/dvt/utils/artifact_upload.py +151 -0
  261. dvt_core-1.11.0b5/dvt/utils/utils.py +408 -0
  262. dvt_core-1.11.0b5/dvt/version.py +249 -0
  263. dvt_core-1.11.0b5/dvt_core.egg-info/PKG-INFO +252 -0
  264. dvt_core-1.11.0b5/dvt_core.egg-info/SOURCES.txt +529 -0
  265. dvt_core-1.11.0b5/dvt_core.egg-info/dependency_links.txt +1 -0
  266. dvt_core-1.11.0b5/dvt_core.egg-info/entry_points.txt +3 -0
  267. dvt_core-1.11.0b5/dvt_core.egg-info/not-zip-safe +1 -0
  268. dvt_core-1.11.0b5/dvt_core.egg-info/requires.txt +25 -0
  269. dvt_core-1.11.0b5/dvt_core.egg-info/top_level.txt +1 -0
  270. dvt_core-1.11.0b5/pyproject.toml +120 -0
  271. dvt_core-1.11.0b5/setup.cfg +4 -0
  272. dvt_core-1.11.0b5/setup.py +26 -0
@@ -0,0 +1,8 @@
1
+ # Include DVT package data
2
+ recursive-include dvt/include *.py *.sql *.yml *.html *.md .gitkeep .gitignore
3
+ include dvt/py.typed
4
+ recursive-include dvt/task/docs *.html
5
+ recursive-include dvt/jsonschemas *.json
6
+
7
+ # Exclude all JARs (no longer needed - using dbt adapters)
8
+ global-exclude *.jar
@@ -0,0 +1,252 @@
1
+ Metadata-Version: 2.4
2
+ Name: dvt-core
3
+ Version: 1.11.0b5
4
+ Summary: DVT (Data Virtualization Tool) - An all-in-one ELT solution for data transformation and virtualization, built on dbt-core foundations.
5
+ Author: DVT Core Contributors
6
+ Maintainer: DVT Core Contributors
7
+ License-Expression: Apache-2.0
8
+ Project-URL: Homepage, https://github.com/hex/dvt-core
9
+ Project-URL: Repository, https://github.com/hex/dvt-core.git
10
+ Project-URL: Issues, https://github.com/hex/dvt-core/issues
11
+ Project-URL: Changelog, https://github.com/hex/dvt-core/blob/main/CHANGELOG.md
12
+ Keywords: data,virtualization,ELT,transformation,analytics
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Operating System :: Microsoft :: Windows
15
+ Classifier: Operating System :: MacOS :: MacOS X
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Programming Language :: Python
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Programming Language :: Python :: Implementation :: CPython
23
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
24
+ Requires-Python: >=3.10
25
+ Description-Content-Type: text/markdown
26
+ Requires-Dist: agate<1.10,>=1.7.0
27
+ Requires-Dist: Jinja2<4,>=3.1.3
28
+ Requires-Dist: mashumaro[msgpack]<3.15,>=3.9
29
+ Requires-Dist: click<9.0,>=8.0.2
30
+ Requires-Dist: jsonschema<5.0,>=4.19.1
31
+ Requires-Dist: networkx<4.0,>=2.3
32
+ Requires-Dist: protobuf<7.0,>=6.0
33
+ Requires-Dist: requests<3.0.0
34
+ Requires-Dist: snowplow-tracker<2.0,>=1.0.2
35
+ Requires-Dist: pathspec<0.13,>=0.9
36
+ Requires-Dist: sqlparse<0.6.0,>=0.5.0
37
+ Requires-Dist: dbt-extractor<=0.6,>=0.5.0
38
+ Requires-Dist: dbt-semantic-interfaces<0.10,>=0.9.0
39
+ Requires-Dist: dbt-common<2.0,>=1.27.0
40
+ Requires-Dist: dbt-adapters<2.0,>=1.15.5
41
+ Requires-Dist: dbt-protos<2.0,>=1.0.375
42
+ Requires-Dist: pydantic<3
43
+ Requires-Dist: duckdb<2.0,>=0.9.0
44
+ Requires-Dist: pyspark<4.0,>=3.4.0
45
+ Requires-Dist: pyarrow>=14.0.0
46
+ Requires-Dist: packaging>20.9
47
+ Requires-Dist: pytz>=2015.7
48
+ Requires-Dist: pyyaml>=6.0
49
+ Requires-Dist: daff>=1.3.46
50
+ Requires-Dist: typing-extensions>=4.4
51
+
52
+ # DVT (Data Virtualization Tool)
53
+
54
+ **DVT** is an all-in-one ELT solution that adds comprehensive data virtualization capabilities to dbt-core foundations.
55
+
56
+ ## Quick Start
57
+
58
+ ### Installation
59
+
60
+ ```bash
61
+ # Install DVT with all features (includes PySpark, DuckDB, and 20 JDBC connectors)
62
+ pip install dvt-core
63
+
64
+ # Verify installation
65
+ dvt --version
66
+ ```
67
+
68
+ **What's included:**
69
+ - ✅ Core DVT + all dbt functionality
70
+ - ✅ DuckDB compute engine (~10MB)
71
+ - ✅ PySpark compute engine (~250MB)
72
+ - ✅ 20 JDBC connectors (~200MB) for Spark cross-database queries
73
+ - ✅ Complete documentation and examples
74
+
75
+ **Total install size:** ~450-500MB
76
+
77
+ ### Create Your First Project
78
+
79
+ ```bash
80
+ # Initialize new project
81
+ dvt init my_analytics_project
82
+ cd my_analytics_project
83
+
84
+ # Configure profiles in ~/.dvt/profiles.yml
85
+ # Add multiple database connections
86
+
87
+ # Test connections
88
+ dvt profiles test --all
89
+
90
+ # Run your models
91
+ dvt run
92
+ ```
93
+
94
+ ## What is DVT?
95
+
96
+ DVT enables you to:
97
+
98
+ - **Query across databases**: Join PostgreSQL, MySQL, Snowflake, and 20+ other databases in a single SQL query
99
+ - **Maintain dbt compatibility**: 100% backwards compatible with existing dbt projects
100
+ - **Use intelligent query routing**: Automatic optimization between pushdown and compute layer execution
101
+ - **Manage multiple connections**: Support multiple database profiles in a single project
102
+ - **Choose your compute engine**: Use DuckDB for fast analytics or Spark for distributed processing
103
+
104
+ ## Key Features
105
+
106
+ ### Cross-Database Queries
107
+
108
+ ```sql
109
+ -- Join PostgreSQL customers with MySQL orders
110
+ select
111
+ c.customer_id,
112
+ c.name,
113
+ count(o.order_id) as order_count
114
+ from {{ source('postgres_prod', 'customers') }} c
115
+ left join {{ source('mysql_legacy', 'orders') }} o
116
+ on c.customer_id = o.customer_id
117
+ group by c.customer_id, c.name
118
+ ```
119
+
120
+ DVT automatically detects heterogeneous sources and routes execution to the appropriate compute engine.
121
+
122
+ ### Multi-Profile Support
123
+
124
+ Configure multiple database connections:
125
+
126
+ ```yaml
127
+ # profiles.yml
128
+ postgres_prod:
129
+ adapter: postgres
130
+ host: prod-db.example.com
131
+ # ...
132
+
133
+ mysql_legacy:
134
+ adapter: mysql
135
+ host: legacy-db.example.com
136
+ # ...
137
+ ```
138
+
139
+ Reference profiles in source definitions:
140
+
141
+ ```yaml
142
+ # sources.yml
143
+ sources:
144
+ - name: postgres_prod
145
+ profile: postgres_prod
146
+ tables:
147
+ - name: customers
148
+
149
+ - name: mysql_legacy
150
+ profile: mysql_legacy
151
+ tables:
152
+ - name: orders
153
+ ```
154
+
155
+ ## Included JDBC Connectors
156
+
157
+ DVT bundles 20 JDBC connectors (~200MB) for Spark:
158
+
159
+ **Relational Databases:**
160
+ - PostgreSQL, MySQL, MariaDB, Oracle, SQL Server, DB2
161
+
162
+ **Cloud Data Warehouses:**
163
+ - Snowflake, BigQuery, Redshift, Athena
164
+
165
+ **Analytics & MPP:**
166
+ - ClickHouse, Vertica, Presto, Trino
167
+
168
+ **Other:**
169
+ - H2, SQLite, Derby, Hive, InfluxDB, TimescaleDB
170
+
171
+ **Note:** Phoenix connector (149MB) exceeds PyPI limits and can be downloaded separately:
172
+ ```bash
173
+ dvt connectors download --connector=phoenix
174
+ ```
175
+
176
+ ## DVT Commands
177
+
178
+ ### Standard dbt Commands (100% Compatible)
179
+
180
+ All dbt commands work identically:
181
+
182
+ ```bash
183
+ dvt run # Run models
184
+ dvt test # Run tests
185
+ dvt build # Run + test models
186
+ dvt compile # Compile SQL
187
+ dvt docs generate # Generate documentation
188
+ ```
189
+
190
+ ### DVT Extensions
191
+
192
+ **Profile Management:**
193
+ ```bash
194
+ dvt profiles list # List all configured profiles
195
+ dvt profiles show postgres_prod
196
+ dvt profiles test --all # Test all profile connections
197
+ ```
198
+
199
+ **Compute Layer:**
200
+ ```bash
201
+ dvt compute show # Show compute configuration
202
+ dvt compute engines # List available engines
203
+ dvt compute test --all # Test compute engines
204
+ ```
205
+
206
+ **Enhanced Debug:**
207
+ ```bash
208
+ dvt debug --all-profiles # Test all profiles (not just target)
209
+ ```
210
+
211
+ ## Documentation
212
+
213
+ For complete documentation, see:
214
+
215
+ - **[Sample Project Guide](../docs/sample-project-guide.md)** - Complete walkthrough building a real DVT project
216
+ - **[DVT Architecture](../docs/DVT_ARCHITECTURE.md)** - Detailed architecture overview
217
+ - **[Migration Guide](../docs/migration-guide.md)** - Migrate from dbt to DVT
218
+ - **[CLI Reference](../docs/cli-reference.md)** - Complete command reference
219
+ - **[Connector Catalog](connectors/README.md)** - JDBC connector documentation
220
+
221
+ ## Migration from dbt
222
+
223
+ DVT is 100% backwards compatible with dbt:
224
+
225
+ ```bash
226
+ # Install DVT
227
+ pip install dvt-core
228
+
229
+ # Replace dbt commands with dvt
230
+ dvt run # instead of: dbt run
231
+ ```
232
+
233
+ That's it! Your existing dbt project works as-is.
234
+
235
+ ## Requirements
236
+
237
+ - Python 3.10, 3.11, 3.12, or 3.13
238
+ - Database adapters for your databases (e.g., `dbt-postgres`, `dbt-snowflake`)
239
+
240
+ ## License
241
+
242
+ Apache License 2.0 - Same as dbt-core
243
+
244
+ ## Support
245
+
246
+ - **Repository**: https://github.com/hex/dvt-core
247
+ - **Issues**: https://github.com/hex/dvt-core/issues
248
+ - **Documentation**: See `/docs` directory in repository
249
+
250
+ ## Acknowledgments
251
+
252
+ DVT is built on top of [dbt-core](https://github.com/dbt-labs/dbt-core) and maintains deep compatibility with the dbt ecosystem.
@@ -0,0 +1,201 @@
1
+ # DVT (Data Virtualization Tool)
2
+
3
+ **DVT** is an all-in-one ELT solution that adds comprehensive data virtualization capabilities to dbt-core foundations.
4
+
5
+ ## Quick Start
6
+
7
+ ### Installation
8
+
9
+ ```bash
10
+ # Install DVT with all features (includes PySpark, DuckDB, and 20 JDBC connectors)
11
+ pip install dvt-core
12
+
13
+ # Verify installation
14
+ dvt --version
15
+ ```
16
+
17
+ **What's included:**
18
+ - ✅ Core DVT + all dbt functionality
19
+ - ✅ DuckDB compute engine (~10MB)
20
+ - ✅ PySpark compute engine (~250MB)
21
+ - ✅ 20 JDBC connectors (~200MB) for Spark cross-database queries
22
+ - ✅ Complete documentation and examples
23
+
24
+ **Total install size:** ~450-500MB
25
+
26
+ ### Create Your First Project
27
+
28
+ ```bash
29
+ # Initialize new project
30
+ dvt init my_analytics_project
31
+ cd my_analytics_project
32
+
33
+ # Configure profiles in ~/.dvt/profiles.yml
34
+ # Add multiple database connections
35
+
36
+ # Test connections
37
+ dvt profiles test --all
38
+
39
+ # Run your models
40
+ dvt run
41
+ ```
42
+
43
+ ## What is DVT?
44
+
45
+ DVT enables you to:
46
+
47
+ - **Query across databases**: Join PostgreSQL, MySQL, Snowflake, and 20+ other databases in a single SQL query
48
+ - **Maintain dbt compatibility**: 100% backwards compatible with existing dbt projects
49
+ - **Use intelligent query routing**: Automatic optimization between pushdown and compute layer execution
50
+ - **Manage multiple connections**: Support multiple database profiles in a single project
51
+ - **Choose your compute engine**: Use DuckDB for fast analytics or Spark for distributed processing
52
+
53
+ ## Key Features
54
+
55
+ ### Cross-Database Queries
56
+
57
+ ```sql
58
+ -- Join PostgreSQL customers with MySQL orders
59
+ select
60
+ c.customer_id,
61
+ c.name,
62
+ count(o.order_id) as order_count
63
+ from {{ source('postgres_prod', 'customers') }} c
64
+ left join {{ source('mysql_legacy', 'orders') }} o
65
+ on c.customer_id = o.customer_id
66
+ group by c.customer_id, c.name
67
+ ```
68
+
69
+ DVT automatically detects heterogeneous sources and routes execution to the appropriate compute engine.
70
+
71
+ ### Multi-Profile Support
72
+
73
+ Configure multiple database connections:
74
+
75
+ ```yaml
76
+ # profiles.yml
77
+ postgres_prod:
78
+ adapter: postgres
79
+ host: prod-db.example.com
80
+ # ...
81
+
82
+ mysql_legacy:
83
+ adapter: mysql
84
+ host: legacy-db.example.com
85
+ # ...
86
+ ```
87
+
88
+ Reference profiles in source definitions:
89
+
90
+ ```yaml
91
+ # sources.yml
92
+ sources:
93
+ - name: postgres_prod
94
+ profile: postgres_prod
95
+ tables:
96
+ - name: customers
97
+
98
+ - name: mysql_legacy
99
+ profile: mysql_legacy
100
+ tables:
101
+ - name: orders
102
+ ```
103
+
104
+ ## Included JDBC Connectors
105
+
106
+ DVT bundles 20 JDBC connectors (~200MB) for Spark:
107
+
108
+ **Relational Databases:**
109
+ - PostgreSQL, MySQL, MariaDB, Oracle, SQL Server, DB2
110
+
111
+ **Cloud Data Warehouses:**
112
+ - Snowflake, BigQuery, Redshift, Athena
113
+
114
+ **Analytics & MPP:**
115
+ - ClickHouse, Vertica, Presto, Trino
116
+
117
+ **Other:**
118
+ - H2, SQLite, Derby, Hive, InfluxDB, TimescaleDB
119
+
120
+ **Note:** Phoenix connector (149MB) exceeds PyPI limits and can be downloaded separately:
121
+ ```bash
122
+ dvt connectors download --connector=phoenix
123
+ ```
124
+
125
+ ## DVT Commands
126
+
127
+ ### Standard dbt Commands (100% Compatible)
128
+
129
+ All dbt commands work identically:
130
+
131
+ ```bash
132
+ dvt run # Run models
133
+ dvt test # Run tests
134
+ dvt build # Run + test models
135
+ dvt compile # Compile SQL
136
+ dvt docs generate # Generate documentation
137
+ ```
138
+
139
+ ### DVT Extensions
140
+
141
+ **Profile Management:**
142
+ ```bash
143
+ dvt profiles list # List all configured profiles
144
+ dvt profiles show postgres_prod
145
+ dvt profiles test --all # Test all profile connections
146
+ ```
147
+
148
+ **Compute Layer:**
149
+ ```bash
150
+ dvt compute show # Show compute configuration
151
+ dvt compute engines # List available engines
152
+ dvt compute test --all # Test compute engines
153
+ ```
154
+
155
+ **Enhanced Debug:**
156
+ ```bash
157
+ dvt debug --all-profiles # Test all profiles (not just target)
158
+ ```
159
+
160
+ ## Documentation
161
+
162
+ For complete documentation, see:
163
+
164
+ - **[Sample Project Guide](../docs/sample-project-guide.md)** - Complete walkthrough building a real DVT project
165
+ - **[DVT Architecture](../docs/DVT_ARCHITECTURE.md)** - Detailed architecture overview
166
+ - **[Migration Guide](../docs/migration-guide.md)** - Migrate from dbt to DVT
167
+ - **[CLI Reference](../docs/cli-reference.md)** - Complete command reference
168
+ - **[Connector Catalog](connectors/README.md)** - JDBC connector documentation
169
+
170
+ ## Migration from dbt
171
+
172
+ DVT is 100% backwards compatible with dbt:
173
+
174
+ ```bash
175
+ # Install DVT
176
+ pip install dvt-core
177
+
178
+ # Replace dbt commands with dvt
179
+ dvt run # instead of: dbt run
180
+ ```
181
+
182
+ That's it! Your existing dbt project works as-is.
183
+
184
+ ## Requirements
185
+
186
+ - Python 3.10, 3.11, 3.12, or 3.13
187
+ - Database adapters for your databases (e.g., `dbt-postgres`, `dbt-snowflake`)
188
+
189
+ ## License
190
+
191
+ Apache License 2.0 - Same as dbt-core
192
+
193
+ ## Support
194
+
195
+ - **Repository**: https://github.com/hex/dvt-core
196
+ - **Issues**: https://github.com/hex/dvt-core/issues
197
+ - **Documentation**: See `/docs` directory in repository
198
+
199
+ ## Acknowledgments
200
+
201
+ DVT is built on top of [dbt-core](https://github.com/dbt-labs/dbt-core) and maintains deep compatibility with the dbt ecosystem.
@@ -0,0 +1,7 @@
1
+ # N.B.
2
+ # This will add to the package’s __path__ all subdirectories of directories on sys.path named after the package which effectively combines both modules into a single namespace (dbt.adapters)
3
+ # The matching statement is in plugins/postgres/dbt/__init__.py
4
+
5
+ from pkgutil import extend_path
6
+
7
+ __path__ = extend_path(__path__, __name__)
@@ -0,0 +1,26 @@
1
+ # type: ignore
2
+
3
+ """Shim to allow support for both Pydantic 1 and Pydantic 2.
4
+
5
+ dbt-core must support both major versions of Pydantic because dbt-core users might be using an environment with
6
+ either version, and we can't restrict them to one or the other. Here, we essentially import all Pydantic objects
7
+ from version 1 that we use. Throughout the repo, we import these objects from this file instead of from Pydantic
8
+ directly, meaning that we essentially only use Pydantic 1 in dbt-core currently, but without forcing that restriction
9
+ on dbt users. The development environment for this repo should be pinned to Pydantic 1 to ensure devs get appropriate
10
+ type hints.
11
+ """
12
+
13
+ from importlib.metadata import version
14
+
15
+ pydantic_version = version("pydantic")
16
+ # Pydantic uses semantic versioning, i.e. <major>.<minor>.<patch>, and we need to know the major
17
+ pydantic_major = pydantic_version.split(".")[0]
18
+
19
+ if pydantic_major == "1":
20
+ from pydantic import BaseSettings # noqa: F401
21
+ elif pydantic_major == "2":
22
+ from pydantic.v1 import BaseSettings # noqa: F401
23
+ else:
24
+ raise RuntimeError(
25
+ f"Currently only pydantic 1 and 2 are supported, found pydantic {pydantic_version}"
26
+ )
@@ -0,0 +1,16 @@
1
+ """
2
+ DVT adapter management extensions.
3
+
4
+ This module extends dbt's adapter system to support multi-profile
5
+ source connections and compute layer integration.
6
+ """
7
+
8
+ from dvt.adapters.multi_adapter_manager import (
9
+ MultiAdapterManager,
10
+ create_multi_adapter_manager,
11
+ )
12
+
13
+ __all__ = [
14
+ "MultiAdapterManager",
15
+ "create_multi_adapter_manager",
16
+ ]