From a18f22ab11a7bfb5ff3e74c737ca9e1bebe4abf9 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 22 Jul 2020 12:26:37 +0100 Subject: [PATCH] bpo-41364: Reduce import overhead of uuid module (GH-21586) --- Lib/uuid.py | 16 +++++++++------- .../2020-07-21-21-45-55.bpo-41364.5O-k7A.rst | 1 + 2 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2020-07-21-21-45-55.bpo-41364.5O-k7A.rst diff --git a/Lib/uuid.py b/Lib/uuid.py index 188e16ba14e..9540c21e656 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -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 ' # 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' RESERVED_NCS, RFC_4122, RESERVED_MICROSOFT, RESERVED_FUTURE = [ 'reserved for NCS compatibility', 'specified in RFC 4122', @@ -688,9 +690,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': _OS_GETTERS = [_netbios_getnode, _ipconfig_getnode] elif _AIX: _OS_GETTERS = [_netstat_getnode] 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 index 00000000000..f136e892ae5 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-07-21-21-45-55.bpo-41364.5O-k7A.rst @@ -0,0 +1 @@ +Reduce import overhead of :mod:`uuid`.