diff --git a/snakemake/common/__init__.py b/snakemake/common/__init__.py index d8832dc2e..1ade8f179 100644 --- a/snakemake/common/__init__.py +++ b/snakemake/common/__init__.py @@ -25,6 +25,9 @@ DYNAMIC_FILL = "__snakemake_dynamic__" SNAKEMAKE_SEARCHPATH = str(Path(__file__).parent.parent.parent) UUID_NAMESPACE = uuid.uuid5(uuid.NAMESPACE_URL, "https://snakemake.readthedocs.io") +NOTHING_TO_BE_DONE_MSG = ( + "Nothing to be done (all requested files are present and up to date)." +) ON_WINDOWS = platform.system() == "Windows" diff --git a/snakemake/workflow.py b/snakemake/workflow.py index 455ff34b7..eeaa171a6 100644 --- a/snakemake/workflow.py +++ b/snakemake/workflow.py @@ -73,6 +73,7 @@ Scatter, Gather, smart_join, + NOTHING_TO_BE_DONE_MSG, ) from snakemake.utils import simplify_path from snakemake.checkpoints import Checkpoint, Checkpoints @@ -820,7 +821,9 @@ def files(items): ) else: logger.info( - "Subworkflow {}: Nothing to be done.".format(subworkflow.name) + "Subworkflow {}: {}".format( + subworkflow.name, NOTHING_TO_BE_DONE_MSG + ) ) if self.subworkflows: logger.info("Executing main workflow.") @@ -1051,13 +1054,13 @@ def files(items): if self.mode == Mode.default: logger.run_info("\n".join(dag.stats())) else: - logger.info("Nothing to be done.") + logger.info(NOTHING_TO_BE_DONE_MSG) else: # the dryrun case if len(dag): logger.run_info("\n".join(dag.stats())) else: - logger.info("Nothing to be done.") + logger.info(NOTHING_TO_BE_DONE_MSG) return True if quiet: # in case of dryrun and quiet, just print above info and exit