From 2394ca4a23a6b2792397bc9efc09945f01d1963b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Wed, 29 Sep 2021 16:24:40 +0200 Subject: [PATCH] fix: fix source retrieval during between workflow caching and report generation --- snakemake/caching/hash.py | 3 +++ snakemake/report/__init__.py | 8 +++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/snakemake/caching/hash.py b/snakemake/caching/hash.py index 9d35f38be..3e26905c5 100644 --- a/snakemake/caching/hash.py +++ b/snakemake/caching/hash.py @@ -52,6 +52,7 @@ def _get_provenance_hash(self, job: Job): elif job.is_script: _, source, _ = script.get_source( job.rule.script, + job.rule.workflow.sourcecache, basedir=job.rule.basedir, wildcards=job.wildcards, params=job.params, @@ -60,6 +61,7 @@ def _get_provenance_hash(self, job: Job): elif job.is_notebook: _, source, _ = script.get_source( job.rule.notebook, + job.rule.workflow.sourcecache, basedir=job.rule.basedir, wildcards=job.wildcards, params=job.params, @@ -68,6 +70,7 @@ def _get_provenance_hash(self, job: Job): elif job.is_wrapper: _, source, _ = script.get_source( wrapper.get_script(job.rule.wrapper, prefix=workflow.wrapper_prefix), + job.rule.workflow.sourcecache, basedir=job.rule.basedir, wildcards=job.wildcards, params=job.params, diff --git a/snakemake/report/__init__.py b/snakemake/report/__init__.py index a8281b76d..0ec5f9a0a 100644 --- a/snakemake/report/__init__.py +++ b/snakemake/report/__init__.py @@ -261,7 +261,7 @@ def code(self): elif self._rule.script is not None and not contains_wildcard(self._rule.script): logger.info("Loading script code for rule {}".format(self.name)) _, source, language = script.get_source( - self._rule.script, self._rule.basedir + self._rule.script, self._rule.workflow.sourcecache, self._rule.basedir ) sources = [source.decode()] elif self._rule.wrapper is not None and not contains_wildcard( @@ -270,7 +270,9 @@ def code(self): logger.info("Loading wrapper code for rule {}".format(self.name)) _, source, language = script.get_source( wrapper.get_script( - self._rule.wrapper, prefix=self._rule.workflow.wrapper_prefix + self._rule.wrapper, + self._rule.workflow.sourcecache, + prefix=self._rule.workflow.wrapper_prefix, ) ) sources = [source.decode()] @@ -278,7 +280,7 @@ def code(self): self._rule.notebook ): _, source, language = script.get_source( - self._rule.notebook, self._rule.basedir + self._rule.notebook, self._rule.workflow.sourcecache, self._rule.basedir ) language = language.split("_")[1] sources = notebook.get_cell_sources(source)