From bffcbfdc9360881016339d2fa4a9ae7c817e3f0d Mon Sep 17 00:00:00 2001 From: Johannes Koester Date: Tue, 23 Jan 2024 10:37:29 +0100 Subject: [PATCH] fix: further adaptation to Snakemake 8 --- workflow/Snakefile | 4 ---- workflow/rules/common.smk | 37 ++++++++++++++++++++++--------------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/workflow/Snakefile b/workflow/Snakefile index 0321906..5bc14bc 100644 --- a/workflow/Snakefile +++ b/workflow/Snakefile @@ -10,10 +10,6 @@ report: "report/report.rst" configfile: "config/config.yaml" -envvars: - "ZENODO_TOKEN", - - include: "rules/common.smk" diff --git a/workflow/rules/common.smk b/workflow/rules/common.smk index 7137324..de8ddc9 100644 --- a/workflow/rules/common.smk +++ b/workflow/rules/common.smk @@ -1,24 +1,31 @@ +def get_zenodo_tag(entry): + if "restricted-access-token-envvar" in entry: + return f"zenodo_{entry['deposition']}" + else: + return "zenodo" + + # add path to callsets for key, callset in config["variant-calls"].items(): - if "path" not in callset and "zenodo" in callset: - filename = callset["zenodo"]["filename"] - callset["path"] = f"resources/zenodo/variant-calls/{key}/{filename}" + if "zenodo" in callset: + if "path" not in callset: + filename = callset["zenodo"]["filename"] + callset["path"] = f"resources/zenodo/variant-calls/{key}/{filename}" + tag = get_zenodo_tag(callset["zenodo"]) + if tag != "zenodo": + workflow.storage_registry.register_storage( + provider="zenodo", + tag=tag, + restricted_access_token=os.environ[ + callset["zenodo"]["restricted-access-token-envvar"] + ], + ) def get_zenodo_input(wildcards): entry = config[wildcards.section][wildcards.entry]["zenodo"] - provider = "zenodo" - if "restricted-access-token-envvar" in entry: - tag = f"zenodo_{entry['deposition']}" - storage.register_storage( - provider="zenodo", - tag=tag, - restricted_access_token=os.environ[ - entry["restricted-access-token-envvar"] - ], - ) - provider = tag - return getattr(storage, provider)( + tag = get_zenodo_tag(entry) + return getattr(storage, tag)( f"zenodo://record/{entry['deposition']}/{entry['filename']}" )