sqlmesh 0.202.2.dev15__py3-none-any.whl → 0.203.1.dev1__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.202.2.dev15'
21
- __version_tuple__ = version_tuple = (0, 202, 2, 'dev15')
20
+ __version__ = version = '0.203.1.dev1'
21
+ __version_tuple__ = version_tuple = (0, 203, 1, 'dev1')
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import typing as t
4
4
 
5
+ from sqlglot import exp
5
6
  from sqlmesh.core.dialect import parse_one, extract_func_call
6
7
  from sqlmesh.core.config.base import BaseConfig
7
8
  from sqlmesh.core.model.kind import (
@@ -41,6 +42,9 @@ class ModelDefaultsConfig(BaseConfig):
41
42
  allow_partials: Whether the models can process partial (incomplete) data intervals.
42
43
  enabled: Whether the models are enabled.
43
44
  interval_unit: The temporal granularity of the models data intervals. By default computed from cron.
45
+ pre_statements: The list of SQL statements that get executed before a model runs.
46
+ post_statements: The list of SQL statements that get executed before a model runs.
47
+ on_virtual_update: The list of SQL statements to be executed after the virtual update.
44
48
 
45
49
  """
46
50
 
@@ -61,6 +65,9 @@ class ModelDefaultsConfig(BaseConfig):
61
65
  interval_unit: t.Optional[t.Union[str, IntervalUnit]] = None
62
66
  enabled: t.Optional[t.Union[str, bool]] = None
63
67
  formatting: t.Optional[t.Union[str, bool]] = None
68
+ pre_statements: t.Optional[t.List[t.Union[str, exp.Expression]]] = None
69
+ post_statements: t.Optional[t.List[t.Union[str, exp.Expression]]] = None
70
+ on_virtual_update: t.Optional[t.List[t.Union[str, exp.Expression]]] = None
64
71
 
65
72
  _model_kind_validator = model_kind_validator
66
73
  _on_destructive_change_validator = on_destructive_change_validator
@@ -2472,6 +2472,24 @@ def _create_model(
2472
2472
 
2473
2473
  statements: t.List[t.Union[exp.Expression, t.Tuple[exp.Expression, bool]]] = []
2474
2474
 
2475
+ # Merge default pre_statements with model-specific pre_statements
2476
+ if "pre_statements" in defaults:
2477
+ kwargs["pre_statements"] = [
2478
+ exp.maybe_parse(stmt, dialect=dialect) for stmt in defaults["pre_statements"]
2479
+ ] + kwargs.get("pre_statements", [])
2480
+
2481
+ # Merge default post_statements with model-specific post_statements
2482
+ if "post_statements" in defaults:
2483
+ kwargs["post_statements"] = [
2484
+ exp.maybe_parse(stmt, dialect=dialect) for stmt in defaults["post_statements"]
2485
+ ] + kwargs.get("post_statements", [])
2486
+
2487
+ # Merge default on_virtual_update with model-specific on_virtual_update
2488
+ if "on_virtual_update" in defaults:
2489
+ kwargs["on_virtual_update"] = [
2490
+ exp.maybe_parse(stmt, dialect=dialect) for stmt in defaults["on_virtual_update"]
2491
+ ] + kwargs.get("on_virtual_update", [])
2492
+
2475
2493
  if "pre_statements" in kwargs:
2476
2494
  statements.extend(kwargs["pre_statements"])
2477
2495
  if "query" in kwargs:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.202.2.dev15
3
+ Version: 0.203.1.dev1
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=QjwaamJIdW7voXoS880yAx7tHm-Im4_mqGA-XJgafos,7631
2
- sqlmesh/_version.py,sha256=XoklTZ1eJ1V2hS1ailr4G_6yE_ToDLeD4HZPRj3npKM,530
2
+ sqlmesh/_version.py,sha256=ZLXnvdan_oEjfZqAVUV9FngaSOX-5gE8LmtTZYbsVU8,528
3
3
  sqlmesh/magics.py,sha256=bEzYqXHcM0P3CjyUZ1O9arlmXAdLAhoglKbQ29fD9AE,41842
4
4
  sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -49,7 +49,7 @@ sqlmesh/core/config/janitor.py,sha256=NP0i51V8XwMrHw8uuwQknivuudIleNiFBtBnMuXmfI
49
49
  sqlmesh/core/config/linter.py,sha256=4Fh6UgY5FrRD9tk_R41Y-M_r91Wh7EQW3Pc1IdRN9Cg,1287
50
50
  sqlmesh/core/config/loader.py,sha256=Cml5ei1Y1SVeXu4Q47Yu3JWeV7vy6Pu8_5i7DeU0scs,8560
51
51
  sqlmesh/core/config/migration.py,sha256=3lZIlmIcQH3_hIEm3Y3jFtvpw0YXzRzAnk4OdiklO6M,408
52
- sqlmesh/core/config/model.py,sha256=GIz9kAfKD2NEXNzCZCQ17-CK2OtqN6WgeG1fvibcChM,3650
52
+ sqlmesh/core/config/model.py,sha256=xDKIHD8WIzsPu7DfpybPM3bLobppttCZjvD3TTVnwps,4182
53
53
  sqlmesh/core/config/naming.py,sha256=KVGaxUgswoQajXR_cHFJvgkmEFcU1V182GkOH1SJxuE,326
54
54
  sqlmesh/core/config/plan.py,sha256=wJEDfocMcKSMN0-5gVojjIcmJZ0376LJU3tkGMTm-Zc,1558
55
55
  sqlmesh/core/config/root.py,sha256=-ev6H4Qi0rlwiO8NyvgGXsunkvpVpaRZD6ZCuTDF4V4,16223
@@ -88,7 +88,7 @@ sqlmesh/core/model/__init__.py,sha256=C8GRZ53xuXEA9hQv3BQS9pNNyd9rZ06R_B96UYGhDu
88
88
  sqlmesh/core/model/cache.py,sha256=csun0RJguHzKX6-qITcOs4fVP4f8_Ts8qiUVV4sHY6Q,7869
89
89
  sqlmesh/core/model/common.py,sha256=mUVJZ1otbcY9IPqeJQWxZOgv_2QnYEEKdFwcPvZGe9c,17961
90
90
  sqlmesh/core/model/decorator.py,sha256=wUUg5t0K559tV9Pqt6FE2EWXt5TPGb4wF2Yg4B4hX4w,9251
91
- sqlmesh/core/model/definition.py,sha256=B6sFjxUcxqp3B1aFhP9C8izvTzweC8Cwasud0lUdMcU,113033
91
+ sqlmesh/core/model/definition.py,sha256=UsRFDlO3A5so4HM2_x6M0sdTR-VlTIxw1d-T_gxS_9Q,113897
92
92
  sqlmesh/core/model/kind.py,sha256=8Dp8yiTiXltboZWrB2FJ-LQ3zx4Fv_5Tj0KdUIPwCHI,36358
93
93
  sqlmesh/core/model/meta.py,sha256=D9InI9M2-IXeb34vkXNQSLALL8xVXjZ_LXwI-Tqxm7I,21197
94
94
  sqlmesh/core/model/schema.py,sha256=_HMYfzK9wWXh7_CQDIIGnuQUD4aiX3o5D2cRp2sERzc,3387
@@ -285,7 +285,7 @@ sqlmesh/utils/pydantic.py,sha256=o_NsXbIpDqNpUA1Uc5xF0ZzoXQYYB0DfHwdRxBwXPNk,120
285
285
  sqlmesh/utils/rich.py,sha256=cwQ5nJ6sgz64xHtoh6_ec7ReV5YpsOGhMtUJnwoRfEI,3549
286
286
  sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
287
287
  sqlmesh/utils/yaml.py,sha256=hvo5lmybYLcIx4p6CQwufS8X4MbwS60lEBnCmYJCXmU,2336
288
- sqlmesh-0.202.2.dev15.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
288
+ sqlmesh-0.203.1.dev1.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
289
289
  web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
290
290
  web/client/dist/index.html,sha256=SXykdSRNgrT1k6I2dPZPEfpxPjIsi8-yVFijt-naSA4,5472
291
291
  web/client/dist/assets/Audits-Jm353fhk.js,sha256=ry6b5IKT3hLAfD5C3T2BqxulfauEV0n0YZ2vsP4eQ_U,1041
@@ -403,8 +403,8 @@ web/server/api/endpoints/models.py,sha256=kwj0s7uve3iZSMfmjkoPVMFMeY1sD0peTeyrWf
403
403
  web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
404
404
  web/server/api/endpoints/plan.py,sha256=bbbY50W_2MsZSTxOHWMKz0tbIm75nsRSlPy8GI2fg9Q,9306
405
405
  web/server/api/endpoints/table_diff.py,sha256=SCy3-pr5x6bEEiOaZGCDbiHQhpgxwmnz3Acqa2Ie6jI,2090
406
- sqlmesh-0.202.2.dev15.dist-info/METADATA,sha256=AjAaLSmENS-hQgq1rpZgPW1DRBYNyWuUfig4VXqx3m0,26679
407
- sqlmesh-0.202.2.dev15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
408
- sqlmesh-0.202.2.dev15.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
409
- sqlmesh-0.202.2.dev15.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
410
- sqlmesh-0.202.2.dev15.dist-info/RECORD,,
406
+ sqlmesh-0.203.1.dev1.dist-info/METADATA,sha256=VvUoHijuK5QZozP_iUKKhYKaxCzSYXp_Cpg3msjsarc,26678
407
+ sqlmesh-0.203.1.dev1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
408
+ sqlmesh-0.203.1.dev1.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
409
+ sqlmesh-0.203.1.dev1.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
410
+ sqlmesh-0.203.1.dev1.dist-info/RECORD,,