dvt-core 1.11.0b4__py3-none-any.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.

Potentially problematic release.


This version of dvt-core might be problematic. Click here for more details.

Files changed (261) hide show
  1. dvt/__init__.py +7 -0
  2. dvt/_pydantic_shim.py +26 -0
  3. dvt/adapters/__init__.py +16 -0
  4. dvt/adapters/multi_adapter_manager.py +268 -0
  5. dvt/artifacts/__init__.py +0 -0
  6. dvt/artifacts/exceptions/__init__.py +1 -0
  7. dvt/artifacts/exceptions/schemas.py +31 -0
  8. dvt/artifacts/resources/__init__.py +116 -0
  9. dvt/artifacts/resources/base.py +68 -0
  10. dvt/artifacts/resources/types.py +93 -0
  11. dvt/artifacts/resources/v1/analysis.py +10 -0
  12. dvt/artifacts/resources/v1/catalog.py +23 -0
  13. dvt/artifacts/resources/v1/components.py +275 -0
  14. dvt/artifacts/resources/v1/config.py +282 -0
  15. dvt/artifacts/resources/v1/documentation.py +11 -0
  16. dvt/artifacts/resources/v1/exposure.py +52 -0
  17. dvt/artifacts/resources/v1/function.py +53 -0
  18. dvt/artifacts/resources/v1/generic_test.py +32 -0
  19. dvt/artifacts/resources/v1/group.py +22 -0
  20. dvt/artifacts/resources/v1/hook.py +11 -0
  21. dvt/artifacts/resources/v1/macro.py +30 -0
  22. dvt/artifacts/resources/v1/metric.py +173 -0
  23. dvt/artifacts/resources/v1/model.py +146 -0
  24. dvt/artifacts/resources/v1/owner.py +10 -0
  25. dvt/artifacts/resources/v1/saved_query.py +112 -0
  26. dvt/artifacts/resources/v1/seed.py +42 -0
  27. dvt/artifacts/resources/v1/semantic_layer_components.py +72 -0
  28. dvt/artifacts/resources/v1/semantic_model.py +315 -0
  29. dvt/artifacts/resources/v1/singular_test.py +14 -0
  30. dvt/artifacts/resources/v1/snapshot.py +92 -0
  31. dvt/artifacts/resources/v1/source_definition.py +85 -0
  32. dvt/artifacts/resources/v1/sql_operation.py +10 -0
  33. dvt/artifacts/resources/v1/unit_test_definition.py +78 -0
  34. dvt/artifacts/schemas/__init__.py +0 -0
  35. dvt/artifacts/schemas/base.py +191 -0
  36. dvt/artifacts/schemas/batch_results.py +24 -0
  37. dvt/artifacts/schemas/catalog/__init__.py +12 -0
  38. dvt/artifacts/schemas/catalog/v1/__init__.py +0 -0
  39. dvt/artifacts/schemas/catalog/v1/catalog.py +60 -0
  40. dvt/artifacts/schemas/freshness/__init__.py +1 -0
  41. dvt/artifacts/schemas/freshness/v3/__init__.py +0 -0
  42. dvt/artifacts/schemas/freshness/v3/freshness.py +159 -0
  43. dvt/artifacts/schemas/manifest/__init__.py +2 -0
  44. dvt/artifacts/schemas/manifest/v12/__init__.py +0 -0
  45. dvt/artifacts/schemas/manifest/v12/manifest.py +212 -0
  46. dvt/artifacts/schemas/results.py +148 -0
  47. dvt/artifacts/schemas/run/__init__.py +2 -0
  48. dvt/artifacts/schemas/run/v5/__init__.py +0 -0
  49. dvt/artifacts/schemas/run/v5/run.py +184 -0
  50. dvt/artifacts/schemas/upgrades/__init__.py +4 -0
  51. dvt/artifacts/schemas/upgrades/upgrade_manifest.py +174 -0
  52. dvt/artifacts/schemas/upgrades/upgrade_manifest_dbt_version.py +2 -0
  53. dvt/artifacts/utils/validation.py +153 -0
  54. dvt/cli/__init__.py +1 -0
  55. dvt/cli/context.py +16 -0
  56. dvt/cli/exceptions.py +56 -0
  57. dvt/cli/flags.py +558 -0
  58. dvt/cli/main.py +971 -0
  59. dvt/cli/option_types.py +121 -0
  60. dvt/cli/options.py +79 -0
  61. dvt/cli/params.py +803 -0
  62. dvt/cli/requires.py +478 -0
  63. dvt/cli/resolvers.py +32 -0
  64. dvt/cli/types.py +40 -0
  65. dvt/clients/__init__.py +0 -0
  66. dvt/clients/checked_load.py +82 -0
  67. dvt/clients/git.py +164 -0
  68. dvt/clients/jinja.py +206 -0
  69. dvt/clients/jinja_static.py +245 -0
  70. dvt/clients/registry.py +192 -0
  71. dvt/clients/yaml_helper.py +68 -0
  72. dvt/compilation.py +833 -0
  73. dvt/compute/__init__.py +26 -0
  74. dvt/compute/base.py +288 -0
  75. dvt/compute/engines/__init__.py +13 -0
  76. dvt/compute/engines/duckdb_engine.py +368 -0
  77. dvt/compute/engines/spark_engine.py +273 -0
  78. dvt/compute/query_analyzer.py +212 -0
  79. dvt/compute/router.py +483 -0
  80. dvt/config/__init__.py +4 -0
  81. dvt/config/catalogs.py +95 -0
  82. dvt/config/compute_config.py +406 -0
  83. dvt/config/profile.py +411 -0
  84. dvt/config/profiles_v2.py +464 -0
  85. dvt/config/project.py +893 -0
  86. dvt/config/renderer.py +232 -0
  87. dvt/config/runtime.py +491 -0
  88. dvt/config/selectors.py +209 -0
  89. dvt/config/utils.py +78 -0
  90. dvt/connectors/.gitignore +6 -0
  91. dvt/connectors/README.md +306 -0
  92. dvt/connectors/catalog.yml +217 -0
  93. dvt/connectors/download_connectors.py +300 -0
  94. dvt/constants.py +29 -0
  95. dvt/context/__init__.py +0 -0
  96. dvt/context/base.py +746 -0
  97. dvt/context/configured.py +136 -0
  98. dvt/context/context_config.py +350 -0
  99. dvt/context/docs.py +82 -0
  100. dvt/context/exceptions_jinja.py +179 -0
  101. dvt/context/macro_resolver.py +195 -0
  102. dvt/context/macros.py +171 -0
  103. dvt/context/manifest.py +73 -0
  104. dvt/context/providers.py +2198 -0
  105. dvt/context/query_header.py +14 -0
  106. dvt/context/secret.py +59 -0
  107. dvt/context/target.py +74 -0
  108. dvt/contracts/__init__.py +0 -0
  109. dvt/contracts/files.py +413 -0
  110. dvt/contracts/graph/__init__.py +0 -0
  111. dvt/contracts/graph/manifest.py +1904 -0
  112. dvt/contracts/graph/metrics.py +98 -0
  113. dvt/contracts/graph/model_config.py +71 -0
  114. dvt/contracts/graph/node_args.py +42 -0
  115. dvt/contracts/graph/nodes.py +1806 -0
  116. dvt/contracts/graph/semantic_manifest.py +233 -0
  117. dvt/contracts/graph/unparsed.py +812 -0
  118. dvt/contracts/project.py +417 -0
  119. dvt/contracts/results.py +53 -0
  120. dvt/contracts/selection.py +23 -0
  121. dvt/contracts/sql.py +86 -0
  122. dvt/contracts/state.py +69 -0
  123. dvt/contracts/util.py +46 -0
  124. dvt/deprecations.py +347 -0
  125. dvt/deps/__init__.py +0 -0
  126. dvt/deps/base.py +153 -0
  127. dvt/deps/git.py +196 -0
  128. dvt/deps/local.py +80 -0
  129. dvt/deps/registry.py +131 -0
  130. dvt/deps/resolver.py +149 -0
  131. dvt/deps/tarball.py +121 -0
  132. dvt/docs/source/_ext/dbt_click.py +118 -0
  133. dvt/docs/source/conf.py +32 -0
  134. dvt/env_vars.py +64 -0
  135. dvt/event_time/event_time.py +40 -0
  136. dvt/event_time/sample_window.py +60 -0
  137. dvt/events/__init__.py +16 -0
  138. dvt/events/base_types.py +37 -0
  139. dvt/events/core_types_pb2.py +2 -0
  140. dvt/events/logging.py +109 -0
  141. dvt/events/types.py +2534 -0
  142. dvt/exceptions.py +1487 -0
  143. dvt/flags.py +89 -0
  144. dvt/graph/__init__.py +11 -0
  145. dvt/graph/cli.py +248 -0
  146. dvt/graph/graph.py +172 -0
  147. dvt/graph/queue.py +213 -0
  148. dvt/graph/selector.py +375 -0
  149. dvt/graph/selector_methods.py +976 -0
  150. dvt/graph/selector_spec.py +223 -0
  151. dvt/graph/thread_pool.py +18 -0
  152. dvt/hooks.py +21 -0
  153. dvt/include/README.md +49 -0
  154. dvt/include/__init__.py +3 -0
  155. dvt/include/global_project.py +4 -0
  156. dvt/include/starter_project/.gitignore +4 -0
  157. dvt/include/starter_project/README.md +15 -0
  158. dvt/include/starter_project/__init__.py +3 -0
  159. dvt/include/starter_project/analyses/.gitkeep +0 -0
  160. dvt/include/starter_project/dvt_project.yml +36 -0
  161. dvt/include/starter_project/macros/.gitkeep +0 -0
  162. dvt/include/starter_project/models/example/my_first_dbt_model.sql +27 -0
  163. dvt/include/starter_project/models/example/my_second_dbt_model.sql +6 -0
  164. dvt/include/starter_project/models/example/schema.yml +21 -0
  165. dvt/include/starter_project/seeds/.gitkeep +0 -0
  166. dvt/include/starter_project/snapshots/.gitkeep +0 -0
  167. dvt/include/starter_project/tests/.gitkeep +0 -0
  168. dvt/internal_deprecations.py +27 -0
  169. dvt/jsonschemas/__init__.py +3 -0
  170. dvt/jsonschemas/jsonschemas.py +309 -0
  171. dvt/jsonschemas/project/0.0.110.json +4717 -0
  172. dvt/jsonschemas/project/0.0.85.json +2015 -0
  173. dvt/jsonschemas/resources/0.0.110.json +2636 -0
  174. dvt/jsonschemas/resources/0.0.85.json +2536 -0
  175. dvt/jsonschemas/resources/latest.json +6773 -0
  176. dvt/links.py +4 -0
  177. dvt/materializations/__init__.py +0 -0
  178. dvt/materializations/incremental/__init__.py +0 -0
  179. dvt/materializations/incremental/microbatch.py +235 -0
  180. dvt/mp_context.py +8 -0
  181. dvt/node_types.py +37 -0
  182. dvt/parser/__init__.py +23 -0
  183. dvt/parser/analysis.py +21 -0
  184. dvt/parser/base.py +549 -0
  185. dvt/parser/common.py +267 -0
  186. dvt/parser/docs.py +52 -0
  187. dvt/parser/fixtures.py +51 -0
  188. dvt/parser/functions.py +30 -0
  189. dvt/parser/generic_test.py +100 -0
  190. dvt/parser/generic_test_builders.py +334 -0
  191. dvt/parser/hooks.py +119 -0
  192. dvt/parser/macros.py +137 -0
  193. dvt/parser/manifest.py +2204 -0
  194. dvt/parser/models.py +574 -0
  195. dvt/parser/partial.py +1179 -0
  196. dvt/parser/read_files.py +445 -0
  197. dvt/parser/schema_generic_tests.py +423 -0
  198. dvt/parser/schema_renderer.py +111 -0
  199. dvt/parser/schema_yaml_readers.py +936 -0
  200. dvt/parser/schemas.py +1467 -0
  201. dvt/parser/search.py +149 -0
  202. dvt/parser/seeds.py +28 -0
  203. dvt/parser/singular_test.py +20 -0
  204. dvt/parser/snapshots.py +44 -0
  205. dvt/parser/sources.py +557 -0
  206. dvt/parser/sql.py +63 -0
  207. dvt/parser/unit_tests.py +622 -0
  208. dvt/plugins/__init__.py +20 -0
  209. dvt/plugins/contracts.py +10 -0
  210. dvt/plugins/exceptions.py +2 -0
  211. dvt/plugins/manager.py +164 -0
  212. dvt/plugins/manifest.py +21 -0
  213. dvt/profiler.py +20 -0
  214. dvt/py.typed +1 -0
  215. dvt/runners/__init__.py +2 -0
  216. dvt/runners/exposure_runner.py +7 -0
  217. dvt/runners/no_op_runner.py +46 -0
  218. dvt/runners/saved_query_runner.py +7 -0
  219. dvt/selected_resources.py +8 -0
  220. dvt/task/__init__.py +0 -0
  221. dvt/task/base.py +504 -0
  222. dvt/task/build.py +197 -0
  223. dvt/task/clean.py +57 -0
  224. dvt/task/clone.py +162 -0
  225. dvt/task/compile.py +151 -0
  226. dvt/task/compute.py +366 -0
  227. dvt/task/debug.py +650 -0
  228. dvt/task/deps.py +280 -0
  229. dvt/task/docs/__init__.py +3 -0
  230. dvt/task/docs/generate.py +408 -0
  231. dvt/task/docs/index.html +250 -0
  232. dvt/task/docs/serve.py +28 -0
  233. dvt/task/freshness.py +323 -0
  234. dvt/task/function.py +122 -0
  235. dvt/task/group_lookup.py +46 -0
  236. dvt/task/init.py +374 -0
  237. dvt/task/list.py +237 -0
  238. dvt/task/printer.py +176 -0
  239. dvt/task/profiles.py +256 -0
  240. dvt/task/retry.py +175 -0
  241. dvt/task/run.py +1146 -0
  242. dvt/task/run_operation.py +142 -0
  243. dvt/task/runnable.py +802 -0
  244. dvt/task/seed.py +104 -0
  245. dvt/task/show.py +150 -0
  246. dvt/task/snapshot.py +57 -0
  247. dvt/task/sql.py +111 -0
  248. dvt/task/test.py +464 -0
  249. dvt/tests/fixtures/__init__.py +1 -0
  250. dvt/tests/fixtures/project.py +620 -0
  251. dvt/tests/util.py +651 -0
  252. dvt/tracking.py +529 -0
  253. dvt/utils/__init__.py +3 -0
  254. dvt/utils/artifact_upload.py +151 -0
  255. dvt/utils/utils.py +408 -0
  256. dvt/version.py +249 -0
  257. dvt_core-1.11.0b4.dist-info/METADATA +252 -0
  258. dvt_core-1.11.0b4.dist-info/RECORD +261 -0
  259. dvt_core-1.11.0b4.dist-info/WHEEL +5 -0
  260. dvt_core-1.11.0b4.dist-info/entry_points.txt +2 -0
  261. dvt_core-1.11.0b4.dist-info/top_level.txt +1 -0
