sqlmesh 0.187.6.dev3__py3-none-any.whl → 0.187.6.dev5__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.
sqlmesh/_version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.187.6.dev3'
21
- __version_tuple__ = version_tuple = (0, 187, 6, 'dev3')
20
+ __version__ = version = '0.187.6.dev5'
21
+ __version_tuple__ = version_tuple = (0, 187, 6, 'dev5')
sqlmesh/dbt/loader.py CHANGED
@@ -28,7 +28,6 @@ from sqlmesh.utils import UniqueKeyDict
28
28
  from sqlmesh.utils.errors import ConfigError
29
29
  from sqlmesh.utils.jinja import (
30
30
  JinjaMacroRegistry,
31
- extract_macro_references_and_variables,
32
31
  make_jinja_registry,
33
32
  )
34
33
 
@@ -240,11 +239,11 @@ class DbtLoader(Loader):
240
239
  def _load_environment_statements(self, macros: MacroRegistry) -> t.List[EnvironmentStatements]:
241
240
  """Loads dbt's on_run_start, on_run_end hooks into sqlmesh's before_all, after_all statements respectively."""
242
241
 
243
- environment_statements: t.List[EnvironmentStatements] = []
242
+ hooks_by_package_name: t.Dict[str, EnvironmentStatements] = {}
243
+ project_names: t.Set[str] = set()
244
244
  dialect = self.config.dialect
245
245
  for project in self._load_projects():
246
246
  context = project.context
247
- hooks_by_package_name: t.Dict[str, EnvironmentStatements] = {}
248
247
  for package_name, package in project.packages.items():
249
248
  context.set_and_render_variables(package.variables, package_name)
250
249
  on_run_start: t.List[str] = [
@@ -256,18 +255,14 @@ class DbtLoader(Loader):
256
255
  for on_run_hook in sorted(package.on_run_end.values(), key=lambda h: h.index)
257
256
  ]
258
257
 
259
- if statements := on_run_start + on_run_end:
260
- jinja_references, used_variables = extract_macro_references_and_variables(
261
- *statements
262
- )
258
+ if on_run_start or on_run_end:
259
+ dependencies = Dependencies()
260
+ for hook in [*package.on_run_start.values(), *package.on_run_end.values()]:
261
+ dependencies = dependencies.union(hook.dependencies)
263
262
 
264
- statements_context = context.context_for_dependencies(
265
- Dependencies(
266
- variables=used_variables,
267
- )
268
- )
263
+ statements_context = context.context_for_dependencies(dependencies)
269
264
  jinja_registry = make_jinja_registry(
270
- statements_context.jinja_macros, package_name, jinja_references
265
+ statements_context.jinja_macros, package_name, set(dependencies.macros)
271
266
  )
272
267
  jinja_registry.add_globals(statements_context.jinja_globals)
273
268
 
@@ -283,15 +278,15 @@ class DbtLoader(Loader):
283
278
  python_env={},
284
279
  jinja_macros=jinja_registry,
285
280
  )
286
- # Project hooks should be executed first and then rest of the packages
287
- environment_statements = [
288
- statements
289
- for _, statements in sorted(
290
- hooks_by_package_name.items(),
291
- key=lambda item: 0 if item[0] == context.project_name else 1,
292
- )
293
- ]
294
- return environment_statements
281
+ project_names.add(package_name)
282
+
283
+ return [
284
+ statements
285
+ for _, statements in sorted(
286
+ hooks_by_package_name.items(),
287
+ key=lambda item: 0 if item[0] in project_names else 1,
288
+ )
289
+ ]
295
290
 
296
291
  def _compute_yaml_max_mtime_per_subfolder(self, root: Path) -> t.Dict[Path, float]:
297
292
  if not root.is_dir():
sqlmesh/dbt/manifest.py CHANGED
@@ -292,13 +292,24 @@ class ManifestHelper:
292
292
  sql = node.raw_code if DBT_VERSION >= (1, 3) else node.raw_sql # type: ignore
293
293
  node_name = node.name
294
294
  node_path = Path(node.original_file_path)
295
+
296
+ dependencies = Dependencies(
297
+ macros=_macro_references(self._manifest, node),
298
+ refs=_refs(node),
299
+ sources=_sources(node),
300
+ )
301
+ dependencies = dependencies.union(self._extra_dependencies(sql, node.package_name))
302
+ dependencies = dependencies.union(
303
+ self._flatten_dependencies_from_macros(dependencies.macros, node.package_name)
304
+ )
305
+
295
306
  if "on-run-start" in node.tags:
296
307
  self._on_run_start_per_package[node.package_name][node_name] = HookConfig(
297
- sql=sql, index=node.index or 0, path=node_path
308
+ sql=sql, index=node.index or 0, path=node_path, dependencies=dependencies
298
309
  )
299
310
  else:
300
311
  self._on_run_end_per_package[node.package_name][node_name] = HookConfig(
301
- sql=sql, index=node.index or 0, path=node_path
312
+ sql=sql, index=node.index or 0, path=node_path, dependencies=dependencies
302
313
  )
303
314
 
304
315
  @property
sqlmesh/dbt/package.py CHANGED
@@ -34,6 +34,7 @@ class HookConfig(PydanticModel):
34
34
  sql: str
35
35
  index: int
36
36
  path: Path
37
+ dependencies: Dependencies
37
38
 
38
39
 
39
40
  class Package(PydanticModel):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.187.6.dev3
3
+ Version: 0.187.6.dev5
4
4
  Summary: Next-generation data transformation framework
5
5
  Author-email: "TobikoData Inc." <engineering@tobikodata.com>
6
6
  License: Apache License
