Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion sqlmesh/core/console.py
Original file line number Diff line number Diff line change
Expand Up @@ -912,6 +912,7 @@ def __init__(
self.table_diff_model_tasks: t.Dict[str, TaskID] = {}
self.table_diff_progress_live: t.Optional[Live] = None

self.signal_progress_logged = False
self.signal_status_tree: t.Optional[Tree] = None

self.verbosity = verbosity
Expand Down Expand Up @@ -956,7 +957,8 @@ def start_evaluation_progress(
) -> None:
"""Indicates that a new snapshot evaluation/auditing progress has begun."""
# Add a newline to separate signal checking from evaluation
self._print("")
if self.signal_progress_logged:
self._print("")

if not self.evaluation_progress_live:
self.evaluation_total_progress = make_progress_bar(
Expand Down Expand Up @@ -1188,6 +1190,7 @@ def stop_signal_progress(self) -> None:
if self.signal_status_tree is not None:
self._print(self.signal_status_tree)
self.signal_status_tree = None
self.signal_progress_logged = True

def start_creation_progress(
self,
Expand Down
2 changes: 1 addition & 1 deletion sqlmesh/core/scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -754,7 +754,7 @@ def _check_ready_intervals(
"""
signals = snapshot.is_model and snapshot.model.render_signal_calls()

if not signals:
if not (signals and signals.signals_to_kwargs):
return intervals

self.console.start_signal_progress(
Expand Down
15 changes: 15 additions & 0 deletions tests/cli/test_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -2175,3 +2175,18 @@ def none_ready(batch):

# Only one model was executed
assert "100.0% • 1/1 • 0:00:00" in result.output

rmtree(tmp_path)
tmp_path.mkdir(parents=True, exist_ok=True)

create_example_project(tmp_path)

# Example project models have start dates, so there are no date prompts
# for the `prod` environment.
# Input: `y` to apply and backfill
result = runner.invoke(
cli, ["--log-file-dir", str(tmp_path), "--paths", str(tmp_path), "plan"], input="y\n"
)
assert_plan_success(result)

assert "Checking signals" not in result.output