summaryrefslogtreecommitdiffstats
path: root/Lib/pathlib/_abc.py
diff options
context:
space:
mode:
authorBarney Gale <barney.gale@gmail.com>2025-02-24 19:07:54 (GMT)
committerGitHub <noreply@github.com>2025-02-24 19:07:54 (GMT)
commit48c84a400aa90014a16ceac92df4b0cf5ca6b3d4 (patch)
tree90585212559f310ffe7ece9eb9398460369ed494 /Lib/pathlib/_abc.py
parentd73d69e232ce848733517736b1761e7bd2478574 (diff)
downloadcpython-48c84a400aa90014a16ceac92df4b0cf5ca6b3d4.zip
cpython-48c84a400aa90014a16ceac92df4b0cf5ca6b3d4.tar.gz
cpython-48c84a400aa90014a16ceac92df4b0cf5ca6b3d4.tar.bz2
GH-125413: pathlib ABCs: use caching `path.info.exists()` when globbing (#130422)
Call `ReadablePath.info.exists()` rather than `ReadablePath.exists()` when globbing so that we use (or populate) the `info` cache.
Diffstat (limited to 'Lib/pathlib/_abc.py')
-rw-r--r--Lib/pathlib/_abc.py13
1 files changed, 5 insertions, 8 deletions
diff --git a/Lib/pathlib/_abc.py b/Lib/pathlib/_abc.py
index 115e120..4106d47 100644
--- a/Lib/pathlib/_abc.py
+++ b/Lib/pathlib/_abc.py
@@ -316,14 +316,11 @@ class ReadablePath(JoinablePath):
paths.append((path, dirnames, filenames))
try:
for child in path.iterdir():
- try:
- if child.info.is_dir(follow_symlinks=follow_symlinks):
- if not top_down:
- paths.append(child)
- dirnames.append(child.name)
- else:
- filenames.append(child.name)
- except OSError:
+ if child.info.is_dir(follow_symlinks=follow_symlinks):
+ if not top_down:
+ paths.append(child)
+ dirnames.append(child.name)
+ else:
filenames.append(child.name)
except OSError as error:
if on_error is not None: