Skip to content

Commit 3df70b6

Browse files
committed
Support auto_restatement_cron in python models
1 parent 08739b8 commit 3df70b6

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

sqlmesh/core/model/definition.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2810,6 +2810,9 @@ def render_field_value(value: t.Any) -> t.Any:
28102810
for key, value in field_value.items():
28112811
if key in RUNTIME_RENDERED_MODEL_FIELDS:
28122812
rendered_dict[key] = parse_strings_with_macro_refs(value, dialect)
2813+
elif key == "auto_restatement_cron":
2814+
# Don't parse auto_restatement_cron="@..." kwarg (e.g. @daily) into MacroVar
2815+
rendered_dict[key] = value
28132816
elif (rendered := render_field_value(value)) is not None:
28142817
rendered_dict[key] = rendered
28152818

tests/core/test_model.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2882,7 +2882,15 @@ def my_model_2(context):
28822882
# no warning with valid kind dict
28832883
with patch.object(get_console(), "log_warning") as mock_logger:
28842884

2885-
@model("kind_valid_dict", kind=dict(name=ModelKindName.FULL), columns={'"COL"': "int"})
2885+
@model(
2886+
"kind_valid_dict",
2887+
kind=dict(
2888+
name=ModelKindName.INCREMENTAL_BY_TIME_RANGE,
2889+
time_column="ds",
2890+
auto_restatement_cron="@hourly",
2891+
),
2892+
columns={'"ds"': "date", '"COL"': "int"},
2893+
)
28862894
def my_model(context):
28872895
pass
28882896

@@ -2891,7 +2899,7 @@ def my_model(context):
28912899
path=Path("."),
28922900
)
28932901

2894-
assert isinstance(python_model.kind, FullKind)
2902+
assert isinstance(python_model.kind, IncrementalByTimeRangeKind)
28952903

28962904
assert not mock_logger.call_args
28972905

0 commit comments

Comments
 (0)