diff --git a/openmc/config.py b/openmc/config.py index 65b7e08639..23a3554679 100644 --- a/openmc/config.py +++ b/openmc/config.py @@ -4,6 +4,8 @@ from pathlib import Path from openmc.data import DataLibrary +__all__ = ["config"] + class _Config(MutableMapping): def __init__(self, data=()): @@ -39,23 +41,29 @@ class _Config(MutableMapping): return repr(self._mapping) -# Create default configuration -config = _Config() +def _default_config(): + """Return default configuration""" + config = _Config() -# Set cross sections using environment variable -if "OPENMC_CROSS_SECTIONS" in os.environ: - config['cross_sections'] = os.environ["OPENMC_CROSS_SECTIONS"] -if "OPENMC_MG_CROSS_SECTIONS" in os.environ: - config['mg_cross_sections'] = os.environ["OPENMC_MG_CROSS_SECTIONS"] + # Set cross sections using environment variable + if "OPENMC_CROSS_SECTIONS" in os.environ: + config['cross_sections'] = os.environ["OPENMC_CROSS_SECTIONS"] + if "OPENMC_MG_CROSS_SECTIONS" in os.environ: + config['mg_cross_sections'] = os.environ["OPENMC_MG_CROSS_SECTIONS"] -# Check for depletion chain in cross_sections.xml -# Set depletion chain -chain_file = os.environ.get("OPENMC_DEPLETE_CHAIN") -if chain_file is None and config['cross_sections'] is not None: - data = DataLibrary.from_xml(config['cross_sections']) - for lib in reversed(data.libraries): - if lib['type'] == 'depletion_chain': - chain_file = lib['path'] - break -if chain_file is not None: - config['chain_file'] = chain_file + # Check for depletion chain in cross_sections.xml + # Set depletion chain + chain_file = os.environ.get("OPENMC_DEPLETE_CHAIN") + if chain_file is None and config['cross_sections'] is not None: + data = DataLibrary.from_xml(config['cross_sections']) + for lib in reversed(data.libraries): + if lib['type'] == 'depletion_chain': + chain_file = lib['path'] + break + if chain_file is not None: + config['chain_file'] = chain_file + + return config + + +config = _default_config()