diff options
author | Botond Hende <nettingman@gmail.com> | 2024-11-27 22:52:45 +0100 |
---|---|---|
committer | Botond Hende <nettingman@gmail.com> | 2024-11-27 22:52:45 +0100 |
commit | 744961a1538fbb0d821c5d2a332d65fd8c6b1290 (patch) | |
tree | c64cd50642aea8d91f366cad3b2811ba5d6fada9 /modules/config.py | |
parent | 9a79c535edb655ca490c2b231aad2466951caf7f (diff) |
responses basic datastructure and deserialization
Diffstat (limited to 'modules/config.py')
-rw-r--r-- | modules/config.py | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/modules/config.py b/modules/config.py index 83243a0..b0fc624 100644 --- a/modules/config.py +++ b/modules/config.py @@ -14,21 +14,29 @@ class Config: self.input_mode = "" self.intents_dir = "" + self.responses_dir = "" self.applications_dir = "" self.lock = "" - def update(self, **entries): + def update(self, **entries) -> None: self.__dict__.update(entries) - if not self.intents_dir.startswith("/"): - self.intents_dir = os.path.join(os.path.dirname(__main__.__file__), self.intents_dir) + self.intents_dir = Config.__convert_to_absolute_path(self.intents_dir) + self.responses_dir = Config.__convert_to_absolute_path(self.responses_dir) - def validate(self): + @staticmethod + def __convert_to_absolute_path(path: str) -> str: + if not path.startswith("/"): + path = os.path.join(os.path.dirname(__main__.__file__), path) + + return path + + def validate(self) -> None: if self.input_mode not in self.INPUT_MODES: sys.exit(f"Invalid input_mode '{self.input_mode}', valid options: {", ".join(self.INPUT_MODES)}") -def load_config(): +def load_config() -> Config: config = Config() with open(os.path.join(os.path.dirname(__main__.__file__), "config.yaml")) as stream: config.update(**yaml.safe_load(stream)) |