From c0b49c96b7d939414affc5476173acbd0bd66c41 Mon Sep 17 00:00:00 2001 From: juk0de Date: Mon, 5 Feb 2024 18:21:38 +0100 Subject: [PATCH] configuration: added 'glossaries' directory --- chatmastermind/configuration.py | 4 +++- tests/test_configuration.py | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/chatmastermind/configuration.py b/chatmastermind/configuration.py index 7dfa78a..e63b750 100644 --- a/chatmastermind/configuration.py +++ b/chatmastermind/configuration.py @@ -118,6 +118,7 @@ class Config: # a default configuration cache: str = '.' db: str = './db/' + glossaries: str | None = './glossaries/' ais: dict[str, AIConfig] = field(default_factory=create_default_ai_configs) @classmethod @@ -135,7 +136,8 @@ class Config: return cls( cache=str(source['cache']) if 'cache' in source else '.', db=str(source['db']), - ais=ais + ais=ais, + glossaries=str(source['glossaries']) if 'glossaries' in source else None ) @classmethod diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 3e866f2..d2f1f7b 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -71,11 +71,13 @@ class TestConfig(unittest.TestCase): 'frequency_penalty': 0.7, 'presence_penalty': 0.2 } - } + }, + 'glossaries': './glossaries/' } config = Config.from_dict(source_dict) self.assertEqual(config.cache, '.') self.assertEqual(config.db, './test_db/') + self.assertEqual(config.glossaries, './glossaries/') self.assertEqual(len(config.ais), 1) self.assertEqual(config.ais['myopenai'].name, 'openai') self.assertEqual(cast(OpenAIConfig, config.ais['myopenai']).system, 'Custom system') @@ -105,6 +107,7 @@ class TestConfig(unittest.TestCase): 'frequency_penalty': 0.7, 'presence_penalty': 0.2 } + # omit glossaries, since it's optional } } with open(self.test_file.name, 'w') as f: @@ -113,6 +116,8 @@ class TestConfig(unittest.TestCase): self.assertIsInstance(config, Config) self.assertEqual(config.cache, './test_cache/') self.assertEqual(config.db, './test_db/') + # missing 'glossaries' should result in 'None' + self.assertEqual(config.glossaries, None) self.assertEqual(len(config.ais), 1) self.assertIsInstance(config.ais['default'], AIConfig) self.assertEqual(cast(OpenAIConfig, config.ais['default']).system, 'Custom system')