import yaml from pathlib import Path class Config: _conf = dict() _list_valid_parameters = {"inbox", "outbox", "theme", "title", "presentation"} def __init__(self, config_file: Path): """Constructeur : charge les paramètres depuis le fichier de configuration""" with open(config_file) as cfile: self._conf = yaml.safe_load(cfile.read()) def __getattr__(self, name): """Renvoie la valeur d'un paramètre""" if name not in self._list_valid_parameters: raise AttributeError(f"L'attribut '{name}' n'existe pas.") if name in self._conf: return self._conf[name] return "undefined" def overload(self, parameters: dict): """Surcharge les paramètres depuis une liste fournie""" for valid_parameter in self._list_valid_parameters: if valid_parameter in parameters: self._conf[valid_parameter] = parameters[valid_parameter]