Skip to content

Commit 28d3702

Browse files
committed
refactor: expose macro evaluator in renderer
1 parent e3bf211 commit 28d3702

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

sqlmesh/core/renderer.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,13 @@ def __init__(
6868
self._cache: t.List[t.Optional[exp.Expression]] = []
6969
self._model_fqn = model_fqn
7070
self._optimize_query_flag = optimize_query is not False
71+
# Cache of the macro evaluator to be able to reuse it outside the render method
72+
self._macro_evaluator: t.Optional[MacroEvaluator] = None
73+
74+
@property
75+
def macro_evaluator(self) -> t.Optional[MacroEvaluator]:
76+
"""Returns the cached macro evaluator from the last render operation."""
77+
return self._macro_evaluator
7178

7279
def update_schema(self, schema: t.Dict[str, t.Any]) -> None:
7380
self.schema = d.normalize_mapping_schema(schema, dialect=self._dialect)
@@ -171,6 +178,7 @@ def _resolve_table(table: str | exp.Table) -> str:
171178
environment_naming_info=environment_naming_info,
172179
model_fqn=self._model_fqn,
173180
)
181+
self._macro_evaluator = macro_evaluator
174182

175183
start_time, end_time = (
176184
make_inclusive(start or c.EPOCH, end or c.EPOCH, self._dialect)

0 commit comments

Comments
 (0)