globalvars.py: implement version and release_date attrs as properties

This commit is contained in:
The MMGen Project 2022-01-27 11:08:06 +00:00
commit 137cef09fc
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2

View file

@ -54,14 +54,6 @@ class GlobalContext(Lockable):
email = '<mmgen@tuta.io>'
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()