From add16681b65a768f144677a86fb63686b70d5bfc Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 11 Jun 2020 17:02:26 +0200 Subject: [PATCH] bpo-40275: test.supports imports lazily fnmatch, glob, struct --- Lib/test/support/__init__.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 3778eed62169cb..1ac65533a7b548 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -5,13 +5,10 @@ import contextlib import errno -import fnmatch import functools -import glob import os import re import stat -import struct import sys import sysconfig import time @@ -846,9 +843,11 @@ def python_is_optimized(): _vheader = _header + 'n' def calcobjsize(fmt): + import struct return struct.calcsize(_header + fmt + _align) def calcvobjsize(fmt): + import struct return struct.calcsize(_vheader + fmt + _align) @@ -1255,6 +1254,7 @@ def _compile_match_function(patterns): # The test.bisect_cmd utility only uses such full test identifiers. func = set(patterns).__contains__ else: + import fnmatch regex = '|'.join(map(fnmatch.translate, patterns)) # The search *is* case sensitive on purpose: # don't use flags=re.IGNORECASE @@ -1534,6 +1534,7 @@ def _platform_specific(self): if sys.platform == "win32": def _platform_specific(self): + import glob import _winapi if os.path.lexists(self.real) and not os.path.exists(self.real):