def load_config(only_defaults=False, override=None): """Load the configuration data. :param only_defaults: Whether to load only the default options, ignoring any user-specified config file or environment-based overrides. :param override: An optional dict with extra values to add to the configuration. Any values provided here will override values from the config file. """ data = dict(DEFAULTS, **INTERNAL_DEFAULTS) if not only_defaults: path = get_config_path() config = _sanitize_data(_parse_config(path)) data.update(config) env_override = os.environ.get('INDICO_CONF_OVERRIDE') if env_override: data.update(_sanitize_data(ast.literal_eval(env_override))) resolved_path = resolve_link(path) if os.path.islink(path) else path resolved_path = None if resolved_path == os.devnull else resolved_path data['CONFIG_PATH'] = path data['CONFIG_PATH_RESOLVED'] = resolved_path if resolved_path is not None: data['LOGGING_CONFIG_PATH'] = os.path.join( os.path.dirname(resolved_path), data['LOGGING_CONFIG_FILE']) if override: data.update(_sanitize_data(override, allow_internal=True)) _postprocess_config(data) return ImmutableDict(data)
def load_config(only_defaults=False, override=None): """Load the configuration data. :param only_defaults: Whether to load only the default options, ignoring any user-specified config file or environment-based overrides. :param override: An optional dict with extra values to add to the configuration. Any values provided here will override values from the config file. """ data = dict(DEFAULTS, **INTERNAL_DEFAULTS) if not only_defaults: path = get_config_path() config = _sanitize_data(_parse_config(path)) data.update(config) env_override = os.environ.get('INDICO_CONF_OVERRIDE') if env_override: data.update(_sanitize_data(ast.literal_eval(env_override))) resolved_path = resolve_link(path) if os.path.islink(path) else path resolved_path = None if resolved_path == os.devnull else resolved_path data['CONFIG_PATH'] = path data['CONFIG_PATH_RESOLVED'] = resolved_path if resolved_path is not None: data['LOGGING_CONFIG_PATH'] = os.path.join(os.path.dirname(resolved_path), data['LOGGING_CONFIG_FILE']) if override: data.update(_sanitize_data(override, allow_internal=True)) _postprocess_config(data) return ImmutableDict(data)
def getFinalConfigFilePath(self): config_path = self.getConfigFilePath() if os.path.islink(config_path): config_path = resolve_link(config_path) return None if config_path == os.devnull else config_path