Browse Source

globalvars.py: implement version and release_date attrs as properties

The MMGen Project 3 years ago
parent
commit
137cef09fc
1 changed files with 20 additions and 8 deletions
  1. 20 8
      mmgen/globalvars.py

+ 20 - 8
mmgen/globalvars.py

@@ -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()