ScoDoc/app/scodoc/sco_config_load.py

43 lines
1.3 KiB
Python

# -*- mode: python -*-
# -*- coding: utf-8 -*-
"""Chargement de la configuration locale
"""
import os
import sys
from app import log
from app.scodoc import sco_config
# scodoc_local defines a CONFIG object
# here we check if there is a local config file
def load_local_configuration(scodoc_cfg_dir):
"""Load local configuration file (if exists)
and merge it with CONFIG.
"""
local_config_filename = os.path.join(scodoc_cfg_dir, "scodoc_local.py")
local_config = None
if os.path.exists(local_config_filename):
if not scodoc_cfg_dir in sys.path:
sys.path.insert(0, scodoc_cfg_dir)
try:
from scodoc_local import CONFIG as local_config
log("imported %s" % local_config_filename)
except ImportError:
log("Error: can't import %s" % local_config_filename)
del sys.path[0]
if local_config is None:
return
# Now merges local config in our CONFIG
for x in [x for x in local_config if x[0] != "_"]:
v = local_config.get(x)
if not x in sco_config.CONFIG:
log(f"Warning: local config setting unused parameter {x} (skipped)")
else:
if v != sco_config.CONFIG[x]:
log(f"Setting parameter {x} from {local_config_filename}")
sco_config.CONFIG[x] = v