From 1810bbd4b3243ffbf516ccaa58fe5b92adf463d1 Mon Sep 17 00:00:00 2001 From: Fabian Date: Mon, 21 Aug 2023 12:24:27 +0200 Subject: [PATCH] make set_scenario_config robust against mock_snakemake and subworkflow --- scripts/_helpers.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/_helpers.py b/scripts/_helpers.py index 7a356a44..b41ed60d 100644 --- a/scripts/_helpers.py +++ b/scripts/_helpers.py @@ -31,11 +31,16 @@ def mute_print(): def set_scenario_config(snakemake): - if snakemake.config["run"]["scenarios"]: - script_dir = Path(__file__).parent.resolve() - root_dir = script_dir.parent - with open(root_dir / snakemake.config["scenariofile"], "r") as f: - scenario_config = yaml.safe_load(f) + if snakemake.config["run"]["scenarios"] and "run" in snakemake.wildcards: + try: + with open(snakemake.config["scenariofile"], "r") as f: + scenario_config = yaml.safe_load(f) + except FileNotFoundError: + # fallback for mock_snakemake + script_dir = Path(__file__).parent.resolve() + root_dir = script_dir.parent + with open(root_dir / snakemake.config["scenariofile"], "r") as f: + scenario_config = yaml.safe_load(f) update_config(snakemake.config, scenario_config[snakemake.wildcards.run])