Premier commit
This commit is contained in:
29
blog/config.py
Normal file
29
blog/config.py
Normal file
@@ -0,0 +1,29 @@
|
||||
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]
|
Reference in New Issue
Block a user