dvt-core 0.52.2__cp310-cp310-macosx_10_9_x86_64.whl

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 (275) hide show
  1. dbt/__init__.py +7 -0
  2. dbt/_pydantic_shim.py +26 -0
  3. dbt/artifacts/__init__.py +0 -0
  4. dbt/artifacts/exceptions/__init__.py +1 -0
  5. dbt/artifacts/exceptions/schemas.py +31 -0
  6. dbt/artifacts/resources/__init__.py +116 -0
  7. dbt/artifacts/resources/base.py +67 -0
  8. dbt/artifacts/resources/types.py +93 -0
  9. dbt/artifacts/resources/v1/analysis.py +10 -0
  10. dbt/artifacts/resources/v1/catalog.py +23 -0
  11. dbt/artifacts/resources/v1/components.py +274 -0
  12. dbt/artifacts/resources/v1/config.py +277 -0
  13. dbt/artifacts/resources/v1/documentation.py +11 -0
  14. dbt/artifacts/resources/v1/exposure.py +51 -0
  15. dbt/artifacts/resources/v1/function.py +52 -0
  16. dbt/artifacts/resources/v1/generic_test.py +31 -0
  17. dbt/artifacts/resources/v1/group.py +21 -0
  18. dbt/artifacts/resources/v1/hook.py +11 -0
  19. dbt/artifacts/resources/v1/macro.py +29 -0
  20. dbt/artifacts/resources/v1/metric.py +172 -0
  21. dbt/artifacts/resources/v1/model.py +145 -0
  22. dbt/artifacts/resources/v1/owner.py +10 -0
  23. dbt/artifacts/resources/v1/saved_query.py +111 -0
  24. dbt/artifacts/resources/v1/seed.py +41 -0
  25. dbt/artifacts/resources/v1/semantic_layer_components.py +72 -0
  26. dbt/artifacts/resources/v1/semantic_model.py +314 -0
  27. dbt/artifacts/resources/v1/singular_test.py +14 -0
  28. dbt/artifacts/resources/v1/snapshot.py +91 -0
  29. dbt/artifacts/resources/v1/source_definition.py +84 -0
  30. dbt/artifacts/resources/v1/sql_operation.py +10 -0
  31. dbt/artifacts/resources/v1/unit_test_definition.py +77 -0
  32. dbt/artifacts/schemas/__init__.py +0 -0
  33. dbt/artifacts/schemas/base.py +191 -0
  34. dbt/artifacts/schemas/batch_results.py +24 -0
  35. dbt/artifacts/schemas/catalog/__init__.py +11 -0
  36. dbt/artifacts/schemas/catalog/v1/__init__.py +0 -0
  37. dbt/artifacts/schemas/catalog/v1/catalog.py +59 -0
  38. dbt/artifacts/schemas/freshness/__init__.py +1 -0
  39. dbt/artifacts/schemas/freshness/v3/__init__.py +0 -0
  40. dbt/artifacts/schemas/freshness/v3/freshness.py +158 -0
  41. dbt/artifacts/schemas/manifest/__init__.py +2 -0
  42. dbt/artifacts/schemas/manifest/v12/__init__.py +0 -0
  43. dbt/artifacts/schemas/manifest/v12/manifest.py +211 -0
  44. dbt/artifacts/schemas/results.py +147 -0
  45. dbt/artifacts/schemas/run/__init__.py +2 -0
  46. dbt/artifacts/schemas/run/v5/__init__.py +0 -0
  47. dbt/artifacts/schemas/run/v5/run.py +184 -0
  48. dbt/artifacts/schemas/upgrades/__init__.py +4 -0
  49. dbt/artifacts/schemas/upgrades/upgrade_manifest.py +174 -0
  50. dbt/artifacts/schemas/upgrades/upgrade_manifest_dbt_version.py +2 -0
  51. dbt/artifacts/utils/validation.py +153 -0
  52. dbt/cli/__init__.py +1 -0
  53. dbt/cli/context.py +17 -0
  54. dbt/cli/exceptions.py +57 -0
  55. dbt/cli/flags.py +560 -0
  56. dbt/cli/main.py +2039 -0
  57. dbt/cli/option_types.py +121 -0
  58. dbt/cli/options.py +80 -0
  59. dbt/cli/params.py +804 -0
  60. dbt/cli/requires.py +490 -0
  61. dbt/cli/resolvers.py +50 -0
  62. dbt/cli/types.py +40 -0
  63. dbt/clients/__init__.py +0 -0
  64. dbt/clients/checked_load.py +83 -0
  65. dbt/clients/git.py +164 -0
  66. dbt/clients/jinja.py +206 -0
  67. dbt/clients/jinja_static.py +245 -0
  68. dbt/clients/registry.py +192 -0
  69. dbt/clients/yaml_helper.py +68 -0
  70. dbt/compilation.py +876 -0
  71. dbt/compute/__init__.py +14 -0
  72. dbt/compute/engines/__init__.py +12 -0
  73. dbt/compute/engines/spark_engine.py +624 -0
  74. dbt/compute/federated_executor.py +837 -0
  75. dbt/compute/filter_pushdown.cpython-310-darwin.so +0 -0
  76. dbt/compute/filter_pushdown.py +273 -0
  77. dbt/compute/jar_provisioning.cpython-310-darwin.so +0 -0
  78. dbt/compute/jar_provisioning.py +255 -0
  79. dbt/compute/java_compat.cpython-310-darwin.so +0 -0
  80. dbt/compute/java_compat.py +689 -0
  81. dbt/compute/jdbc_utils.cpython-310-darwin.so +0 -0
  82. dbt/compute/jdbc_utils.py +678 -0
  83. dbt/compute/smart_selector.cpython-310-darwin.so +0 -0
  84. dbt/compute/smart_selector.py +311 -0
  85. dbt/compute/strategies/__init__.py +54 -0
  86. dbt/compute/strategies/base.py +165 -0
  87. dbt/compute/strategies/dataproc.py +207 -0
  88. dbt/compute/strategies/emr.py +203 -0
  89. dbt/compute/strategies/local.py +364 -0
  90. dbt/compute/strategies/standalone.py +262 -0
  91. dbt/config/__init__.py +4 -0
  92. dbt/config/catalogs.py +94 -0
  93. dbt/config/compute.cpython-310-darwin.so +0 -0
  94. dbt/config/compute.py +547 -0
  95. dbt/config/dvt_profile.cpython-310-darwin.so +0 -0
  96. dbt/config/dvt_profile.py +342 -0
  97. dbt/config/profile.py +422 -0
  98. dbt/config/project.py +873 -0
  99. dbt/config/project_utils.py +28 -0
  100. dbt/config/renderer.py +231 -0
  101. dbt/config/runtime.py +553 -0
  102. dbt/config/selectors.py +208 -0
  103. dbt/config/utils.py +77 -0
  104. dbt/constants.py +28 -0
  105. dbt/context/__init__.py +0 -0
  106. dbt/context/base.py +745 -0
  107. dbt/context/configured.py +135 -0
  108. dbt/context/context_config.py +382 -0
  109. dbt/context/docs.py +82 -0
  110. dbt/context/exceptions_jinja.py +178 -0
  111. dbt/context/macro_resolver.py +195 -0
  112. dbt/context/macros.py +171 -0
  113. dbt/context/manifest.py +72 -0
  114. dbt/context/providers.py +2249 -0
  115. dbt/context/query_header.py +13 -0
  116. dbt/context/secret.py +58 -0
  117. dbt/context/target.py +74 -0
  118. dbt/contracts/__init__.py +0 -0
  119. dbt/contracts/files.py +413 -0
  120. dbt/contracts/graph/__init__.py +0 -0
  121. dbt/contracts/graph/manifest.py +1904 -0
  122. dbt/contracts/graph/metrics.py +97 -0
  123. dbt/contracts/graph/model_config.py +70 -0
  124. dbt/contracts/graph/node_args.py +42 -0
  125. dbt/contracts/graph/nodes.py +1806 -0
  126. dbt/contracts/graph/semantic_manifest.py +232 -0
  127. dbt/contracts/graph/unparsed.py +811 -0
  128. dbt/contracts/project.py +417 -0
  129. dbt/contracts/results.py +53 -0
  130. dbt/contracts/selection.py +23 -0
  131. dbt/contracts/sql.py +85 -0
  132. dbt/contracts/state.py +68 -0
  133. dbt/contracts/util.py +46 -0
  134. dbt/deprecations.py +346 -0
  135. dbt/deps/__init__.py +0 -0
  136. dbt/deps/base.py +152 -0
  137. dbt/deps/git.py +195 -0
  138. dbt/deps/local.py +79 -0
  139. dbt/deps/registry.py +130 -0
  140. dbt/deps/resolver.py +149 -0
  141. dbt/deps/tarball.py +120 -0
  142. dbt/docs/source/_ext/dbt_click.py +119 -0
  143. dbt/docs/source/conf.py +32 -0
  144. dbt/env_vars.py +64 -0
  145. dbt/event_time/event_time.py +40 -0
  146. dbt/event_time/sample_window.py +60 -0
  147. dbt/events/__init__.py +15 -0
  148. dbt/events/base_types.py +36 -0
  149. dbt/events/core_types_pb2.py +2 -0
  150. dbt/events/logging.py +108 -0
  151. dbt/events/types.py +2516 -0
  152. dbt/exceptions.py +1486 -0
  153. dbt/flags.py +89 -0
  154. dbt/graph/__init__.py +11 -0
  155. dbt/graph/cli.py +247 -0
  156. dbt/graph/graph.py +172 -0
  157. dbt/graph/queue.py +214 -0
  158. dbt/graph/selector.py +374 -0
  159. dbt/graph/selector_methods.py +975 -0
  160. dbt/graph/selector_spec.py +222 -0
  161. dbt/graph/thread_pool.py +18 -0
  162. dbt/hooks.py +21 -0
  163. dbt/include/README.md +49 -0
  164. dbt/include/__init__.py +3 -0
  165. dbt/include/starter_project/.gitignore +4 -0
  166. dbt/include/starter_project/README.md +15 -0
  167. dbt/include/starter_project/__init__.py +3 -0
  168. dbt/include/starter_project/analyses/.gitkeep +0 -0
  169. dbt/include/starter_project/dbt_project.yml +36 -0
  170. dbt/include/starter_project/macros/.gitkeep +0 -0
  171. dbt/include/starter_project/models/example/my_first_dbt_model.sql +27 -0
  172. dbt/include/starter_project/models/example/my_second_dbt_model.sql +6 -0
  173. dbt/include/starter_project/models/example/schema.yml +21 -0
  174. dbt/include/starter_project/seeds/.gitkeep +0 -0
  175. dbt/include/starter_project/snapshots/.gitkeep +0 -0
  176. dbt/include/starter_project/tests/.gitkeep +0 -0
  177. dbt/internal_deprecations.py +26 -0
  178. dbt/jsonschemas/__init__.py +3 -0
  179. dbt/jsonschemas/jsonschemas.py +309 -0
  180. dbt/jsonschemas/project/0.0.110.json +4717 -0
  181. dbt/jsonschemas/project/0.0.85.json +2015 -0
  182. dbt/jsonschemas/resources/0.0.110.json +2636 -0
  183. dbt/jsonschemas/resources/0.0.85.json +2536 -0
  184. dbt/jsonschemas/resources/latest.json +6773 -0
  185. dbt/links.py +4 -0
  186. dbt/materializations/__init__.py +0 -0
  187. dbt/materializations/incremental/__init__.py +0 -0
  188. dbt/materializations/incremental/microbatch.py +236 -0
  189. dbt/mp_context.py +8 -0
  190. dbt/node_types.py +37 -0
  191. dbt/parser/__init__.py +23 -0
  192. dbt/parser/analysis.py +21 -0
  193. dbt/parser/base.py +548 -0
  194. dbt/parser/common.py +266 -0
  195. dbt/parser/docs.py +52 -0
  196. dbt/parser/fixtures.py +51 -0
  197. dbt/parser/functions.py +30 -0
  198. dbt/parser/generic_test.py +100 -0
  199. dbt/parser/generic_test_builders.py +333 -0
  200. dbt/parser/hooks.py +118 -0
  201. dbt/parser/macros.py +137 -0
  202. dbt/parser/manifest.py +2204 -0
  203. dbt/parser/models.py +573 -0
  204. dbt/parser/partial.py +1178 -0
  205. dbt/parser/read_files.py +445 -0
  206. dbt/parser/schema_generic_tests.py +422 -0
  207. dbt/parser/schema_renderer.py +111 -0
  208. dbt/parser/schema_yaml_readers.py +935 -0
  209. dbt/parser/schemas.py +1466 -0
  210. dbt/parser/search.py +149 -0
  211. dbt/parser/seeds.py +28 -0
  212. dbt/parser/singular_test.py +20 -0
  213. dbt/parser/snapshots.py +44 -0
  214. dbt/parser/sources.py +558 -0
  215. dbt/parser/sql.py +62 -0
  216. dbt/parser/unit_tests.py +621 -0
  217. dbt/plugins/__init__.py +20 -0
  218. dbt/plugins/contracts.py +9 -0
  219. dbt/plugins/exceptions.py +2 -0
  220. dbt/plugins/manager.py +163 -0
  221. dbt/plugins/manifest.py +21 -0
  222. dbt/profiler.py +20 -0
  223. dbt/py.typed +1 -0
  224. dbt/query_analyzer.cpython-310-darwin.so +0 -0
  225. dbt/query_analyzer.py +410 -0
  226. dbt/runners/__init__.py +2 -0
  227. dbt/runners/exposure_runner.py +7 -0
  228. dbt/runners/no_op_runner.py +45 -0
  229. dbt/runners/saved_query_runner.py +7 -0
  230. dbt/selected_resources.py +8 -0
  231. dbt/task/__init__.py +0 -0
  232. dbt/task/base.py +503 -0
  233. dbt/task/build.py +197 -0
  234. dbt/task/clean.py +56 -0
  235. dbt/task/clone.py +161 -0
  236. dbt/task/compile.py +150 -0
  237. dbt/task/compute.py +454 -0
  238. dbt/task/debug.py +505 -0
  239. dbt/task/deps.py +280 -0
  240. dbt/task/docs/__init__.py +3 -0
  241. dbt/task/docs/generate.py +660 -0
  242. dbt/task/docs/index.html +250 -0
  243. dbt/task/docs/serve.py +29 -0
  244. dbt/task/freshness.py +322 -0
  245. dbt/task/function.py +121 -0
  246. dbt/task/group_lookup.py +46 -0
  247. dbt/task/init.py +553 -0
  248. dbt/task/java.py +316 -0
  249. dbt/task/list.py +236 -0
  250. dbt/task/printer.py +175 -0
  251. dbt/task/retry.py +175 -0
  252. dbt/task/run.py +1306 -0
  253. dbt/task/run_operation.py +141 -0
  254. dbt/task/runnable.py +758 -0
  255. dbt/task/seed.py +103 -0
  256. dbt/task/show.py +149 -0
  257. dbt/task/snapshot.py +56 -0
  258. dbt/task/spark.py +414 -0
  259. dbt/task/sql.py +110 -0
  260. dbt/task/target_sync.py +759 -0
  261. dbt/task/test.py +464 -0
  262. dbt/tests/fixtures/__init__.py +1 -0
  263. dbt/tests/fixtures/project.py +620 -0
  264. dbt/tests/util.py +651 -0
  265. dbt/tracking.py +529 -0
  266. dbt/utils/__init__.py +3 -0
  267. dbt/utils/artifact_upload.py +151 -0
  268. dbt/utils/utils.py +408 -0
  269. dbt/version.py +268 -0
  270. dvt_cli/__init__.py +72 -0
  271. dvt_core-0.52.2.dist-info/METADATA +286 -0
  272. dvt_core-0.52.2.dist-info/RECORD +275 -0
  273. dvt_core-0.52.2.dist-info/WHEEL +5 -0
  274. dvt_core-0.52.2.dist-info/entry_points.txt +2 -0
  275. dvt_core-0.52.2.dist-info/top_level.txt +2 -0
