Skip to content

Commit 437edcc

Browse files
authored
Chore: Separate render kwargs from general kwargs in the creation API of the evaluation strategy (#2839)
1 parent 921ae7e commit 437edcc

File tree

2 files changed

+23
-13
lines changed

2 files changed

+23
-13
lines changed

docs/guides/custom_materializations.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ class CustomFullMaterialization(CustomMaterialization):
6969
table_name: str,
7070
model: Model,
7171
is_table_deployable: bool,
72-
**render_kwargs: t.Any,
72+
render_kwargs: t.Dict[str, t.Any],
73+
**kwargs: t.Any,
7374
) -> None:
7475
# Custom creation logic.
7576

sqlmesh/core/snapshot/evaluator.py

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -675,8 +675,10 @@ def _create_snapshot(
675675
table_name=tmp_table_name,
676676
model=snapshot.model,
677677
is_table_deployable=False,
678-
table_mapping={snapshot.name: tmp_table_name},
679-
**create_render_kwargs,
678+
render_kwargs=dict(
679+
table_mapping={snapshot.name: tmp_table_name},
680+
**create_render_kwargs,
681+
),
680682
)
681683
try:
682684
self.adapter.clone_table(target_table_name, snapshot.table_name(), replace=True)
@@ -701,7 +703,7 @@ def _create_snapshot(
701703
table_name=snapshot.table_name(is_deployable=is_table_deployable),
702704
model=snapshot.model,
703705
is_table_deployable=is_table_deployable,
704-
**create_render_kwargs,
706+
render_kwargs=create_render_kwargs,
705707
)
706708

707709
self.adapter.execute(snapshot.model.render_post_statements(**pre_post_render_kwargs))
@@ -964,15 +966,16 @@ def create(
964966
table_name: str,
965967
model: Model,
966968
is_table_deployable: bool,
967-
**render_kwargs: t.Any,
969+
render_kwargs: t.Dict[str, t.Any],
970+
**kwargs: t.Any,
968971
) -> None:
969972
"""Creates the target table or view.
970973
971974
Args:
972975
table_name: The name of a table or a view.
973976
model: The target model.
974977
is_table_deployable: Whether the table that is being created is deployable (can be deployed to the production environment).
975-
render_kwargs: Additional kwargs for node rendering.
978+
render_kwargs: Additional key-value arguments to pass when rendering the model's query.
976979
"""
977980

978981
@abc.abstractmethod
@@ -1072,7 +1075,8 @@ def create(
10721075
table_name: str,
10731076
model: Model,
10741077
is_table_deployable: bool,
1075-
**render_kwargs: t.Any,
1078+
render_kwargs: t.Dict[str, t.Any],
1079+
**kwargs: t.Any,
10761080
) -> None:
10771081
pass
10781082

@@ -1154,7 +1158,8 @@ def create(
11541158
table_name: str,
11551159
model: Model,
11561160
is_table_deployable: bool,
1157-
**render_kwargs: t.Any,
1161+
render_kwargs: t.Dict[str, t.Any],
1162+
**kwargs: t.Any,
11581163
) -> None:
11591164
ctas_query = model.ctas_query(**render_kwargs)
11601165

@@ -1331,7 +1336,8 @@ def create(
13311336
table_name: str,
13321337
model: Model,
13331338
is_table_deployable: bool,
1334-
**render_kwargs: t.Any,
1339+
render_kwargs: t.Dict[str, t.Any],
1340+
**kwargs: t.Any,
13351341
) -> None:
13361342
model = t.cast(SeedModel, model)
13371343
if not model.is_hydrated and self.adapter.table_exists(table_name):
@@ -1344,7 +1350,7 @@ def create(
13441350
)
13451351
return
13461352

1347-
super().create(table_name, model, is_table_deployable, **render_kwargs)
1353+
super().create(table_name, model, is_table_deployable, render_kwargs, **kwargs)
13481354
if is_table_deployable:
13491355
# For seeds we insert data at the time of table creation.
13501356
try:
@@ -1377,7 +1383,8 @@ def create(
13771383
table_name: str,
13781384
model: Model,
13791385
is_table_deployable: bool,
1380-
**render_kwargs: t.Any,
1386+
render_kwargs: t.Dict[str, t.Any],
1387+
**kwargs: t.Any,
13811388
) -> None:
13821389
assert isinstance(model.kind, (SCDType2ByTimeKind, SCDType2ByColumnKind))
13831390
if model.annotated:
@@ -1404,7 +1411,8 @@ def create(
14041411
table_name,
14051412
model,
14061413
is_table_deployable,
1407-
**render_kwargs,
1414+
render_kwargs,
1415+
**kwargs,
14081416
)
14091417

14101418
def insert(
@@ -1555,7 +1563,8 @@ def create(
15551563
table_name: str,
15561564
model: Model,
15571565
is_table_deployable: bool,
1558-
**render_kwargs: t.Any,
1566+
render_kwargs: t.Dict[str, t.Any],
1567+
**kwargs: t.Any,
15591568
) -> None:
15601569
logger.info("Creating view '%s'", table_name)
15611570
self.adapter.create_view(

0 commit comments

Comments
 (0)