From 086f60f142721a6085b105bc4bbe12cccc9cee02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Fri, 4 Mar 2022 16:57:07 +0100 Subject: [PATCH] fix: display change warnings only for jobs that won't be executed otherwise --- snakemake/dag.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/snakemake/dag.py b/snakemake/dag.py index a6e99ca9f..d768728bb 100755 --- a/snakemake/dag.py +++ b/snakemake/dag.py @@ -2235,10 +2235,10 @@ def stats(self): yield tabulate(rows, headers="keys") yield "" - def get_outputs_with_changes(self, change_type): + def get_outputs_with_changes(self, change_type, include_needrun=True): is_changed = lambda job: ( getattr(self.workflow.persistence, f"{change_type}_changed")(job) - if not job.is_group() + if not job.is_group() and (include_needrun or not self.needrun(job)) else [] ) changed = list(chain(*map(is_changed, self.jobs))) @@ -2251,7 +2251,9 @@ def get_outputs_with_changes(self, change_type): def warn_about_changes(self, quiet=False): if not quiet: for change_type in ["code", "input", "params"]: - changed = self.get_outputs_with_changes(change_type) + changed = self.get_outputs_with_changes( + change_type, include_needrun=False + ) if changed: rerun_trigger = "" if not ON_WINDOWS: