From 7274d1bf28d2a2282bcdb6a89c9612f1e30b45f0 Mon Sep 17 00:00:00 2001 From: jesopo Date: Sat, 7 Dec 2019 10:42:43 +0000 Subject: add ability to save config file --- src/Config.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/Config.py b/src/Config.py index e9209d2c..6d80b1ca 100644 --- a/src/Config.py +++ b/src/Config.py @@ -1,17 +1,28 @@ -import configparser, os, typing +import collections, configparser, os, typing class Config(object): def __init__(self, location: str): self.location = location - self._config = {} # type: typing.Dict[str, str] - self.load() + self._config = collections.OrderedDict() + + def _parser(self) -> configparser.ConfigParser: + return configparser.ConfigParser(dict_type=collections.OrderedDict) def load(self): if os.path.isfile(self.location): with open(self.location) as config_file: - parser = configparser.ConfigParser() + parser = self._parser() parser.read_string(config_file.read()) - self._config = {k: v for k, v in parser["bot"].items() if v} + self._config.clear() + for k, v in parser["bot"].items(): + if v: + self._config[k] = v + + def save(self): + with open(self.location, "w") as config_file: + parser = self._parser() + parser["bot"] = self._config.copy() + parser.write(config_file) def __getitem__(self, key: str) -> typing.Any: return self._config[key] -- cgit v1.3.1-10-gc9f91