sqlmesh 0.199.1.dev30__py3-none-any.whl → 0.199.1.dev31__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 +2 -2
- sqlmesh/core/model/common.py +13 -0
- sqlmesh/core/model/definition.py +14 -6
- {sqlmesh-0.199.1.dev30.dist-info → sqlmesh-0.199.1.dev31.dist-info}/METADATA +1 -1
- {sqlmesh-0.199.1.dev30.dist-info → sqlmesh-0.199.1.dev31.dist-info}/RECORD +9 -9
- {sqlmesh-0.199.1.dev30.dist-info → sqlmesh-0.199.1.dev31.dist-info}/WHEEL +0 -0
- {sqlmesh-0.199.1.dev30.dist-info → sqlmesh-0.199.1.dev31.dist-info}/entry_points.txt +0 -0
- {sqlmesh-0.199.1.dev30.dist-info → sqlmesh-0.199.1.dev31.dist-info}/licenses/LICENSE +0 -0
- {sqlmesh-0.199.1.dev30.dist-info → sqlmesh-0.199.1.dev31.dist-info}/top_level.txt +0 -0
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.199.1.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 199, 1, '
|
|
20
|
+
__version__ = version = '0.199.1.dev31'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 199, 1, 'dev31')
|
sqlmesh/core/model/common.py
CHANGED
|
@@ -440,6 +440,19 @@ def sorted_python_env_payloads(python_env: t.Dict[str, Executable]) -> t.List[st
|
|
|
440
440
|
return [_executable_to_str(k, v) for k, v in sort_python_env(python_env)]
|
|
441
441
|
|
|
442
442
|
|
|
443
|
+
def parse_strings_with_macro_refs(value: t.Any, dialect: DialectType) -> t.Any:
|
|
444
|
+
if isinstance(value, str) and "@" in value:
|
|
445
|
+
return exp.maybe_parse(value, dialect=dialect)
|
|
446
|
+
|
|
447
|
+
if isinstance(value, dict):
|
|
448
|
+
for k, v in dict(value).items():
|
|
449
|
+
value[k] = parse_strings_with_macro_refs(v, dialect)
|
|
450
|
+
elif isinstance(value, list):
|
|
451
|
+
value = [parse_strings_with_macro_refs(v, dialect) for v in value]
|
|
452
|
+
|
|
453
|
+
return value
|
|
454
|
+
|
|
455
|
+
|
|
443
456
|
expression_validator: t.Callable = field_validator(
|
|
444
457
|
"query",
|
|
445
458
|
"expressions_",
|
sqlmesh/core/model/definition.py
CHANGED
|
@@ -27,6 +27,7 @@ from sqlmesh.core.model.common import (
|
|
|
27
27
|
expression_validator,
|
|
28
28
|
make_python_env,
|
|
29
29
|
parse_dependencies,
|
|
30
|
+
parse_strings_with_macro_refs,
|
|
30
31
|
single_value_or_tuple,
|
|
31
32
|
sorted_python_env_payloads,
|
|
32
33
|
validate_extra_and_required_fields,
|
|
@@ -72,13 +73,14 @@ if t.TYPE_CHECKING:
|
|
|
72
73
|
|
|
73
74
|
logger = logging.getLogger(__name__)
|
|
74
75
|
|
|
76
|
+
|
|
77
|
+
UNRENDERABLE_MODEL_FIELDS = {"cron", "description"}
|
|
78
|
+
|
|
75
79
|
PROPERTIES = {"physical_properties", "session_properties", "virtual_properties"}
|
|
76
80
|
|
|
77
81
|
RUNTIME_RENDERED_MODEL_FIELDS = {
|
|
78
82
|
"audits",
|
|
79
83
|
"signals",
|
|
80
|
-
"description",
|
|
81
|
-
"cron",
|
|
82
84
|
"merge_filter",
|
|
83
85
|
} | PROPERTIES
|
|
84
86
|
|
|
@@ -2469,6 +2471,9 @@ def _create_model(
|
|
|
2469
2471
|
if isinstance(property_values, exp.Tuple):
|
|
2470
2472
|
statements.extend(property_values.expressions)
|
|
2471
2473
|
|
|
2474
|
+
if isinstance(getattr(kwargs.get("kind"), "merge_filter", None), exp.Expression):
|
|
2475
|
+
statements.append(kwargs["kind"].merge_filter)
|
|
2476
|
+
|
|
2472
2477
|
jinja_macro_references, used_variables = extract_macro_references_and_variables(
|
|
2473
2478
|
*(gen(e if isinstance(e, exp.Expression) else e[0]) for e in statements)
|
|
2474
2479
|
)
|
|
@@ -2751,21 +2756,24 @@ def render_meta_fields(
|
|
|
2751
2756
|
|
|
2752
2757
|
for field_name, field_info in ModelMeta.all_field_infos().items():
|
|
2753
2758
|
field = field_info.alias or field_name
|
|
2759
|
+
field_value = fields.get(field)
|
|
2754
2760
|
|
|
2755
|
-
|
|
2761
|
+
# We don't want to parse python model cron="@..." kwargs (e.g. @daily) into MacroVar
|
|
2762
|
+
if field == "cron" or field_value is None:
|
|
2756
2763
|
continue
|
|
2757
2764
|
|
|
2758
|
-
|
|
2759
|
-
|
|
2765
|
+
if field in RUNTIME_RENDERED_MODEL_FIELDS:
|
|
2766
|
+
fields[field] = parse_strings_with_macro_refs(field_value, dialect)
|
|
2760
2767
|
continue
|
|
2761
2768
|
|
|
2762
2769
|
if isinstance(field_value, dict):
|
|
2763
2770
|
rendered_dict = {}
|
|
2764
2771
|
for key, value in field_value.items():
|
|
2765
2772
|
if key in RUNTIME_RENDERED_MODEL_FIELDS:
|
|
2766
|
-
rendered_dict[key] = value
|
|
2773
|
+
rendered_dict[key] = parse_strings_with_macro_refs(value, dialect)
|
|
2767
2774
|
elif (rendered := render_field_value(value)) is not None:
|
|
2768
2775
|
rendered_dict[key] = rendered
|
|
2776
|
+
|
|
2769
2777
|
if rendered_dict:
|
|
2770
2778
|
fields[field] = rendered_dict
|
|
2771
2779
|
else:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
sqlmesh/__init__.py,sha256=QjwaamJIdW7voXoS880yAx7tHm-Im4_mqGA-XJgafos,7631
|
|
2
|
-
sqlmesh/_version.py,sha256=
|
|
2
|
+
sqlmesh/_version.py,sha256=CgHjS2NBWQdSFZUQVN24C3Ezoj0vTyfhAquX6nAtixs,530
|
|
3
3
|
sqlmesh/magics.py,sha256=R9U0Mp9ZQhDYe751nxAQDLaMv3zLAR4HcTdIflKTmEE,41709
|
|
4
4
|
sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -86,9 +86,9 @@ sqlmesh/core/metric/definition.py,sha256=Yd5aVgsZCDPJ43aGP7WqtzZOuuSUtB8uJGVA6Jw
|
|
|
86
86
|
sqlmesh/core/metric/rewriter.py,sha256=GiSTHfn2kinqCfNPYgZPRk93JFLzVaaejHtHDQ0yXZI,7326
|
|
87
87
|
sqlmesh/core/model/__init__.py,sha256=C8GRZ53xuXEA9hQv3BQS9pNNyd9rZ06R_B96UYGhDu4,1644
|
|
88
88
|
sqlmesh/core/model/cache.py,sha256=csun0RJguHzKX6-qITcOs4fVP4f8_Ts8qiUVV4sHY6Q,7869
|
|
89
|
-
sqlmesh/core/model/common.py,sha256=
|
|
89
|
+
sqlmesh/core/model/common.py,sha256=dPyqXLaDSnQgDVdbiOZ7YwomlaPIvGfyL-mHhc7bR1o,17830
|
|
90
90
|
sqlmesh/core/model/decorator.py,sha256=wUUg5t0K559tV9Pqt6FE2EWXt5TPGb4wF2Yg4B4hX4w,9251
|
|
91
|
-
sqlmesh/core/model/definition.py,sha256=
|
|
91
|
+
sqlmesh/core/model/definition.py,sha256=mAcbq5chgFgDQi0f_p-lByvbFK9kIQgQfROqvP5LnB8,112396
|
|
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
|
|
@@ -284,7 +284,7 @@ sqlmesh/utils/pydantic.py,sha256=o_NsXbIpDqNpUA1Uc5xF0ZzoXQYYB0DfHwdRxBwXPNk,120
|
|
|
284
284
|
sqlmesh/utils/rich.py,sha256=BpB47G0-JcU41LkGkeGKroexj4NOV5fox4-GOIXPgIc,3545
|
|
285
285
|
sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
|
|
286
286
|
sqlmesh/utils/yaml.py,sha256=hvo5lmybYLcIx4p6CQwufS8X4MbwS60lEBnCmYJCXmU,2336
|
|
287
|
-
sqlmesh-0.199.1.
|
|
287
|
+
sqlmesh-0.199.1.dev31.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
|
|
288
288
|
web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
289
289
|
web/client/dist/index.html,sha256=DAv6ABGogw4xRLb0T_92WP_S7XWyqVhwBgGKWtuQwU4,5472
|
|
290
290
|
web/client/dist/assets/Audits-BuHAmFO8.js,sha256=zbYUF6WdUGMbnMm01GMNPb7xAJwj-o5wMdL56vPo2qE,1041
|
|
@@ -402,8 +402,8 @@ web/server/api/endpoints/models.py,sha256=ud-lRwriyI_OYg9tZchrBgeiXELiRTLNEodraf
|
|
|
402
402
|
web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
|
|
403
403
|
web/server/api/endpoints/plan.py,sha256=bbbY50W_2MsZSTxOHWMKz0tbIm75nsRSlPy8GI2fg9Q,9306
|
|
404
404
|
web/server/api/endpoints/table_diff.py,sha256=SCy3-pr5x6bEEiOaZGCDbiHQhpgxwmnz3Acqa2Ie6jI,2090
|
|
405
|
-
sqlmesh-0.199.1.
|
|
406
|
-
sqlmesh-0.199.1.
|
|
407
|
-
sqlmesh-0.199.1.
|
|
408
|
-
sqlmesh-0.199.1.
|
|
409
|
-
sqlmesh-0.199.1.
|
|
405
|
+
sqlmesh-0.199.1.dev31.dist-info/METADATA,sha256=b2S5AOFx4aEUG1T59ljG0g7winpSYkR_WMjLrl8uUgw,26659
|
|
406
|
+
sqlmesh-0.199.1.dev31.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
407
|
+
sqlmesh-0.199.1.dev31.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
|
|
408
|
+
sqlmesh-0.199.1.dev31.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
|
|
409
|
+
sqlmesh-0.199.1.dev31.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|