From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Tue, 5 May 2026 12:38:03 +0000 (+0300) Subject: gh-137855: Improve import time of `pathlib` (GH-146327) X-Git-Tag: v3.15.0b1~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ffb543d32f14803e8379c15a0a2d96c6b4c4dacd;p=thirdparty%2FPython%2Fcpython.git gh-137855: Improve import time of `pathlib` (GH-146327) Improve import time of pathlib --- diff --git a/Lib/pathlib/__init__.py b/Lib/pathlib/__init__.py index 44f967eb12dd..a32e4b5320ff 100644 --- a/Lib/pathlib/__init__.py +++ b/Lib/pathlib/__init__.py @@ -12,12 +12,13 @@ import os import posixpath import sys from errno import * -from glob import _StringGlobber, _no_recurse_symlinks from itertools import chain from stat import ( S_IMODE, S_ISDIR, S_ISREG, S_ISLNK, S_ISSOCK, S_ISBLK, S_ISCHR, S_ISFIFO, ) from _collections_abc import Sequence +lazy import shutil +lazy from glob import _StringGlobber, _no_recurse_symlinks try: import pwd @@ -1255,8 +1256,6 @@ class Path(PurePath): if self.is_symlink() or self.is_junction(): self.unlink() elif self.is_dir(): - # Lazy import to improve module import time - import shutil shutil.rmtree(self) else: self.unlink() diff --git a/Lib/test/test_pathlib/test_pathlib.py b/Lib/test/test_pathlib/test_pathlib.py index 19f4506c109c..09d1b5d725e5 100644 --- a/Lib/test/test_pathlib/test_pathlib.py +++ b/Lib/test/test_pathlib/test_pathlib.py @@ -81,7 +81,7 @@ class UnsupportedOperationTest(unittest.TestCase): class LazyImportTest(unittest.TestCase): @cpython_only def test_lazy_import(self): - import_helper.ensure_lazy_imports("pathlib", {"shutil"}) + import_helper.ensure_lazy_imports("pathlib", {"glob", "shutil"}) #