bpo-40275: lazy import modules in test.support by shihai1991 · Pull Request #20128 · python/cpython

Expand Up @@ -6,23 +6,19 @@ import collections.abc import contextlib import errno import faulthandler import fnmatch import functools import gc import glob import importlib import importlib.util import os import platform import re import shutil import stat import struct import subprocess import sys import sysconfig import tempfile import _thread import threading import time Expand Down Expand Up @@ -439,6 +435,7 @@ def _longpath(path): _rmdir = os.rmdir
def _rmtree(path): import shutil try: shutil.rmtree(path) return Expand Down Expand Up @@ -891,6 +888,7 @@ def temp_dir(path=None, quiet=False): created, only a warning is issued.
""" import tempfile dir_created = False if path is None: path = tempfile.mkdtemp() Expand Down Expand Up @@ -1436,6 +1434,7 @@ def gc_collect(): longer than expected. This function tries its best to force all garbage objects to disappear. """ import gc gc.collect() if is_jython: time.sleep(0.1) Expand All @@ -1444,6 +1443,7 @@ def gc_collect():
@contextlib.contextmanager def disable_gc(): import gc have_gc = gc.isenabled() gc.disable() try: Expand Down Expand Up @@ -2136,6 +2136,7 @@ def reap_children():
@contextlib.contextmanager def start_threads(threads, unlock=None): import faulthandler threads = list(threads) started = [] try: Expand Down Expand Up @@ -2401,6 +2402,7 @@ def call_link(self, *args, returncode=0):
_can_xattr = None def can_xattr(): import tempfile global _can_xattr if _can_xattr is not None: return _can_xattr Expand Down Expand Up @@ -2445,6 +2447,7 @@ def skip_if_pgo_task(test):
def fs_is_case_insensitive(directory): """Detects if the file system for the specified directory is case-insensitive.""" import tempfile with tempfile.NamedTemporaryFile(dir=directory) as base: base_path = base.name case_path = base_path.upper() Expand Down Expand Up @@ -2740,6 +2743,8 @@ def setswitchinterval(interval):
@contextlib.contextmanager def disable_faulthandler(): import faulthandler
# use sys.__stderr__ instead of sys.stderr, since regrtest replaces # sys.stderr with a StringIO which has no file descriptor when a test # is run with -W/--verbose3. Expand Down