From 071c13261eb6438c0fffcffbaa0eb34432a0f80c Mon Sep 17 00:00:00 2001 From: GDWR <57012020+GDWR@users.noreply.github.com> Date: Sat, 22 Jan 2022 11:49:34 +0000 Subject: [PATCH] Only read config file once. (#13) --- classy_config/classy_config.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/classy_config/classy_config.py b/classy_config/classy_config.py index f25ecbf..911c262 100644 --- a/classy_config/classy_config.py +++ b/classy_config/classy_config.py @@ -7,6 +7,7 @@ class ClassyConfig: instance: Optional["ClassyConfig"] = None + _raw_config: Optional[dict] = None def __new__(cls, *args, **kwargs): if cls.instance is not None: @@ -19,8 +20,11 @@ def __init__(self, config_file: Union[str, PathLike]): self.config_file = config_file def _get_raw_config_file(self) -> dict: - with open(self.config_file, "r") as f: - return json.load(f) + if self._raw_config is None: + with open(self.config_file, "r") as f: + self._raw_config = json.load(f) + + return self._raw_config @property def raw_config(self) -> dict: