diff --git a/weboob/tools/config/yamlconfig.py b/weboob/tools/config/yamlconfig.py index 6efa9b6f..780d19dd 100644 --- a/weboob/tools/config/yamlconfig.py +++ b/weboob/tools/config/yamlconfig.py @@ -18,11 +18,15 @@ # along with weboob. If not, see . +import logging import os import tempfile -import logging + +import weboob.tools.date import yaml +from .iconfig import ConfigError, IConfig + try: from yaml import CLoader as Loader from yaml import CDumper as Dumper @@ -30,12 +34,22 @@ except ImportError: from yaml import Loader from yaml import Dumper -from .iconfig import IConfig, ConfigError __all__ = ['YamlConfig'] +class WeboobDumper(Dumper): + pass + + +WeboobDumper.add_representer(weboob.tools.date.date, + WeboobDumper.represent_date) + +WeboobDumper.add_representer(weboob.tools.date.datetime, + WeboobDumper.represent_datetime) + + class YamlConfig(IConfig): def __init__(self, path): self.path = path @@ -59,7 +73,7 @@ class YamlConfig(IConfig): def save(self): # write in a temporary file to avoid corruption problems with tempfile.NamedTemporaryFile(dir=os.path.dirname(self.path), delete=False) as f: - yaml.dump(self.values, f, Dumper=Dumper) + yaml.dump(self.values, f, Dumper=WeboobDumper) os.rename(f.name, self.path) def get(self, *args, **kwargs):