Files
blog-src/blog/config.py
2025-06-06 08:41:37 +02:00

30 lines
978 B
Python

import yaml
from pathlib import Path
class Config:
_conf = dict()
_list_valid_parameters = {"inbox", "outbox", "theme", "title", "presentation", "url"}
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]