gracefully handle absent extra_functionality file; add file to path
This commit is contained in:
parent
b4fb395158
commit
d145758fb7
@ -28,6 +28,13 @@ def memory(w):
|
|||||||
return int(factor * (10000 + 195 * int(w.clusters)))
|
return int(factor * (10000 + 195 * int(w.clusters)))
|
||||||
|
|
||||||
|
|
||||||
|
def input_custom_extra_functionality(w):
|
||||||
|
path = config["solving"]["options"].get("custom_extra_functionality", False)
|
||||||
|
if path:
|
||||||
|
return workflow.source_path(path)
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
# Check if the workflow has access to the internet by trying to access the HEAD of specified url
|
# Check if the workflow has access to the internet by trying to access the HEAD of specified url
|
||||||
def has_internet_access(url="www.zenodo.org") -> bool:
|
def has_internet_access(url="www.zenodo.org") -> bool:
|
||||||
import http.client as http_client
|
import http.client as http_client
|
||||||
|
@ -11,9 +11,7 @@ rule solve_network:
|
|||||||
co2_sequestration_potential=config["sector"].get(
|
co2_sequestration_potential=config["sector"].get(
|
||||||
"co2_sequestration_potential", 200
|
"co2_sequestration_potential", 200
|
||||||
),
|
),
|
||||||
custom_extra_functionality=workflow.source_path(
|
custom_extra_functionality=input_custom_extra_functionality,
|
||||||
config["solving"]["options"].get("custom_extra_functionality", "")
|
|
||||||
),
|
|
||||||
input:
|
input:
|
||||||
network=RESOURCES + "networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}.nc",
|
network=RESOURCES + "networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}.nc",
|
||||||
config=RESULTS + "config.yaml",
|
config=RESULTS + "config.yaml",
|
||||||
|
@ -88,9 +88,7 @@ rule solve_sector_network_myopic:
|
|||||||
co2_sequestration_potential=config["sector"].get(
|
co2_sequestration_potential=config["sector"].get(
|
||||||
"co2_sequestration_potential", 200
|
"co2_sequestration_potential", 200
|
||||||
),
|
),
|
||||||
custom_extra_functionality=workflow.source_path(
|
custom_extra_functionality=input_custom_extra_functionality,
|
||||||
config["solving"]["options"].get("custom_extra_functionality", "")
|
|
||||||
),
|
|
||||||
input:
|
input:
|
||||||
network=RESULTS
|
network=RESULTS
|
||||||
+ "prenetworks-brownfield/elec_s{simpl}_{clusters}_l{ll}_{opts}_{sector_opts}_{planning_horizons}.nc",
|
+ "prenetworks-brownfield/elec_s{simpl}_{clusters}_l{ll}_{opts}_{sector_opts}_{planning_horizons}.nc",
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
rule solve_sector_network:
|
rule solve_sector_network:
|
||||||
params:
|
params:
|
||||||
solving=config["solving"],
|
solving=config["solving"],
|
||||||
@ -11,9 +10,7 @@ rule solve_sector_network:
|
|||||||
co2_sequestration_potential=config["sector"].get(
|
co2_sequestration_potential=config["sector"].get(
|
||||||
"co2_sequestration_potential", 200
|
"co2_sequestration_potential", 200
|
||||||
),
|
),
|
||||||
custom_extra_functionality=workflow.source_path(
|
custom_extra_functionality=input_custom_extra_functionality,
|
||||||
config["solving"]["options"].get("custom_extra_functionality", "")
|
|
||||||
),
|
|
||||||
input:
|
input:
|
||||||
network=RESULTS
|
network=RESULTS
|
||||||
+ "prenetworks/elec_s{simpl}_{clusters}_l{ll}_{opts}_{sector_opts}_{planning_horizons}.nc",
|
+ "prenetworks/elec_s{simpl}_{clusters}_l{ll}_{opts}_{sector_opts}_{planning_horizons}.nc",
|
||||||
|
@ -118,9 +118,7 @@ rule solve_sector_network_perfect:
|
|||||||
co2_sequestration_potential=config["sector"].get(
|
co2_sequestration_potential=config["sector"].get(
|
||||||
"co2_sequestration_potential", 200
|
"co2_sequestration_potential", 200
|
||||||
),
|
),
|
||||||
custom_extra_functionality=workflow.source_path(
|
custom_extra_functionality=input_custom_extra_functionality,
|
||||||
config["solving"]["options"].get("custom_extra_functionality", "")
|
|
||||||
),
|
|
||||||
input:
|
input:
|
||||||
network=RESULTS
|
network=RESULTS
|
||||||
+ "prenetworks-brownfield/elec_s{simpl}_{clusters}_l{ll}_{opts}_{sector_opts}_brownfield_all_years.nc",
|
+ "prenetworks-brownfield/elec_s{simpl}_{clusters}_l{ll}_{opts}_{sector_opts}_brownfield_all_years.nc",
|
||||||
|
@ -30,6 +30,7 @@ import importlib
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
@ -831,6 +832,7 @@ def extra_functionality(n, snapshots):
|
|||||||
if snakemake.params.custom_extra_functionality:
|
if snakemake.params.custom_extra_functionality:
|
||||||
source_path = snakemake.params.custom_extra_functionality
|
source_path = snakemake.params.custom_extra_functionality
|
||||||
assert os.path.exists(source_path), f"{source_path} does not exist"
|
assert os.path.exists(source_path), f"{source_path} does not exist"
|
||||||
|
sys.path.append(os.path.dirname(source_path))
|
||||||
module_name = os.path.splitext(os.path.basename(source_path))[0]
|
module_name = os.path.splitext(os.path.basename(source_path))[0]
|
||||||
module = importlib.import_module(module_name)
|
module = importlib.import_module(module_name)
|
||||||
module.custom_extra_functionality(n, snapshots)
|
module.custom_extra_functionality(n, snapshots)
|
||||||
|
Loading…
Reference in New Issue
Block a user