@@ -1,5 +1,5 @@
1
1
  sqlmesh/__init__.py,sha256=69xw6bTmi4cW90M-sl3g6wLDgxVcLHcKg1q8GS3lqyA,7466
2
- sqlmesh/_version.py,sha256=gnKjPZ0RbGM96b_40-Gv7evqHEJgHkMam9nCdrsG1XI,528
2
+ sqlmesh/_version.py,sha256=GUi5LwIkoCGfqcPhpacvHW-W-KbtH11PiHTo0Q57fOY,528
3
3
  sqlmesh/magics.py,sha256=JHorAZNtezf123jmTyNSoUC9yHmv-08hMP205PJmmIo,39750
4
4
  sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -127,10 +127,10 @@ sqlmesh/dbt/builtin.py,sha256=fyzv4qR1isfnID1oWz-r46oDQvS90DN5mMUEWgapvN8,15153
127
127
  sqlmesh/dbt/column.py,sha256=Kvj_N3D_QegcoNQG7VqRiqy-FRfupud-6ilhlykBOgE,1873
128
128
  sqlmesh/dbt/common.py,sha256=g4PAL-sEdlnfb_zT-WW3xh-oamyCUoK8dUiDEMVwDWI,7804
129
129
  sqlmesh/dbt/context.py,sha256=dxClM-G1IeMbP0v5yxC_va8QNU-uKghW2dBlSZHJOk0,10331
130
- sqlmesh/dbt/loader.py,sha256=H-ky9kNd7QgSvBvCXsf8le3E3v3RUhNJOwwPSH0ud1M,15760
131
- sqlmesh/dbt/manifest.py,sha256=iKfUWiqydIW3YnX6hqWAzRc-TmhiXfVFS7e29XJaS6E,22906
130
+ sqlmesh/dbt/loader.py,sha256=oDFj9OcWJxd72eN9u9gHM_bWj7T5EQuGnLViSdtLbMU,15472
131
+ sqlmesh/dbt/manifest.py,sha256=EONLFvJxl_w2SEPgFT1b2WaArQgNUODWZJLp7fuCWJI,23443
132
132
  sqlmesh/dbt/model.py,sha256=-TqeldZAqW-4g84Xi_16DpUD3atImk_9OHMbATIKYb8,26328
133
- sqlmesh/dbt/package.py,sha256=WM5Ve6o0QPW3rZxhw1xbr3yX2619I5KtHOKK1qe5mfU,4291
133
+ sqlmesh/dbt/package.py,sha256=IBBQueVB4_4C9tIk0-GUL-O2uibNxXu6W2a4AeHHcOU,4322
134
134
  sqlmesh/dbt/profile.py,sha256=Fz2c0dJNN0xBgYEogCIKBTByjNvlA2BVBzOLQCfdEfM,3788
135
135
  sqlmesh/dbt/project.py,sha256=4PJHPVWIKDd71J5__iICqEp21nFiijKjJkiE5kZIH5Y,3980
136
136
  sqlmesh/dbt/relation.py,sha256=3w_4_Dj-oZXUEdBqOl9U6twbt8S2gDNMaFRb3unqkE8,224
@@ -270,7 +270,7 @@ sqlmesh/utils/pydantic.py,sha256=I898jAFqa3qU6lG2uPpRebVFncOUo8ZrLWM_R3K3DHU,116
270
270
  sqlmesh/utils/rich.py,sha256=xNZyPCqEc4TAlJlsEthg-5eYUWpaizz0QjBzO7a1Yv4,1509
271
271
  sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
272
272
  sqlmesh/utils/yaml.py,sha256=np-WVcwmwsKghCgAj1OBBMsK1SXSRn4wR-H37cGiFr8,2282
273
- sqlmesh-0.187.6.dev3.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
273
+ sqlmesh-0.187.6.dev5.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
274
274
  web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
275
275
  web/client/dist/index.html,sha256=M50OuwjW63dRCS0Dz40Yecgvw9ecLFqizbTa6gv5Nd4,5472
276
276
  web/client/dist/assets/Audits-BPlxzqeG.js,sha256=TCx1qCjCGgmUSvH6HoPr5t8ztbRXMlOxrcW4o7hRjlA,1041
@@ -388,8 +388,8 @@ web/server/api/endpoints/models.py,sha256=ud-lRwriyI_OYg9tZchrBgeiXELiRTLNEodraf
388
388
  web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
389
389
  web/server/api/endpoints/plan.py,sha256=OYuQ_4dgbhG9ibTcX1a8mvYgH3ANxw9Fhbb4wg6QWqc,9222
390
390
  web/server/api/endpoints/table_diff.py,sha256=Wd5YxeKbZB7AkrDvqFgvV9ZQlnKYOF1n5W_w2EHE_Zw,2085
391
- sqlmesh-0.187.6.dev3.dist-info/METADATA,sha256=4hfZUjcGEGVnsPeyWhHl_0KjW48gnW8V0O5IhgWh5Sg,26493
392
- sqlmesh-0.187.6.dev3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
393
- sqlmesh-0.187.6.dev3.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
394
- sqlmesh-0.187.6.dev3.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
395
- sqlmesh-0.187.6.dev3.dist-info/RECORD,,
391
+ sqlmesh-0.187.6.dev5.dist-info/METADATA,sha256=iABynQh3DIRW5aOLpWJEzu8IHH19ycnQEcFAQ_zP-ek,26493
392
+ sqlmesh-0.187.6.dev5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
393
+ sqlmesh-0.187.6.dev5.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
394
+ sqlmesh-0.187.6.dev5.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
395
+ sqlmesh-0.187.6.dev5.dist-info/RECORD,,