Skip to content

Commit f56d84c

Browse files
authored
Fix: use correct type sig for validation info, ensure dialect in expr deser (#3698)
1 parent ccf7c0d commit f56d84c

File tree

3 files changed

+7
-9
lines changed

3 files changed

+7
-9
lines changed

sqlmesh/core/model/common.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ def single_value_or_tuple(values: t.Sequence) -> exp.Identifier | exp.Tuple:
197197
def parse_expression(
198198
cls: t.Type,
199199
v: t.Union[t.List[str], t.List[exp.Expression], str, exp.Expression, t.Callable, None],
200-
info: t.Optional[ValidationInfo] = None,
200+
info: t.Optional[ValidationInfo],
201201
) -> t.List[exp.Expression] | exp.Expression | t.Callable | None:
202202
"""Helper method to deserialize SQLGlot expressions in Pydantic Models."""
203203
if v is None:
@@ -231,7 +231,7 @@ def parse_bool(v: t.Any) -> bool:
231231

232232

233233
def parse_properties(
234-
cls: t.Type, v: t.Any, info: t.Optional[ValidationInfo] = None
234+
cls: t.Type, v: t.Any, info: t.Optional[ValidationInfo]
235235
) -> t.Optional[exp.Tuple]:
236236
if v is None:
237237
return v

sqlmesh/core/model/kind.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,7 @@ def _parse_csv_settings(cls, v: t.Any) -> t.Optional[CsvSettings]:
612612
if v is None or isinstance(v, CsvSettings):
613613
return v
614614
if isinstance(v, exp.Expression):
615-
tuple_exp = parse_properties(cls, v)
615+
tuple_exp = parse_properties(cls, v, None)
616616
if not tuple_exp:
617617
return None
618618
return CsvSettings(**{e.left.name: e.right for e in tuple_exp.expressions})
@@ -979,9 +979,7 @@ def create_model_kind(v: t.Any, dialect: str, defaults: t.Dict[str, t.Any]) -> M
979979
return model_kind_type_from_name(name)(name=name) # type: ignore
980980

981981

982-
def _model_kind_validator(
983-
cls: t.Type, v: t.Any, info: t.Optional[ValidationInfo] = None
984-
) -> ModelKind:
982+
def _model_kind_validator(cls: t.Type, v: t.Any, info: t.Optional[ValidationInfo]) -> ModelKind:
985983
dialect = get_dialect(info.data) if info else ""
986984
return create_model_kind(v, dialect, {})
987985

tests/core/test_model.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2595,7 +2595,7 @@ def test_parse_expression_list_with_jinja():
25952595
"JINJA_STATEMENT_BEGIN;\n{{ log('log message') }}\nJINJA_END;",
25962596
"GRANT SELECT ON TABLE foo TO DEV",
25972597
]
2598-
assert input == [val.sql() for val in parse_expression(SqlModel, input)]
2598+
assert input == [val.sql() for val in parse_expression(SqlModel, input, None)]
25992599

26002600

26012601
def test_no_depends_on_runtime_jinja_query():
@@ -3687,7 +3687,7 @@ def test_scd_type_2_by_time_overrides():
36873687
assert not scd_type_2_model.kind.disable_restatement
36883688

36893689
model_kind_dict = scd_type_2_model.kind.dict()
3690-
assert scd_type_2_model.kind == _model_kind_validator(None, model_kind_dict)
3690+
assert scd_type_2_model.kind == _model_kind_validator(None, model_kind_dict, None)
36913691

36923692

36933693
def test_scd_type_2_by_column_defaults():
@@ -3776,7 +3776,7 @@ def test_scd_type_2_by_column_overrides():
37763776
assert not scd_type_2_model.kind.disable_restatement
37773777

37783778
model_kind_dict = scd_type_2_model.kind.dict()
3779-
assert scd_type_2_model.kind == _model_kind_validator(None, model_kind_dict)
3779+
assert scd_type_2_model.kind == _model_kind_validator(None, model_kind_dict, None)
37803780

37813781

37823782
def test_scd_type_2_python_model() -> None:

0 commit comments

Comments
 (0)