Source code for lenstronomy.Conf.config_loader

import yaml
import os
import lenstronomy


# in case the xdg library is installed, the import statement with pyxdg can raise an error
# to avoid it, we draw back to the ~/.config directory in case this import fails.
# TODO come up with more permanent solution of path to configuration directory
try:
    from xdg.BaseDirectory import xdg_config_home
except ImportError:
    xdg_config_home = "~/.config"

user_config_file = os.path.join(xdg_config_home, "lenstronomy", "config.yaml")

module_path = os.path.dirname(lenstronomy.__file__)
default_config_file = os.path.join(module_path, "Conf", "conf_default.yaml")

if os.path.exists(user_config_file):
    conf_file = user_config_file
else:
    conf_file = default_config_file

with open(conf_file) as file:
    # The FullLoader parameter handles the conversion from YAML
    # scalar values to the Python the dictionary format
    conf = yaml.safe_load(file)
    # conf = yaml.load(file, Loader=yaml.FullLoader)
    numba_conf = conf["numba"]
    nopython = numba_conf["nopython"]
    cache = numba_conf["cache"]
    parallel = numba_conf["parallel"]
    numba_enabled = numba_conf["enable"]
    fastmath = numba_conf["fastmath"]
    error_model = numba_conf["error_model"]


[docs] def numba_conf(): """ :return: keyword arguments of numba configurations from yaml file """ with open(conf_file) as file: # The FullLoader parameter handles the conversion from YAML # scalar values to the Python the dictionary format conf = yaml.safe_load(file) # conf = yaml.load(file, Loader=yaml.FullLoader) numba_conf = conf["numba"] return numba_conf
[docs] def conventions_conf(): """ :return: convention keyword arguments """ with open(conf_file) as file: conf = yaml.safe_load(file) conventions_conf = conf["conventions"] return conventions_conf