]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-41364: Reduce import overhead of uuid module (GH-21586)
authorSteve Dower <steve.dower@python.org>
Tue, 21 Jul 2020 23:15:47 +0000 (00:15 +0100)
committerGitHub <noreply@github.com>
Tue, 21 Jul 2020 23:15:47 +0000 (00:15 +0100)
Lib/uuid.py
Misc/NEWS.d/next/Library/2020-07-21-21-45-55.bpo-41364.5O-k7A.rst [new file with mode: 0644]

index 9ddce813fc4692fe42f12d1c4e04d26236a69ee7..5ae0a3e5fa449d99bb5774f05fdde4817aea70c8 100644 (file)
@@ -45,7 +45,6 @@ Typical usage:
 """
 
 import os
-import platform
 import sys
 
 from enum import Enum
@@ -54,10 +53,13 @@ from enum import Enum
 __author__ = 'Ka-Ping Yee <ping@zesty.ca>'
 
 # The recognized platforms - known behaviors
-_AIX     = platform.system() == 'AIX'
-_DARWIN  = platform.system() == 'Darwin'
-_LINUX   = platform.system() == 'Linux'
-_WINDOWS = platform.system() == 'Windows'
+if sys.platform in ('win32', 'darwin'):
+    _AIX = _LINUX = False
+else:
+    import platform
+    _platform_system = platform.system()
+    _AIX     = _platform_system == 'AIX'
+    _LINUX   = _platform_system == 'Linux'
 
 _MAC_DELIM = b':'
 _MAC_OMITS_LEADING_ZEROES = False
@@ -618,9 +620,9 @@ def _random_getnode():
 #     @unittest.skipUnless(_uuid._ifconfig_getnode in _uuid._GETTERS, ...)
 if _LINUX:
     _OS_GETTERS = [_ip_getnode, _ifconfig_getnode]
-elif _DARWIN:
+elif sys.platform == 'darwin':
     _OS_GETTERS = [_ifconfig_getnode, _arp_getnode, _netstat_getnode]
-elif _WINDOWS:
+elif sys.platform == 'win32':
     # bpo-40201: _windll_getnode will always succeed, so these are not needed
     _OS_GETTERS = []
 elif _AIX:
diff --git a/Misc/NEWS.d/next/Library/2020-07-21-21-45-55.bpo-41364.5O-k7A.rst b/Misc/NEWS.d/next/Library/2020-07-21-21-45-55.bpo-41364.5O-k7A.rst
new file mode 100644 (file)
index 0000000..f136e89
--- /dev/null
@@ -0,0 +1 @@
+Reduce import overhead of :mod:`uuid`.