@@ -0,0 +1,300 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Download JDBC connectors for DVT Spark integration.
4
+
5
+ This script downloads JDBC drivers from Maven Central and places them in the
6
+ connectors directory for use by DVT's Spark compute engine.
7
+
8
+ Usage:
9
+ python download_connectors.py [--all] [--connector=NAME] [--list]
10
+
11
+ Options:
12
+ --all Download all connectors
13
+ --connector=NAME Download specific connector
14
+ --list List all available connectors
15
+ --output-dir=PATH Output directory (default: ./jars)
16
+ --clean Remove existing JARs before downloading
17
+ """
18
+
19
+ import argparse
20
+ import hashlib
21
+ import os
22
+ import sys
23
+ import urllib.request
24
+ from pathlib import Path
25
+ from typing import Dict, List, Optional
26
+
27
+ import yaml
28
+
29
+
30
+ class ConnectorDownloader:
31
+ """Downloads and manages JDBC connectors."""
32
+
33
+ MAVEN_CENTRAL = "https://repo1.maven.org/maven2"
34
+
35
+ def __init__(self, catalog_path: Path, output_dir: Path):
36
+ """
37
+ Initialize downloader.
38
+
39
+ Args:
40
+ catalog_path: Path to connector catalog YAML
41
+ output_dir: Directory to save JARs
42
+ """
43
+ self.catalog_path = catalog_path
44
+ self.output_dir = output_dir
45
+ self.catalog = self._load_catalog()
46
+
47
+ def _load_catalog(self) -> Dict:
48
+ """Load connector catalog from YAML."""
49
+ with open(self.catalog_path) as f:
50
+ return yaml.safe_load(f)
51
+
52
+ def list_connectors(self) -> None:
53
+ """List all available connectors."""
54
+ print("\n" + "=" * 70)
55
+ print("DVT JDBC Connector Catalog")
56
+ print("=" * 70)
57
+ print(f"\nVersion: {self.catalog.get('version', 'unknown')}\n")
58
+
59
+ connectors = self.catalog.get("connectors", {})
60
+ print(f"Available connectors: {len(connectors)}\n")
61
+
62
+ for name, info in sorted(connectors.items()):
63
+ print(f" {name:20s} - {info['description']}")
64
+ print(f" {'':20s} Maven: {info['maven_coordinates']}")
65
+ print(f" {'':20s} License: {info['license']}")
66
+ print()
67
+
68
+ def _maven_to_url(self, maven_coords: str) -> str:
69
+ """
70
+ Convert Maven coordinates to download URL.
71
+
72
+ Args:
73
+ maven_coords: Maven coordinates (group:artifact:version)
74
+
75
+ Returns:
76
+ Download URL
77
+ """
78
+ parts = maven_coords.split(":")
79
+ if len(parts) != 3:
80
+ raise ValueError(f"Invalid Maven coordinates: {maven_coords}")
81
+
82
+ group, artifact, version = parts
83
+ group_path = group.replace(".", "/")
84
+
85
+ return (
86
+ f"{self.MAVEN_CENTRAL}/{group_path}/{artifact}/{version}/"
87
+ f"{artifact}-{version}.jar"
88
+ )
89
+
90
+ def download_connector(self, name: str, force: bool = False) -> bool:
91
+ """
92
+ Download a specific connector.
93
+
94
+ Args:
95
+ name: Connector name
96
+ force: Force re-download if already exists
97
+
98
+ Returns:
99
+ True if successful, False otherwise
100
+ """
101
+ connectors = self.catalog.get("connectors", {})
102
+ if name not in connectors:
103
+ print(f"Error: Connector '{name}' not found in catalog")
104
+ return False
105
+
106
+ connector = connectors[name]
107
+ maven_coords = connector["maven_coordinates"]
108
+ url = self._maven_to_url(maven_coords)
109
+
110
+ # Extract filename from Maven coordinates
111
+ parts = maven_coords.split(":")
112
+ artifact, version = parts[1], parts[2]
113
+ filename = f"{artifact}-{version}.jar"
114
+ output_path = self.output_dir / filename
115
+
116
+ # Check if already exists
117
+ if output_path.exists() and not force:
118
+ print(f"✓ {name}: Already downloaded ({filename})")
119
+ return True
120
+
121
+ # Download
122
+ print(f"↓ {name}: Downloading from Maven Central...")
123
+ print(f" URL: {url}")
124
+
125
+ try:
126
+ # Ensure output directory exists
127
+ self.output_dir.mkdir(parents=True, exist_ok=True)
128
+
129
+ # Download with progress
130
+ def progress_hook(block_num, block_size, total_size):
131
+ if total_size > 0:
132
+ percent = min(100, block_num * block_size * 100 / total_size)
133
+ print(f"\r Progress: {percent:.1f}%", end="", flush=True)
134
+
135
+ urllib.request.urlretrieve(url, output_path, progress_hook)
136
+ print() # New line after progress
137
+
138
+ # Verify download
139
+ if output_path.exists():
140
+ size_mb = output_path.stat().st_size / (1024 * 1024)
141
+ print(f"✓ {name}: Downloaded successfully ({size_mb:.2f} MB)")
142
+ print(f" Saved to: {output_path}")
143
+ return True
144
+ else:
145
+ print(f"✗ {name}: Download failed")
146
+ return False
147
+
148
+ except Exception as e:
149
+ print(f"✗ {name}: Download failed - {str(e)}")
150
+ if output_path.exists():
151
+ output_path.unlink() # Clean up partial download
152
+ return False
153
+
154
+ def download_all(self, force: bool = False) -> Dict[str, bool]:
155
+ """
156
+ Download all connectors.
157
+
158
+ Args:
159
+ force: Force re-download if already exists
160
+
161
+ Returns:
162
+ Dictionary mapping connector names to success status
163
+ """
164
+ connectors = self.catalog.get("connectors", {})
165
+ results = {}
166
+
167
+ print(f"\nDownloading {len(connectors)} connectors...\n")
168
+
169
+ for i, name in enumerate(sorted(connectors.keys()), 1):
170
+ print(f"[{i}/{len(connectors)}] ", end="")
171
+ results[name] = self.download_connector(name, force)
172
+ print()
173
+
174
+ return results
175
+
176
+ def clean_jars(self) -> None:
177
+ """Remove all downloaded JARs."""
178
+ if not self.output_dir.exists():
179
+ print("No JARs directory found")
180
+ return
181
+
182
+ jar_files = list(self.output_dir.glob("*.jar"))
183
+ if not jar_files:
184
+ print("No JARs to clean")
185
+ return
186
+
187
+ print(f"\nRemoving {len(jar_files)} JAR files from {self.output_dir}...")
188
+ for jar in jar_files:
189
+ jar.unlink()
190
+ print(f" Removed: {jar.name}")
191
+
192
+ print("\nCleanup complete")
193
+
194
+
195
+ def main():
196
+ """Main entry point."""
197
+ parser = argparse.ArgumentParser(
198
+ description="Download JDBC connectors for DVT",
199
+ formatter_class=argparse.RawDescriptionHelpFormatter,
200
+ epilog=__doc__,
201
+ )
202
+
203
+ parser.add_argument(
204
+ "--all",
205
+ action="store_true",
206
+ help="Download all connectors",
207
+ )
208
+
209
+ parser.add_argument(
210
+ "--connector",
211
+ type=str,
212
+ help="Download specific connector by name",
213
+ )
214
+
215
+ parser.add_argument(
216
+ "--list",
217
+ action="store_true",
218
+ help="List all available connectors",
219
+ )
220
+
221
+ parser.add_argument(
222
+ "--output-dir",
223
+ type=Path,
224
+ default=Path("jars"),
225
+ help="Output directory for JARs (default: ./jars)",
226
+ )
227
+
228
+ parser.add_argument(
229
+ "--clean",
230
+ action="store_true",
231
+ help="Remove existing JARs before downloading",
232
+ )
233
+
234
+ parser.add_argument(
235
+ "--force",
236
+ action="store_true",
237
+ help="Force re-download even if JAR exists",
238
+ )
239
+
240
+ args = parser.parse_args()
241
+
242
+ # Find catalog file
243
+ script_dir = Path(__file__).parent
244
+ catalog_path = script_dir / "catalog.yml"
245
+
246
+ if not catalog_path.exists():
247
+ print(f"Error: Catalog file not found: {catalog_path}")
248
+ sys.exit(1)
249
+
250
+ # Initialize downloader
251
+ downloader = ConnectorDownloader(catalog_path, args.output_dir)
252
+
253
+ # Execute command
254
+ if args.list:
255
+ downloader.list_connectors()
256
+
257
+ elif args.clean:
258
+ downloader.clean_jars()
259
+
260
+ elif args.all:
261
+ if args.clean:
262
+ downloader.clean_jars()
263
+ print()
264
+
265
+ results = downloader.download_all(args.force)
266
+
267
+ # Summary
268
+ success_count = sum(1 for v in results.values() if v)
269
+ fail_count = len(results) - success_count
270
+
271
+ print("=" * 70)
272
+ print("Download Summary")
273
+ print("=" * 70)
274
+ print(f"Total connectors: {len(results)}")
275
+ print(f"Successful: {success_count}")
276
+ print(f"Failed: {fail_count}")
277
+
278
+ if fail_count > 0:
279
+ print("\nFailed connectors:")
280
+ for name, success in results.items():
281
+ if not success:
282
+ print(f" - {name}")
283
+
284
+ sys.exit(0 if fail_count == 0 else 1)
285
+
286
+ elif args.connector:
287
+ if args.clean:
288
+ downloader.clean_jars()
289
+ print()
290
+
291
+ success = downloader.download_connector(args.connector, args.force)
292
+ sys.exit(0 if success else 1)
293
+
294
+ else:
295
+ parser.print_help()
296
+ sys.exit(1)
297
+
298
+
299
+ if __name__ == "__main__":
300
+ main()
dvt/constants.py ADDED
@@ -0,0 +1,29 @@
1
+ from dbt_semantic_interfaces.type_enums import TimeGranularity
2
+
3
+ DEFAULT_ENV_PLACEHOLDER = "DBT_DEFAULT_PLACEHOLDER"
4
+
5
+ SECRET_PLACEHOLDER = "$$$DBT_SECRET_START$$${}$$$DBT_SECRET_END$$$"
6
+
7
+ MAXIMUM_SEED_SIZE = 1 * 1024 * 1024
8
+ MAXIMUM_SEED_SIZE_NAME = "1MB"
9
+
10
+ PIN_PACKAGE_URL = (
11
+ "https://docs.getdbt.com/docs/package-management#section-specifying-package-versions"
12
+ )
13
+
14
+ DVT_PROJECT_FILE_NAME = "dvt_project.yml"
15
+ DBT_PROJECT_FILE_NAME = "dbt_project.yml" # Deprecated, use DVT_PROJECT_FILE_NAME
16
+ PACKAGES_FILE_NAME = "packages.yml"
17
+ DEPENDENCIES_FILE_NAME = "dependencies.yml"
18
+ PACKAGE_LOCK_FILE_NAME = "package-lock.yml"
19
+ MANIFEST_FILE_NAME = "manifest.json"
20
+ SEMANTIC_MANIFEST_FILE_NAME = "semantic_manifest.json"
21
+ LEGACY_TIME_SPINE_MODEL_NAME = "metricflow_time_spine"
22
+ LEGACY_TIME_SPINE_GRANULARITY = TimeGranularity.DAY
23
+ MINIMUM_REQUIRED_TIME_SPINE_GRANULARITY = TimeGranularity.DAY
24
+ PARTIAL_PARSE_FILE_NAME = "partial_parse.msgpack"
25
+ PACKAGE_LOCK_HASH_KEY = "sha1_hash"
26
+ CATALOGS_FILE_NAME = "catalogs.yml"
27
+ RUN_RESULTS_FILE_NAME = "run_results.json"
28
+ CATALOG_FILENAME = "catalog.json"
29
+ SOURCE_RESULT_FILE_NAME = "sources.json"
File without changes