From 137cef09fc6459235a707d557da29e60a55226ab Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Thu, 27 Jan 2022 11:08:06 +0000 Subject: [PATCH] globalvars.py: implement version and release_date attrs as properties --- mmgen/globalvars.py | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/mmgen/globalvars.py b/mmgen/globalvars.py index 81b8b2df..7bcb841d 100755 --- a/mmgen/globalvars.py +++ b/mmgen/globalvars.py @@ -54,14 +54,6 @@ class GlobalContext(Lockable): email = '' Cdates = '2013-2022' - try: - from importlib.resources import files # Python 3.9 - except ImportError: - from importlib_resources import files - - version = files('mmgen').joinpath('data','version').read_text().strip() - release_date = files('mmgen').joinpath('data','release_date').read_text().strip() - stdin_tty = sys.stdin.isatty() stdout = sys.stdout stderr = sys.stderr @@ -317,4 +309,24 @@ class GlobalContext(Lockable): if name[:11] == 'MMGEN_DEBUG': os.environ[name] = '1' + def _get_importlib_resources_files(self): + """ + this is an expensive import, so do only when required + """ + try: + from importlib.resources import files # Python 3.9 + except ImportError: + from importlib_resources import files + return files + + @property + def version(self): + files = self._get_importlib_resources_files() + return files('mmgen').joinpath('data','version').read_text().strip() + + @property + def release_date(self): + files = self._get_importlib_resources_files() + return files('mmgen').joinpath('data','release_date').read_text().strip() + g = GlobalContext()