Skip to content

Commit 37a780a

Browse files
committed
Add plan summary of executed model kinds
1 parent ed12be9 commit 37a780a

2 files changed

Lines changed: 37 additions & 1 deletion

File tree

sqlmesh/core/console.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2999,7 +2999,8 @@ def show_row_diff(
29992999
self._write(row_diff)
30003000

30013001

3002-
_CONSOLE: Console = NoopConsole()
3002+
# _CONSOLE: Console = NoopConsole()
3003+
_CONSOLE: Console = TerminalConsole()
30033004

30043005

30053006
def set_console(console: Console) -> None:

sqlmesh/core/plan/evaluator.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,41 @@ def evaluate(
160160
if not plan.requires_backfill:
161161
self.console.log_success("Virtual Update executed successfully")
162162

163+
model_kind_counts: t.Dict[str, int] = {}
164+
audit_counts: t.Dict[str, int] = {}
165+
for snapshot in snapshots.values():
166+
if snapshot.name in all_names:
167+
if snapshot.is_audit:
168+
audit_counts["standalone"] = audit_counts.get("standalone", 0) + 1
169+
if (
170+
snapshot.is_model
171+
and snapshot.model_kind_name
172+
and snapshot.model.kind
173+
and not snapshot.model.kind.is_external
174+
and not snapshot.model.kind.is_embedded
175+
):
176+
kind_name = snapshot.model_kind_name
177+
model_kind_counts[kind_name] = model_kind_counts.get(kind_name, 0) + 1
178+
if snapshot.is_model and snapshot.model.audits:
179+
if snapshot.model.kind.is_external:
180+
audit_counts["EXTERNAL model"] = audit_counts.get(
181+
"EXTERNAL model", 0
182+
) + len(snapshot.model.audits)
183+
else:
184+
audit_counts["model"] = audit_counts.get("model", 0) + len(
185+
snapshot.model.audits
186+
)
187+
188+
summary_str = ", ".join(
189+
[f"{v} {k} model{'s' if v > 1 else ''}" for k, v in model_kind_counts.items()]
190+
)
191+
for audit_type in ["EXTERNAL model", "model", "standalone"]:
192+
if audit_type in audit_counts:
193+
count = audit_counts[audit_type]
194+
summary_str += f", {count} {audit_type} audit{'s' if count > 1 else ''}"
195+
if summary_str:
196+
self.console.log_status_update(f"Plan applied for {summary_str}")
197+
163198
execute_environment_statements(
164199
adapter=self.snapshot_evaluator.adapter,
165200
environment_statements=plan.environment_statements or [],

0 commit comments

Comments
 (0)