dvt_cli/__init__.py ADDED
@@ -0,0 +1,72 @@
1
+ """
2
+ DVT CLI Entry Point Package
3
+
4
+ This standalone package provides the entry point for the DVT command-line
5
+ interface. It's separate from the 'dbt' namespace to avoid conflicts with
6
+ dbt-core during the initial import.
7
+
8
+ Why this package exists:
9
+ -----------------------
10
+ DVT extends dbt-core with additional commands (compute, target, migrate).
11
+ However, dbt adapters (like dbt-postgres) depend on dbt-core, so both
12
+ dvt-core and dbt-core end up installed together. Both packages provide
13
+ the 'dbt' namespace, which causes import conflicts.
14
+
15
+ By using a separate 'dvt_cli' package for the entry point, we can
16
+ manipulate sys.path BEFORE any 'dbt' modules are imported, ensuring
17
+ DVT's extended dbt package takes precedence.
18
+ """
19
+
20
+ import sys
21
+ from pathlib import Path
22
+
23
+
24
+ def _ensure_dvt_precedence():
25
+ """
26
+ Ensure DVT's dbt package takes precedence over dbt-core's version.
27
+
28
+ When both dvt-core and dbt-core are installed (dbt-core comes as a
29
+ dependency of dbt adapters like dbt-postgres), Python's namespace
30
+ package mechanism may load dbt-core's modules instead of DVT's.
31
+
32
+ This function manipulates sys.path to ensure DVT's path comes first,
33
+ guaranteeing that DVT's extended CLI (with compute, target, migrate
34
+ commands) is used instead of vanilla dbt-core.
35
+ """
36
+ # Find where dvt-core's dbt package is located
37
+ # This file is at: <dvt-core>/dvt_cli/__init__.py
38
+ # So the package root (containing 'dbt/') is: <dvt-core>/
39
+ this_file = Path(__file__).resolve()
40
+ dvt_package_root = this_file.parent.parent
41
+
42
+ dvt_path = str(dvt_package_root)
43
+
44
+ # Remove dvt_path if it's already in sys.path (to move it to front)
45
+ if dvt_path in sys.path:
46
+ sys.path.remove(dvt_path)
47
+
48
+ # Insert at the beginning to take precedence over site-packages
49
+ sys.path.insert(0, dvt_path)
50
+
51
+ # Clear any already-imported dbt modules so they get re-imported
52
+ # from the correct location
53
+ modules_to_clear = [k for k in list(sys.modules.keys()) if k.startswith('dbt')]
54
+ for mod in modules_to_clear:
55
+ del sys.modules[mod]
56
+
57
+
58
+ def dvt_cli():
59
+ """
60
+ DVT CLI entry point function.
61
+
62
+ This is the main entry point for the 'dvt' command. It ensures DVT's
63
+ version of the dbt package takes precedence, then runs the CLI.
64
+
65
+ Users who want backward compatibility with 'dbt' command can create
66
+ a shell alias: alias dbt=dvt
67
+ """
68
+ _ensure_dvt_precedence()
69
+
70
+ # Now import the CLI - this will get DVT's version
71
+ from dbt.cli.main import cli
72
+ cli()
@@ -0,0 +1,286 @@
1
+ Metadata-Version: 2.4
2
+ Name: dvt-core
3
+ Version: 0.52.2
4
+ Summary: DVT (Data Virtualization Tool) - Multi-source data federation and transformation with Spark-unified compute layer.
5
+ Author: DVT Contributors
6
+ Maintainer: DVT Contributors
7
+ License-Expression: Apache-2.0
8
+ Project-URL: Homepage, https://github.com/dvt-core/dvt-core
9
+ Project-URL: Documentation, https://github.com/dvt-core/dvt-core#readme
10
+ Project-URL: Repository, https://github.com/dvt-core/dvt-core.git
11
+ Project-URL: Issues, https://github.com/dvt-core/dvt-core/issues
12
+ Keywords: data,virtualization,federation,multi-source,dbt,analytics,transform,spark,jdbc,databricks
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Operating System :: MacOS :: MacOS X
15
+ Classifier: Operating System :: POSIX :: Linux
16
+ Classifier: Programming Language :: Python
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: Implementation :: CPython
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ Requires-Dist: agate<1.10,>=1.7.0
25
+ Requires-Dist: Jinja2<4,>=3.1.3
26
+ Requires-Dist: mashumaro[msgpack]<3.15,>=3.9
27
+ Requires-Dist: click<9.0,>=8.0.2
28
+ Requires-Dist: jsonschema<5.0,>=4.19.1
29
+ Requires-Dist: networkx<4.0,>=2.3
30
+ Requires-Dist: protobuf<7.0,>=6.0
31
+ Requires-Dist: requests<3.0.0
32
+ Requires-Dist: snowplow-tracker<2.0,>=1.0.2
33
+ Requires-Dist: pathspec<0.13,>=0.9
34
+ Requires-Dist: sqlparse<0.6.0,>=0.5.0
35
+ Requires-Dist: dbt-extractor<=0.6,>=0.5.0
36
+ Requires-Dist: dbt-semantic-interfaces<0.10,>=0.9.0
37
+ Requires-Dist: dbt-common<2.0,>=1.27.0
38
+ Requires-Dist: dbt-adapters<2.0,>=1.15.5
39
+ Requires-Dist: dbt-protos<2.0,>=1.0.375
40
+ Requires-Dist: pydantic<3
41
+ Requires-Dist: packaging>20.9
42
+ Requires-Dist: pytz>=2015.7
43
+ Requires-Dist: pyyaml>=6.0
44
+ Requires-Dist: daff>=1.3.46
45
+ Requires-Dist: typing-extensions>=4.4
46
+ Requires-Dist: dbt-postgres<2.0,>=1.9.0
47
+ Requires-Dist: pyspark<5.0.0,>=3.5.0
48
+ Provides-Extra: databricks
49
+ Requires-Dist: databricks-connect>=13.0.0; extra == "databricks"
50
+
51
+ # DVT-Core: Data Virtualization Tool
52
+
53
+ **DVT-Core** is a multi-source data federation and transformation platform built on dbt-core architecture. Query and transform data across multiple heterogeneous data sources with intelligent query pushdown and compute layer integration.
54
+
55
+ ## Features
56
+
57
+ - 🔄 **Multi-Source Queries**: Join data from PostgreSQL, Snowflake, BigQuery, MySQL, and more in a single query
58
+ - 🧠 **Intelligent Routing**: Automatically pushes down queries when possible, uses compute layer when needed
59
+ - ⚡ **JDBC Performance**: Spark JDBC-based data transfer for maximum efficiency
60
+ - 🔧 **Familiar Workflow**: Same dbt commands, same project structure, enhanced capabilities
61
+ - 🎯 **Smart Compute Selection**: Automatically chooses between Spark Local (embedded) or Spark Cluster (distributed)
62
+ - 🎛️ **Full Control**: Override everything with `target=` and `compute=` config options
63
+ - ✅ **100% Compatible**: Works with existing dbt projects and all dbt adapters
64
+
65
+ ## Quick Start
66
+
67
+ ### Installation
68
+
69
+ ```bash
70
+ pip install dvt-core
71
+ ```
72
+
73
+ Or with uv:
74
+
75
+ ```bash
76
+ uv pip install dvt-core
77
+ ```
78
+
79
+ ### Configure Multi-Connection Profile
80
+
81
+ ```yaml
82
+ # profiles.yml
83
+ my_project:
84
+ connections:
85
+ postgres_prod:
86
+ type: postgres
87
+ host: prod-db.example.com
88
+ port: 5432
89
+ user: prod_user
90
+ password: "{{ env_var('POSTGRES_PASSWORD') }}"
91
+ database: analytics
92
+ schema: public
93
+ threads: 4
94
+
95
+ snowflake_warehouse:
96
+ type: snowflake
97
+ account: abc123
98
+ user: snow_user
99
+ password: "{{ env_var('SNOWFLAKE_PASSWORD') }}"
100
+ database: warehouse
101
+ schema: public
102
+ warehouse: compute_wh
103
+ threads: 8
104
+
105
+ default_target: snowflake_warehouse
106
+ threads: 4
107
+ ```
108
+
109
+ ### Define Sources with Connections
110
+
111
+ ```yaml
112
+ # models/sources.yml
113
+ sources:
114
+ - name: postgres_data
115
+ connection: postgres_prod
116
+ tables:
117
+ - name: orders
118
+ - name: customers
119
+
120
+ - name: snowflake_data
121
+ connection: snowflake_warehouse
122
+ tables:
123
+ - name: products
124
+ ```
125
+
126
+ ### Create Multi-Source Model
127
+
128
+ ```sql
129
+ -- models/combined_sales.sql
130
+ {{ config(
131
+ materialized='table',
132
+ target='snowflake_warehouse', -- Optional: override materialization target
133
+ compute='spark-local' -- Optional: force compute engine
134
+ ) }}
135
+
136
+ SELECT
137
+ o.order_id,
138
+ o.order_date,
139
+ c.customer_name,
140
+ p.product_name,
141
+ o.quantity * p.price as total_amount
142
+ FROM {{ source('postgres_data', 'orders') }} o
143
+ JOIN {{ source('postgres_data', 'customers') }} c
144
+ ON o.customer_id = c.customer_id
145
+ JOIN {{ source('snowflake_data', 'products') }} p
146
+ ON o.product_id = p.product_id
147
+ WHERE o.order_date >= '2024-01-01'
148
+ ```
149
+
150
+ ### Run DVT
151
+
152
+ ```bash
153
+ # Standard dbt commands work
154
+ dvt run --select combined_sales
155
+
156
+ # DVT automatically:
157
+ # 1. Analyzes query (sees postgres + snowflake sources)
158
+ # 2. Determines federated execution needed
159
+ # 3. Selects compute engine (Spark Local or Cluster based on workload)
160
+ # 4. Loads data from postgres and snowflake via adapters
161
+ # 5. Executes join in compute engine
162
+ # 6. Materializes result to target (snowflake)
163
+ ```
164
+
165
+ ## Architecture
166
+
167
+ ```
168
+ ┌─────────────┐ ┌──────────┐ ┌─────────────┐ ┌──────────┐ ┌──────────────┐
169
+ │ Source DBs │────▶│ Adapters │────▶│ JDBC │────▶│ Compute │────▶│ Adapters │
170
+ │(Postgres, │ │ (Read) │ │ │ │ (Spark) │ │ (Write) │
171
+ │ MySQL, etc.)│ │ │ │ │ │ │ │ │
172
+ └─────────────┘ └──────────┘ └─────────────┘ └──────────┘ └──────────────┘
173
+
174
+
175
+ ┌──────────────┐
176
+ │ Target DB │
177
+ │ (Snowflake, │
178
+ │ BigQuery) │
179
+ └──────────────┘
180
+ ```
181
+
182
+ ## Execution Strategies
183
+
184
+ ### Pushdown (Homogeneous Sources)
185
+
186
+ When all sources come from the same connection, DVT executes the query directly on the source database:
187
+
188
+ ```sql
189
+ -- All sources from same connection → Execute on source database
190
+ SELECT * FROM {{ source('postgres', 'orders') }}
191
+ JOIN {{ source('postgres', 'customers') }} USING (customer_id)
192
+ -- Executed directly in PostgreSQL (no data movement)
193
+ ```
194
+
195
+ ### Federated (Heterogeneous Sources)
196
+
197
+ When sources come from different connections, DVT uses the compute layer:
198
+
199
+ ```sql
200
+ -- Sources from different connections → Use compute layer
201
+ SELECT * FROM {{ source('postgres', 'orders') }}
202
+ JOIN {{ source('mysql', 'products') }} USING (product_id)
203
+ -- Data loaded into Spark, join executed there
204
+ ```
205
+
206
+ ## CLI Commands
207
+
208
+ ### Standard dbt Commands
209
+
210
+ All dbt commands work unchanged:
211
+
212
+ ```bash
213
+ dvt run
214
+ dvt test
215
+ dvt build
216
+ dvt docs generate
217
+ dvt docs serve
218
+ ```
219
+
220
+ ### DVT-Specific Commands
221
+
222
+ Manage external Spark clusters:
223
+
224
+ ```bash
225
+ # Register external Spark cluster
226
+ dvt compute register prod_cluster --master spark://master:7077
227
+
228
+ # List registered clusters
229
+ dvt compute list
230
+
231
+ # Remove cluster
232
+ dvt compute remove prod_cluster
233
+ ```
234
+
235
+ ## Configuration Options
236
+
237
+ ### Model Configuration
238
+
239
+ ```sql
240
+ {{ config(
241
+ materialized='table',
242
+ target='snowflake_analytics', -- Where to write results
243
+ compute='spark-local' -- Force Spark Local for processing
244
+ ) }}
245
+ ```
246
+
247
+ ### Smart Compute Selection
248
+
249
+ DVT automatically selects the optimal compute engine:
250
+
251
+ - **Spark Local**: Small/medium workloads (< 10GB), fast in-process execution
252
+ - **Spark Cluster**: Large workloads (> 10GB), distributed processing
253
+
254
+ Override with `compute='spark-local'` or `compute='spark-cluster'` in config.
255
+
256
+ ## Key Principles
257
+
258
+ 1. **Adapters for I/O only** - Read from sources, write to targets
259
+ 2. **Compute engines for processing only** - Never materialize
260
+ 3. **JDBC as universal data format** - Efficient transfer
261
+ 4. **Backward compatibility** - All dbt projects work unchanged
262
+ 5. **User configuration always wins** - Override any automatic decision
263
+
264
+ ## Requirements
265
+
266
+ - Python 3.10+
267
+ - dbt-compatible adapters for your data sources
268
+ - PySpark (installed automatically)
269
+
270
+ ## License
271
+
272
+ Apache License 2.0 (same as dbt-core)
273
+
274
+ ## Acknowledgments
275
+
276
+ Built on [dbt-core](https://github.com/dbt-labs/dbt-core) architecture. DVT extends dbt's capabilities while preserving its excellent design patterns and developer experience.
277
+
278
+ ## Links
279
+
280
+ - [Documentation](https://github.com/dvt-core/dvt-core#readme)
281
+ - [Issues](https://github.com/dvt-core/dvt-core/issues)
282
+ - [Repository](https://github.com/dvt-core/dvt-core)
283
+
284
+ ---
285
+
286
+ **Transform data across any source, materialize to any target, with intelligent query optimization.**
@@ -0,0 +1,275 @@
1
+ dbt/hooks.py,sha256=b0h4XB-nt3POKZ5kuxg4qgSCBzUZIC8YrkChL9iPQiM,511
2
+ dbt/version.py,sha256=wByBYEa72cF6x4Ig12_Ub0VGTtK8L7zqIax2FYXfIPU,8533
3
+ dbt/_pydantic_shim.py,sha256=hjw-7Y5Z7wACmhau9HwVWOkOdsLwtNKGw1IV5Wshpxw,1183
4
+ dbt/flags.py,sha256=GtQdjPPHuGz3aWg91or6BTiS2JydSmNnixiE3f2vRZo,3136
5
+ dbt/constants.py,sha256=ThJKP6QEtqCQMR7poNRTCR-7t__r7B24CxRUAGDzrgE,1034
6
+ dbt/selected_resources.py,sha256=ax8Qrpr4QI7y1DnJ2rhnSeevFZZ-GSSYeYZywtzUVxk,201
7
+ dbt/query_analyzer.py,sha256=LuZR3A8EO6hXkiyjlcAkgVKy5w_l6ys4m0myAowhgsE,15782
8
+ dbt/__init__.py,sha256=xsNUR1xrLJWx-H14vxcqbWwqxNoG9M1OTur6B0M7two,341
9
+ dbt/links.py,sha256=2XEBnp3xmwFGXekghYc8UYkwuYvWy5-08-IidWn2ixE,310
10
+ dbt/env_vars.py,sha256=c1z0D5UcEaawYgfWpceDNmbuvB65XroTmuUtfj4xKws,2903
11
+ dbt/deprecations.py,sha256=lF0UD_eSf55e4DT8qeaYBIKU60RflRHXJay3CZkZusw,10956
12
+ dbt/query_analyzer.cpython-310-darwin.so,sha256=Q4VQczLOPqTSqUXno2Rr8nPkZiOTkbNRqGWtQm7Mocg,115280
13
+ dbt/compilation.py,sha256=pY-eQOK9K-G78PwR9D1DhSomARYvaTr5g79bgL7t0M4,36543
14
+ dbt/py.typed,sha256=jv5Zi3m-MvcyYNALpgzImJuqEUjJY44xp5uMsU7V2Rg,43
15
+ dbt/exceptions.py,sha256=cfkH8dKseVCq4CQ2mRamBnCcD9F60qhYJ9BdB3kkNIQ,49642
16
+ dbt/node_types.py,sha256=eEiJyXSdpz0SNzlO38G8zNdHUSUthlYoPXpO2bcM8x0,726
17
+ dbt/mp_context.py,sha256=I1pYjBRzdFZSo8a37C_bDyVEmD9X82GundZlQGIB5H0,188
18
+ dbt/profiler.py,sha256=-j4LMp380hoKMn9w_s4JUfQBDXt-lF2oXKuA7rMmBls,504
19
+ dbt/tracking.py,sha256=WO68f_hTra4WI8XsWMy6bbdDDRjACnuJIypljRH1uII,15925
20
+ dbt/internal_deprecations.py,sha256=8zyc5G28123-1RdNM7eDN2MpqsXJ7ukYZNyDspIwjIQ,712
21
+ dbt/clients/git.py,sha256=U9gdvhBuzArph2G5wyAOcuaFO-RHQp4A4AJGYs9gGO4,5263
22
+ dbt/clients/registry.py,sha256=VmDjovOyYkzRNo3W8n9jPmevLUMS5UkH9918zMPEqoM,7970
23
+ dbt/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ dbt/clients/jinja.py,sha256=iIqpys1f-pe7b4fTybBDcZNUtqvhCkq6G7wnmUpAop8,6523
25
+ dbt/clients/jinja_static.py,sha256=qkScBqEhcpSIg8i6_0ke3J-7fH780_-SfzWBWxIcLfg,9102
26
+ dbt/clients/yaml_helper.py,sha256=vgvhBlsvZAqA9cy2CazdGVBOAiXERk_YDy6qVa0XwA0,1826
27
+ dbt/clients/checked_load.py,sha256=O1yziv6AaH6YO2yTULr85-wzc9nH_N9yV15uSNq72Yg,3183
28
+ dbt/event_time/sample_window.py,sha256=2DcRY82_SRh8nECqYmjpHDoFcwb-wsftZAwljs62jgw,2262
29
+ dbt/event_time/event_time.py,sha256=x1za8L95FlFqvgouwp-3ykNUWb1ARy0FKpPL1vcCahc,1904
30
+ dbt/artifacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ dbt/artifacts/resources/__init__.py,sha256=4X3rQluAVORgmo2c7g2NKRbU6xOAh-EKmf5x-sOcbLA,3116
32
+ dbt/artifacts/resources/types.py,sha256=aGowyB7UpWESCd3_Xk75f8YWE65mjTB-h2fj8MzPlBQ,1924
33
+ dbt/artifacts/resources/base.py,sha256=ZWjF3SppBHxPJYTNZBML2WxN-L911IoDIaJMQBFpTtk,1779
34
+ dbt/artifacts/resources/v1/catalog.py,sha256=t7z6Fca2Yy2ZFOP9bkMNc4S5vDI2Xfw1W3JNn7fwkMA,737
35
+ dbt/artifacts/resources/v1/documentation.py,sha256=boc7WzLROzJZrZxSRtyYYAeGr7QbLZ8JO3B5BKTr7MY,290
36
+ dbt/artifacts/resources/v1/config.py,sha256=TuH4RdT_V6PmyH-TOO_UDaOqxNYdHWgWJj24oxVPOss,10381
37
+ dbt/artifacts/resources/v1/source_definition.py,sha256=TJB2pe99_oC4J8oqJkYZyI2zMm-cWwo2gPnJRfE1rls,3028
38
+ dbt/artifacts/resources/v1/analysis.py,sha256=YhH_OFAeXSFURDJrvQlPQXj6lkTo4IEfvt7SaCB2hhE,273
39
+ dbt/artifacts/resources/v1/semantic_layer_components.py,sha256=fHF1Qb6ScZvHpjSQWcipnyQXa-NftOm7Sj6H6uqNvQk,1989
40
+ dbt/artifacts/resources/v1/unit_test_definition.py,sha256=l10KaUikIQ7VsVO_j5VGbFnqLFZT_GhRBOI8ZMPZNI4,2392
41
+ dbt/artifacts/resources/v1/semantic_model.py,sha256=0CPLA9AJAKT1UpcH8KH3h_20pL8Ag5B87qaILg3W4Ng,11132
42
+ dbt/artifacts/resources/v1/exposure.py,sha256=-0F29xJBvygCo1E8eWPqefWMXYzlUF6WUjkXRCxihuo,1661
43
+ dbt/artifacts/resources/v1/hook.py,sha256=HaPtmmKT-0Le53d9uOrP9gL4lSaGAJULxAb0Ed3PkOE,316
44
+ dbt/artifacts/resources/v1/saved_query.py,sha256=xRh5Edz5xfN8xdD2BjV3f9bSfd_wA6ySYbm6IOVk7Oo,3436
45
+ dbt/artifacts/resources/v1/owner.py,sha256=5moDoBzTmU7-Mr8e_Om0UojGRSxYeckjTNRICcbdgdk,287
46
+ dbt/artifacts/resources/v1/generic_test.py,sha256=r0bsCnZrPOQPQFhvDsTWyvh6EB55jFn9eEsUZfZAHtQ,1210
47
+ dbt/artifacts/resources/v1/model.py,sha256=Jf2QgNMoUzc_9f7TNandkgk-4GI6v7opvUgA_M0VtGY,5046
48
+ dbt/artifacts/resources/v1/metric.py,sha256=PHGr1tbwSsPkG30DrF7_adkbjdaWlJS-nYqQKULsOsg,5894
49
+ dbt/artifacts/resources/v1/sql_operation.py,sha256=jxtJ57btySTVKK6csO3fjbEJlfBT9Tyv6KDYuE4DO6Q,281
50
+ dbt/artifacts/resources/v1/seed.py,sha256=-3Ii5RVRBJYZM-qTtnoSPFa0MTFvAybGIhmKh5BFDME,1458
51
+ dbt/artifacts/resources/v1/singular_test.py,sha256=lMnOGw7Y2uPCzTVjQevbWXqAg5mz736MqddaEnl5i00,524
52
+ dbt/artifacts/resources/v1/group.py,sha256=m6B9YURzLh9Mr__tBLbR34mKJJegBszRnC-yLcjagoA,667
53
+ dbt/artifacts/resources/v1/components.py,sha256=JglKDOUKGTSnNu0U1s4lcNNV2Kk4aIuPOO4IMfmKU1Y,9159
54
+ dbt/artifacts/resources/v1/macro.py,sha256=EPTE6neIjp7NNEqnPASwD9CpVhIoiIjHXvCYYW163jE,1003
55
+ dbt/artifacts/resources/v1/function.py,sha256=eJWgX0MgU_xmnSjG8_ktz4VL2mgrEypXe8Xvhqq7D68,1435
56
+ dbt/artifacts/resources/v1/snapshot.py,sha256=QpK6SBsQgoePF7lRxGTRrcHW0TGpsk9gfTko3Sb3CGA,3858
57
+ dbt/artifacts/utils/validation.py,sha256=jpaK5KM1_huYnqGEE1R0qTFk7-1wGvmv9BMpaojBfzk,2677
58
+ dbt/artifacts/exceptions/__init__.py,sha256=5sFiYCA8Vb0oU9fs-mj_suey-ygG_LunjCW-oqUndF0,69
59
+ dbt/artifacts/exceptions/schemas.py,sha256=noiBunDvppQxMsTBn9nR4un9v4EoXINBaR4w8QeABDE,895
60
+ dbt/artifacts/schemas/results.py,sha256=pYKjkakPyj7t88OGHlORBq9b1jFxhKLB7vecUMYglb8,3949
61
+ dbt/artifacts/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ dbt/artifacts/schemas/batch_results.py,sha256=gFI_CxqOAH1awki4jAAt2dRjlkul1lDQyaiUKQvNwZ8,685
63
+ dbt/artifacts/schemas/base.py,sha256=oJs12qimklvNZ0KPxvB-FJVFUtUzTX1xvS0smIWmkXY,6963
64
+ dbt/artifacts/schemas/catalog/__init__.py,sha256=vhUGXA-uA7ZB7Zo3FtdCEwJ35mlqLTRqhn2E3jJcZZI,245
65
+ dbt/artifacts/schemas/catalog/v1/catalog.py,sha256=rdxxZgoI5TeQNMrPeEjz-9LlPmiqL2ujy1XmU0T5DA4,1669
66
+ dbt/artifacts/schemas/catalog/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
+ dbt/artifacts/schemas/manifest/__init__.py,sha256=vE1aLS6gqmInuSLrbrquIZ-nKmt7WuOwxvInsRf7uPA,84
68
+ dbt/artifacts/schemas/manifest/v12/manifest.py,sha256=UyK9_8XO64bB2tzs05K2DRVJJmYY35uP6QmY5UCjZCg,7117
69
+ dbt/artifacts/schemas/manifest/v12/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
+ dbt/artifacts/schemas/upgrades/__init__.py,sha256=slsMj6Wn0IX_RwSAiXG5JfwXQjQkhLSqPY7uelfF4mY,197
71
+ dbt/artifacts/schemas/upgrades/upgrade_manifest.py,sha256=4n86d1QSayLChKP8vzrpCp0Vl22A4UDGjRX7dH6ueEs,6898
72
+ dbt/artifacts/schemas/upgrades/upgrade_manifest_dbt_version.py,sha256=7z0X_NzIuzNklw8nkt-fS1axF5VwrrUAsT84MgFAk8w,83
73
+ dbt/artifacts/schemas/freshness/__init__.py,sha256=kCdfQ61AyJsZvrs7j7JFIgyrBxFe7zgBhMl4dTd3IBQ,67
74
+ dbt/artifacts/schemas/freshness/v3/freshness.py,sha256=mSLtT9WPT1qu2_8j8Xhe0l2EmnPNIlSAhMkMGXLtQAs,4376
75
+ dbt/artifacts/schemas/freshness/v3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ dbt/artifacts/schemas/run/__init__.py,sha256=R8yXQ48quok_Kr2NKUhApfVPFm5XWrnFvGIUMeQzbOk,73
77
+ dbt/artifacts/schemas/run/v5/run.py,sha256=Msc-uNFX7vs6FGa_bW4Cx3J96OX40dZBynEdu8Gz-ic,5832
78
+ dbt/artifacts/schemas/run/v5/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
+ dbt/materializations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
+ dbt/materializations/incremental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
+ dbt/materializations/incremental/microbatch.py,sha256=saGm6-Gwkt9lMWjRKUFZLvM71RSkEtsh-WOLIBHgzrY,10806
82
+ dbt/context/context_config.py,sha256=_7Q_MEiWC-69ZZTA8i7tIHw1gUrNbj4IbZvMBUuBxLg,14971
83
+ dbt/context/exceptions_jinja.py,sha256=nCWjfWaActeEPz30ASl_LAshdMqJQQkEiHITFXe8HBE,4791
84
+ dbt/context/manifest.py,sha256=ruZiZ3AAoiLAfjR7Ko4vYFV4FI5S5fKgWB0cL7aOi38,2691
85
+ dbt/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
+ dbt/context/docs.py,sha256=LxrxeUyb5uFJE5fScP3g4yVC9TbBkj8K6q2PDPhWtkg,2524
87
+ dbt/context/providers.py,sha256=nZUXSn5PUwgX1Kh_0C-dSYifpdW_54fXl-NdS8cxEYI,82644
88
+ dbt/context/secret.py,sha256=y6AI68cHTlABwwQVhVU-Rkz3BwOkN0EICEvzNC1FTSI,2635
89
+ dbt/context/macros.py,sha256=UvljfXKJMZDH8N0R5sBAVg4Bi7TdXqZ06j7Kt1i-JYw,7425
90
+ dbt/context/query_header.py,sha256=SJVzQCn1b8Q3Ncmzlu-G7Xt3MtDQe4w3so9GMK2Bf3I,519
91
+ dbt/context/configured.py,sha256=IB2bvvup1P7eogGj2qFD5sgKrPAZEyu1kfkvzVbqqGE,4497
92
+ dbt/context/target.py,sha256=jk7mGL4LB4l1_YAKfpaQvIJIKL0PEwmt42wmVK120KE,4165
93
+ dbt/context/macro_resolver.py,sha256=s5DvIsgLL8b6DOVfN-DXV-VY8iNrD6EKAaq4XjEBFZ0,8682
94
+ dbt/context/base.py,sha256=BwSkhqw5kSohptMEmHUpPFjQv2cb4YD7vQ1aTqn5SFQ,24760
95
+ dbt/config/dvt_profile.py,sha256=kFYYtsl93s3XfiFEH13vXBY7Xq79cixSn8-HffEEh8I,13093
96
+ dbt/config/dvt_profile.cpython-310-darwin.so,sha256=58TGpZkSzpgcjya5IUyG-su76FPmlRG4Iy1ElS-M5pU,124200
97
+ dbt/config/renderer.py,sha256=V4eV53K5a0adAes7SeBDNa2Cx7Jgl-prJ7UEvFAcja0,8134
98
+ dbt/config/catalogs.py,sha256=YRvQymO2w7jkpfQSaGssgzI0ycvQlZA2AdGbdnSyw_Q,3916
99
+ dbt/config/profile.py,sha256=NBmF9thlwPO0QZeygk_ny4KDYkBJ6LltTFJA8exyW0g,16044
100
+ dbt/config/project_utils.py,sha256=-LMQEI6g1hJx3S2s5mSqPhv1cbnkPmTKShLZcGDEFwU,763
101
+ dbt/config/__init__.py,sha256=OdOurJMVaCvlxZSXeSsMeSu8rPeQxkC4HYf8qBDe6q4,224
102
+ dbt/config/selectors.py,sha256=udhpIsK4qqd48FornBfqq3lrvQnbAMto2YusCMcxjdE,8062
103
+ dbt/config/runtime.py,sha256=Tx0uiSVuYhZmiQ3Ek-5ocRx3kzBFj3RjlHNVRXsdj34,20923
104
+ dbt/config/compute.cpython-310-darwin.so,sha256=-nZ1k5VhFPpWnqBe1vcpZakRcdUOdGVrWBwHZnlutoc,180200
105
+ dbt/config/utils.py,sha256=bNbMm3y2LrQuO8Oe85BAQ-zEtTLKR5dwbvPtp_QTAbw,2755
106
+ dbt/config/project.py,sha256=Mo5zCrPDtOHsnhvfPP-8Wa4-4trEe62STZ5sUGX0c40,33012
107
+ dbt/config/compute.py,sha256=0eNsOpKc6-aLBnpY7i-gQ3P8F8yK14BTExgLy9Z-LIc,20882
108
+ dbt/plugins/manifest.py,sha256=kpnxQJ1qkjYZy0zLlmr8-gueRmwaOP8wRu9cgNFoMZM,723
109
+ dbt/plugins/__init__.py,sha256=lJPCl_8gxApqUDCip0Jqjarqpdz9PtWrnlRBy7M1320,561
110
+ dbt/plugins/contracts.py,sha256=ofZSR6GEUchkFWVALXkrB4enAoFu3CCw8P2q7dCg5Ys,428
111
+ dbt/plugins/exceptions.py,sha256=aZhBNeEtP79slI8qDahRUcaP1YqxHrVwYxLZfxR5Ol4,112
112
+ dbt/plugins/manager.py,sha256=TjjEGYvVPFs80Ri4uU7sOqdgQ1cczIwATjAY7bCkWsg,5959
113
+ dbt/contracts/files.py,sha256=jID6ol255dgm7MCI5b2yr2TwAESa3cn_0rNBTuQYmTc,15492
114
+ dbt/contracts/results.py,sha256=nCgopMI6p71TxRi6qFUXAupJ-vfvc-peTKYcUqMY9VM,1204
115
+ dbt/contracts/util.py,sha256=c0WHoq8pTjuUTMGrAGo0fHkdnp7k6HNG7Ax9-QZ5z4o,1128
116
+ dbt/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
+ dbt/contracts/selection.py,sha256=CUxsd1JP2owTjWjn9OTvRa-iAPm9SFZk8CWP40NFKJs,522
118
+ dbt/contracts/sql.py,sha256=thtFEQcMAlFA-_QfrQiojGbqhyNMJ27qhQTDe6TRYP8,2531
119
+ dbt/contracts/project.py,sha256=avOPCAns3pAqZTpdFLOMIWzzQSzEkc6Xd446HDStwA4,15216
120
+ dbt/contracts/state.py,sha256=lKQE2hpuBRa8jMkgicDmHbSfMPtidWE8ZIc2o-8oyc8,3068
121
+ dbt/contracts/graph/metrics.py,sha256=noLXAEuKjM2zEoAQSITHJPYZMF_gAvMLRIAXi1EYR8c,3868
122
+ dbt/contracts/graph/unparsed.py,sha256=rgkMRbdZS0iGTn4GhY7dmcsm89OROSPCP8u1CEf5R50,27040
123
+ dbt/contracts/graph/node_args.py,sha256=CXDuLMEIdlJyYz9lI7FMeYpFkIS6qmSH6Lnz9Qi1CFI,1273
124
+ dbt/contracts/graph/model_config.py,sha256=CEItlXlFadylJmcLY_5swL5bYx9vbig2TraJAdlcMVI,1966
125
+ dbt/contracts/graph/manifest.py,sha256=EJgz7GvH_vPC9CAlZmnMXGS2A4FkcnbXDSGUYnvfs3g,73986
126
+ dbt/contracts/graph/semantic_manifest.py,sha256=KTUVswPNn5_-picBAMnmxvfkAeRlx0uwHDIa0HwY9Ho,10855
127
+ dbt/contracts/graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
+ dbt/contracts/graph/nodes.py,sha256=hFP_9wZdZWfauXysTGkXEdo5hZRLpXbwuJR4vZDOIXk,61696
129
+ dbt/include/__init__.py,sha256=qEFeq3yuf3lQKVseALmL8aPM8fpCS54B_5pry00M3hk,76
130
+ dbt/include/README.md,sha256=C-sEdxQaBIq8kS7sw-CnmDBwCIKO9c8xefGzVGL6nxo,3120
131
+ dbt/include/starter_project/__init__.py,sha256=vBGWeG-dHHkimfnX8axBJ4IgAowFw8xADmo6Auzn2xc,52
132
+ dbt/include/starter_project/README.md,sha256=55nDkX5uQXWmawpQbgG1hbyn64j_CegDBQddQ2C85C8,571
133
+ dbt/include/starter_project/.gitignore,sha256=1jJAyXSzJ3YUm0nx3i7wUSE4RjQMX3ad6F8O88UbtzI,29
134
+ dbt/include/starter_project/dbt_project.yml,sha256=bzJVrQtTJVKsDjN568ohNaEnZ1VoL7iB7aqnGDN9wFM,1262
135
+ dbt/include/starter_project/snapshots/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
+ dbt/include/starter_project/tests/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
+ dbt/include/starter_project/models/example/schema.yml,sha256=q-QZZlZI0qGJzmy9CnY-EWry2ZY4NKLI6TZ4uAsCuV8,447
138
+ dbt/include/starter_project/models/example/my_first_dbt_model.sql,sha256=hCJR9e0dl5INN0jZaGuMBaOgBx7HmQ-UjzZ5ZJF4iu0,475
139
+ dbt/include/starter_project/models/example/my_second_dbt_model.sql,sha256=s6o0byg_PJyadZNvO4DSVyypqzmu5MArMFU9P-K6VpI,115
140
+ dbt/include/starter_project/macros/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
+ dbt/include/starter_project/seeds/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
+ dbt/include/starter_project/analyses/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
+ dbt/graph/queue.py,sha256=02TytuMSvcxO3VPyjBTVBuRoueWAepTJyzhBYHIrDUk,7601
144
+ dbt/graph/thread_pool.py,sha256=OL0-v3sTiD6-BcyqL-GXDuYydMI9eb1hpUi7y5XaaSs,420
145
+ dbt/graph/graph.py,sha256=cxTI8WQziuY08nL4dwe-3orKsLK4C8E_TEZKTYnRkTs,6749
146
+ dbt/graph/selector.py,sha256=VyzkyFTbb5mAjdVIVFK-wnLOf6ECqxe5jKI2WCrJ7Fo,15780
147
+ dbt/graph/__init__.py,sha256=cyK8jC-TCcs2O84HStOdS6SS-__09cnmeIVbumZJm_g,404
148
+ dbt/graph/cli.py,sha256=Mup0ucoUHDCW5aQFV-AKAzUNCy6bGFbjqNUAA8BrTbE,9027
149
+ dbt/graph/selector_methods.py,sha256=59aP0rjdzgf6TFmP55u7cKCIOyAf59etKZ0Rx_yibm0,38545
150
+ dbt/graph/selector_spec.py,sha256=OkK7cPl_pkiTaghJlhfhnOwZOKwcgz7mGJF2S2Rln6A,7052
151
+ dbt/tests/util.py,sha256=jnYwi8xfr1qHE1pxTec_tXulUEVVqYLzjSAlcetMFNg,21022
152
+ dbt/tests/fixtures/__init__.py,sha256=NHa3hnjcznIhj-6IjHii35RcHnG5NRsbPh5MGnd_hQA,31
153
+ dbt/tests/fixtures/project.py,sha256=CPQvSwxkKXO9OBAtSxFV4E97eyp2GbliUHFcwF392V4,20837
154
+ dbt/utils/artifact_upload.py,sha256=9Ocko1Bgzoz0SXCplLMEgDcB0TSMPiImAsUHVeL4SoY,5523
155
+ dbt/utils/__init__.py,sha256=J-Zb-1T350Mzdv3GR3_qQ4galjhagP44fqPoeWHj4FQ,140
156
+ dbt/utils/utils.py,sha256=qvdyMt-6sSHFR2xAqcQIG_XvqamVR0Kq7KEG0LwdU7g,12803
157
+ dbt/jsonschemas/jsonschemas.py,sha256=pLTEfUERmo1y8wznqg1qdaod-u8Z5Vnjx9ZAbDu_RJo,11431
158
+ dbt/jsonschemas/__init__.py,sha256=1Hknl-BkcVl_D3_As2V8GDkCrUV69Fp-66Tehjj9F4Q,56
159
+ dbt/jsonschemas/resources/0.0.85.json,sha256=dS5dERUBIvd2TLF8VwZNj6xLjOO3HuJf2EzeLOHSm8E,48785
160
+ dbt/jsonschemas/resources/latest.json,sha256=xGLfWu8iTP08hlQnHz_OiMrhDDRhTHnIBLxwTN4386w,134508
161
+ dbt/jsonschemas/resources/0.0.110.json,sha256=l1SgOzKmX0YE1E-e_PZViwCYLwQFQwGhzqAd7t3-dco,50588
162
+ dbt/jsonschemas/project/0.0.85.json,sha256=ZevfKWEaekLHpQLPp-KeV8VGdBFhorILCURGyM8xQvc,38918
163
+ dbt/jsonschemas/project/0.0.110.json,sha256=Kwof3-KxyOgiUo7O9fvdSM3BoqnlLdkH3gNO-rN1IAk,93337
164
+ dbt/docs/source/conf.py,sha256=MUDFtRYQic1qn16ygvLMarmWJ6g61-DvTlcEx3f5Te4,1060
165
+ dbt/docs/source/_ext/dbt_click.py,sha256=L6Ks5_f4Rfvs39HKkUeJxHJm6azmzgt3zq79ps9oS0w,3545
166
+ dbt/cli/options.py,sha256=KE3j68cH6DBZKjB1SXmr7OM5UmSeI__Vlye_YO6o2UU,3526
167
+ dbt/cli/params.py,sha256=XbiJUCLAzHUyt3aYI3Tb2es2QIN197nr2TXiaV_11gU,26049
168
+ dbt/cli/requires.py,sha256=Kk5ewhdg1ss5fXIXdPYLan8mJzkoRKpe80ZOeLZl6pw,17823
169
+ dbt/cli/resolvers.py,sha256=M4c6F3Q4XzzgcIMY0T7hcznmUfzMjwfmSY_ejXY_bZk,1707
170
+ dbt/cli/flags.py,sha256=uZgOJxIHnrR-Tn4NdrKJ9BMHlA5SASBt4RDY3n6XL_k,24604
171
+ dbt/cli/option_types.py,sha256=BKJ9QtVSTsxt-OLUfgFt3vS57_mHcyByUHBtMNqG6ls,4307
172
+ dbt/cli/__init__.py,sha256=P6Lklk5Uobsf7BLo1LtQfTL2uElyggI2uuFtce7a-pU,41
173
+ dbt/cli/types.py,sha256=rJoHvBZAo3rLEUzznpEgUAamOvNXm_6AhSOXzZz7Rrs,1006
174
+ dbt/cli/context.py,sha256=zdo8Pykx1ggk7_pMED6HucBpzaImUxDreYAvhaOQ4oY,380
175
+ dbt/cli/exceptions.py,sha256=2iyyEZM6SFaFTY-1Y8kUb0tuGm6FAjvQDFGuNVNyOqI,1883
176
+ dbt/cli/main.py,sha256=KZHjbLpJR2m_nzgCkgif6EOxhbwcclPi2ts1qXuT0rM,60457
177
+ dbt/parser/functions.py,sha256=xe-azqyt74ZjzkBqwHDwLuymwQ5WhWf25IFVBw1AUgo,1075
178
+ dbt/parser/snapshots.py,sha256=9EqPZqLo00Wc56879VCs_Da8-m60rncBQHnY_vqFMQY,1353
179
+ dbt/parser/hooks.py,sha256=IbBcEzNDhfyNipIA7vCc5ieEOgU5kfbwgTwyV1iT8TE,3595
180
+ dbt/parser/schema_yaml_readers.py,sha256=SPbxbONO7YoGzZ9FO3mkMKJyKLCw6N92v6kFFTTTji4,35330
181
+ dbt/parser/analysis.py,sha256=1nYA99Vltnqs2A5gI4diz64uQGNTTk5SXysEc4jVONg,630
182
+ dbt/parser/models.py,sha256=uLFuHZ5jzWpFdYqnE6FLbteoNmnvJxd3UlIZZ8WFlmk,24045
183
+ dbt/parser/manifest.py,sha256=cmrz-p4ojcwJ2tJQBCLA-khwUTubIednoAjQr25ubxM,95010
184
+ dbt/parser/read_files.py,sha256=7mJWxxli4czFQL9i8YZnTkrMLTYy3evCU-vIw8ZTiPs,17866
185
+ dbt/parser/schema_renderer.py,sha256=s92kN0ggntSOCqPmH2uOvUrTo59eWTLVvzPPmTZRf3Q,4079
186
+ dbt/parser/__init__.py,sha256=xXgCErnu80x6oDRPGy0wIGtpB3YjhivfN6lPWbfm5yM,652
187
+ dbt/parser/docs.py,sha256=8TYwZQwOuMU9jF7lTJlO0cBD6xmVJ5IjjRMqBzGnIzU,1871
188
+ dbt/parser/generic_test.py,sha256=zby48vovpQY3d8A8uUswpZb8BpwmNnHGhn6AToaaa9k,3497
189
+ dbt/parser/sources.py,sha256=1wk1ivBGa7HFlu0_zYtTOVnWPIC4DFdtzm8-IBgQPcE,23483
190
+ dbt/parser/schema_generic_tests.py,sha256=hLzWdRCQOQQpr-UEkZ1zs7DoObzL6CcJNzP5hd8pVSs,17515
191
+ dbt/parser/schemas.py,sha256=SVcWNV8IENcvjIZKkciGNjGlSjL5lYDcEQvv9AH5A5Y,61382
192
+ dbt/parser/common.py,sha256=EhZp2i3g80XUZuei5oF3FJjZtvtChp9JTnLrUb6RnYA,7551
193
+ dbt/parser/macros.py,sha256=rHVga8f02hIJhZSKCjCaXpNX-n8aEqMNlK4OadCIMqE,5192
194
+ dbt/parser/singular_test.py,sha256=BOuOBl1Ovh-mrEIlBoLCmVzMioHZwBiSbmqX0jMkIXg,690
195
+ dbt/parser/generic_test_builders.py,sha256=Dj4S4poLVOi8VHaLVvxrm9i7HODwjM0BQAviVBG8pQk,12927
196
+ dbt/parser/search.py,sha256=CczRit5D3xQTMx65WTKNA07t1KKC6vOsbqWTXh0LMvQ,4472
197
+ dbt/parser/unit_tests.py,sha256=-gMLLzsDK3btSNMozTgMmOSzmdQDz3vwT8ZFseva7wA,28302
198
+ dbt/parser/seeds.py,sha256=Z7bcOmTesUjoxxZ0kPWt8noW3VUdUOxPQ2VlFJ-UIHM,1018
199
+ dbt/parser/sql.py,sha256=w0J7jCf3aiCAsgxVfVcTk7xTuEpGatQpkDpV1tekR2s,1956
200
+ dbt/parser/partial.py,sha256=4lpOyiQv8LU08lmDnxeYuV5-kkUedYkX-rJOFv8k5JA,59233
201
+ dbt/parser/base.py,sha256=-DuGVeQ_4DDdeaKXeXCHcY6_ehwf3jXfc55dLBklGgc,22638
202
+ dbt/parser/fixtures.py,sha256=IunblwbdKhJ6ln9rfHuOqgaDbL1g0-JikBZMHDrb_WU,1793
203
+ dbt/compute/java_compat.py,sha256=AZ_Abhtt4fm6WoDLrfNbIN__vwYIrx2P9_cyQYzB8Z0,23659
204
+ dbt/compute/jdbc_utils.py,sha256=prN55QXfDYDmPxQEMxTW_xSNa1spvHwx7cUaOy5R5Jw,25438
205
+ dbt/compute/smart_selector.cpython-310-darwin.so,sha256=WaLii95tj9TFfxG7G93RxKbhifINLp7VS22Hkouk_Kk,131296
206
+ dbt/compute/filter_pushdown.cpython-310-darwin.so,sha256=HhX_kQZs80iVdTGKY-RcoSlW1p6p3Qrafb4Rg3Qs_2M,95400
207
+ dbt/compute/__init__.py,sha256=hcELT3A4_zvLCaKjOJj71zvIHEcPhOXOg-b71nGn-Xc,335
208
+ dbt/compute/jar_provisioning.cpython-310-darwin.so,sha256=1D1GXn-tzL1hhY5y1OuTMQOJYKMCE_CuwhBOUx2MgYs,107496
209
+ dbt/compute/filter_pushdown.py,sha256=GSsMgNaHKAe8sJhuyZk5KZ8UpagmqWCbSN91PH-l5MU,9724
210
+ dbt/compute/smart_selector.py,sha256=roUBzNVkl3kISR5uvL0eKEqHloNqZlg9pLaVzA6d76U,10381
211
+ dbt/compute/java_compat.cpython-310-darwin.so,sha256=y6sLdCxEvm_fi0y7cBhQ_GRShUV7LQIRt6qnDgKQcfY,250192
212
+ dbt/compute/federated_executor.py,sha256=M-07e1Uz5KOlfwEVZacrPYgP4KoSfaa-uuzyQYleksU,35206
213
+ dbt/compute/jdbc_utils.cpython-310-darwin.so,sha256=10dUGuLsQX0hEbahxqddgIXqhFLEeGS5AaUrvcYNJzo,210280
214
+ dbt/compute/jar_provisioning.py,sha256=bi_gvS-FdhtPFNRABBSJvEsEDU6VH0_hyTkwq9iOhUI,9200
215
+ dbt/compute/strategies/standalone.py,sha256=oTZOp_YO-tZC0fEU0gEG3cGN5y7NbS7MXQlDPDzMAiM,10680
216
+ dbt/compute/strategies/emr.py,sha256=O4uGoLmbSysGPtk_GiAFulgKeGV9BOYQ8RfGNhV7lXc,7099
217
+ dbt/compute/strategies/local.py,sha256=AGZE7N4HooZ2-GDUPBu8s_yBCr-ta-0HxuKupavyArw,13636
218
+ dbt/compute/strategies/__init__.py,sha256=JP_xqTG-QpPusUQEdUBXqgz8j064j8lAN1fVf-Jz6A8,1356
219
+ dbt/compute/strategies/dataproc.py,sha256=kbTLRXVpQwxVsucXASYLCnHWQyFVn_6W8LlQcRleIos,7345
220
+ dbt/compute/strategies/base.py,sha256=Y0pT7SsC53CqrphNewU0AN2gj9PgxIth6n8JxMI6dfU,5449
221
+ dbt/compute/engines/__init__.py,sha256=YsEP8SkfaM14BFa5CaPGrYs15bS2j3fmsToLAcPfdtk,325
222
+ dbt/compute/engines/spark_engine.py,sha256=m7BnMmkLu3RjutDvBw7fR8maM1AFQK3Kv6-sr14u4DE,23659
223
+ dbt/task/freshness.py,sha256=fQazJDEoTqK-pSBhLUdJvFwqfIBFe-c0eR6d8qTXJno,12921
224
+ dbt/task/build.py,sha256=Sk-GZI2pKdF31ULHaYzYEGEJei8JwMntHu-lsYF5M_E,8492
225
+ dbt/task/java.py,sha256=5oA69ZmL9HwwSuLL1lJMwqfiAbIXMGcSa1cqhPHs294,12486
226
+ dbt/task/show.py,sha256=sy5uso8EOWcwauueH50US5Pwq-HGfhgSo8EZ1UAdOIY,5321
227
+ dbt/task/run.py,sha256=TyukM4-FjyDmk850ntkGPQW_d5laCO5PUpwg76392b4,52166
228
+ dbt/task/deps.py,sha256=FcBWBfPOtfTIdvBVA4GwyUm2kdf0cInsxfZ-4cpzkkw,10556
229
+ dbt/task/clean.py,sha256=WGeLdoOoM5-W_51J-7k_leQnOzLY44YyPhWhKqZsOrY,2172
230
+ dbt/task/target_sync.py,sha256=q0fqR1QPz7eGvH5Ol_oKAtr7XQHmQGmdi2tR3f0040g,29770
231
+ dbt/task/list.py,sha256=m4RaVC05RoivrWIUoD_wfkm6WWyDJt5Gu5aIsN8L9fM,9535
232
+ dbt/task/group_lookup.py,sha256=ArDc2Q0vYS0oOd9zAwwNj-Jbx0-R2xIQ4MZmIXa35iE,1444
233
+ dbt/task/run_operation.py,sha256=bh6yK_CmVESvjgJBorFgc_wkhnbiHoL2yBpCFQhJ51o,4786
234
+ dbt/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
235
+ dbt/task/test.py,sha256=EI2R64iO4yF74dLzfyyvfrok6R-zO0_VKidLkwWJWdo,16998
236
+ dbt/task/retry.py,sha256=Q8UiBNTW41-mqRjqcQCQ9FYIguuIg2hSn4SQ_iU8MmE,6217
237
+ dbt/task/seed.py,sha256=Si15qczUENuha4b8f5SFoVaA-cXvTooUwmbLPQlyFJo,3494
238
+ dbt/task/debug.py,sha256=cqSyBP4FFawEmGI4SeoLTavPX5RdCfl0IGAttod3RYI,19129
239
+ dbt/task/compile.py,sha256=VoPJDzjJbcOgmw89zLeWgcFb4xMJM0ORsyt7joPlzr4,5755
240
+ dbt/task/spark.py,sha256=hHr2KAxXMiU9TdyLQsCG-9bJTWgqPRinW4hBzqQi8FA,16847
241
+ dbt/task/sql.py,sha256=z6lyUDA82bpMHwEYFFmaGqDlmDQlJjMZjbnrNWkRnm4,3803
242
+ dbt/task/init.py,sha256=8gXoaXDlDdCzwGJiaJweRqKwu9REvXyZab0yEeRcVYY,25601
243
+ dbt/task/runnable.py,sha256=BZjEGKsaIZTo0XUmzRy37ht-eCaJn7gjThjLGXSf7Hc,29704
244
+ dbt/task/printer.py,sha256=8MQp4X32RETS47vB1f66V88GBLIMRoz3ccD2_y5vLyc,5976
245
+ dbt/task/base.py,sha256=02ECzXdTlIuXcmvcW5GLNpWB_qJKNHrElL8WFQG2fV4,17923
246
+ dbt/task/function.py,sha256=2LhqdfIrC7wrW5C0NTPWpbc8MY_1jJeou8Khea9jOZ8,5414
247
+ dbt/task/snapshot.py,sha256=XNe7Qg4tBfKliFnIQMQr6JtCSoUREt6uqsweJk4hGN0,2039
248
+ dbt/task/compute.py,sha256=vUNPImv86jWaj7tEnL2bQlr3UCgMPooWG0kKDeVlh8U,16919
249
+ dbt/task/clone.py,sha256=idH83g7iGJz6Sjj-NYF_BBzAVHGAKcgq42vOznGvQeo,6406
250
+ dbt/task/docs/index.html,sha256=mIIjEWVRcQRMrhACjTbhNLdRE2QBTPhARL171icIcRM,1709115
251
+ dbt/task/docs/generate.py,sha256=l9-RaIvJGceew29etJ4h8hoa-KPN8dUGOR4LppddqVw,27176
252
+ dbt/task/docs/__init__.py,sha256=fJAAr0OsOdzuS3ihetC9WQhL2h67Ah0H9BeFg2RqYlE,106
253
+ dbt/task/docs/serve.py,sha256=nY5wcvLbAzFYnIkSa7Pp1cR02yVW0hrBbDoS1r6xAPI,877
254
+ dbt/deps/git.py,sha256=TMj0XRbWmU8BOwC7Ubh0AFWJzxyyh6TljpnlW4Gqv3A,6446
255
+ dbt/deps/registry.py,sha256=swDkQPvkt6NhYW_VDfRiKe5MYXUEPhWl1qvHbJ6XC1Y,4540
256
+ dbt/deps/local.py,sha256=FzxfNtcbLriadOPdOZX6JNetvzklO6S-VgP4EMS2W-0,2507
257
+ dbt/deps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
258
+ dbt/deps/resolver.py,sha256=fhzl0xh6sg7IMwxh_OlKCf5COaj5-77L6216mMCJBdE,5067
259
+ dbt/deps/tarball.py,sha256=hpiexF_Xg7qylb4WisGSKVTC8HDVPJGODoXbYsA1P1A,4544
260
+ dbt/deps/base.py,sha256=zD58Gu2hgx1Vhgm-XFrSOVsYP8xwGJRjVINxp9iBAHo,4778
261
+ dbt/runners/exposure_runner.py,sha256=bhdFdhhb8zQroC2IonNZRCXc3qHKearuUO3vd0bnGa0,176
262
+ dbt/runners/__init__.py,sha256=T_njT-Z0o-yQFfD8l1ykgafLNKBRaI8agKDSM3xyXR4,93
263
+ dbt/runners/no_op_runner.py,sha256=QWUDhr1e6OayuOQLXdQEOP33kjwHpNAxA4Tup3sP-ew,1284
264
+ dbt/runners/saved_query_runner.py,sha256=S3ERUvQMG4f_FyueWz3AuvRKDbIMsQfrbdQJiARxtLk,181
265
+ dbt/events/logging.py,sha256=U5-H7Tpp42iKLZxCBA8dASZeR25TSmEjKC4OLydB7Z4,3761
266
+ dbt/events/__init__.py,sha256=uLA9ewNLA-mG16w-6ZZ9uqDsKUGa8RAWagw7npNsupg,454
267
+ dbt/events/types.py,sha256=H33A2vzcI5vxSgMfeZD8vKTgMPFaddTG_nzZkHXODAE,74304
268
+ dbt/events/base_types.py,sha256=GDOd8Wbr3MiSnK_MyW16XjlDrhdbmbptXnRLvtXIxog,961
269
+ dbt/events/core_types_pb2.py,sha256=Uyi6hVP6Vn9afppo33hC3n-kC4Ljl-l6sEZS6tC3-Qw,123
270
+ dvt_core-0.52.2.dist-info/RECORD,,
271
+ dvt_core-0.52.2.dist-info/WHEEL,sha256=SQ0RWtyPnHPLqVWH_Tib5lCSw2Mp1jiRR5LTh7CkGzY,110
272
+ dvt_core-0.52.2.dist-info/entry_points.txt,sha256=9t-RN8bbTEh78WVkzUAmmsmx81wbBNebQIatsbp27G8,40
273
+ dvt_core-0.52.2.dist-info/top_level.txt,sha256=IYq769GubHRjvZyQbJ9RbcLZjaeNa9fH8ucPLYGzO2Q,12
274
+ dvt_core-0.52.2.dist-info/METADATA,sha256=G4nBMcrjwfOdzY7k8cpHqkES0bHaDNK9vgMlcus0LVg,9461
275
+ dvt_cli/__init__.py,sha256=cxu5Eu-jJD-yUtQfzy0gntK-SMHp1eN6ydrDw7rYv8M,2503
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp310-cp310-macosx_10_9_x86_64
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ dvt = dvt_cli:dvt_cli
@@ -0,0 +1,2 @@
1
+ dbt
2
+ dvt_cli