Source code for olympus.utils.options

import os
import json

from olympus.utils.functional import flatten


_options = {}


[docs]def load_configuration(file_name): global _options options = json.load(open(file_name, 'r')) _options = flatten(options)
[docs]def set_option(name, value): global _options _options[name] = value
[docs]def options(name, default, type=str): """Look for an option locally and using the environment variables Environment variables are use as the ultimate overrides """ env_name = name.upper().replace('.', '_') value = os.getenv(f'OLYMPUS_{env_name}', None) if not value: return type(_options.get(name, default)) return type(value)
[docs]def option(name, default, type=str): return options(name, default, type=type)