summaryrefslogtreecommitdiffstats
path: root/Lib/tempfile.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2023-12-07 16:32:10 (GMT)
committerGitHub <noreply@github.com>2023-12-07 16:32:10 (GMT)
commitba18893555bbf69b1da262aaf85d65e4b67e8955 (patch)
treeed2f82820161c956869151e9a72b27a8dd6603bd /Lib/tempfile.py
parent81c16cd94ec38d61aa478b9a452436dc3b1b524d (diff)
downloadcpython-ba18893555bbf69b1da262aaf85d65e4b67e8955.zip
cpython-ba18893555bbf69b1da262aaf85d65e4b67e8955.tar.gz
cpython-ba18893555bbf69b1da262aaf85d65e4b67e8955.tar.bz2
gh-87319: Simplify TemporaryDirectory cleanup using os.path.isjunction() (GH-112791)
Diffstat (limited to 'Lib/tempfile.py')
-rw-r--r--Lib/tempfile.py14
1 files changed, 1 insertions, 13 deletions
diff --git a/Lib/tempfile.py b/Lib/tempfile.py
index 9a5e7d0..4d99f91 100644
--- a/Lib/tempfile.py
+++ b/Lib/tempfile.py
@@ -41,7 +41,6 @@ import warnings as _warnings
import io as _io
import os as _os
import shutil as _shutil
-import stat as _stat
import errno as _errno
from random import Random as _Random
import sys as _sys
@@ -909,18 +908,7 @@ class TemporaryDirectory:
# raise NotADirectoryError and mask the PermissionError.
# So we must re-raise the current PermissionError if
# path is not a directory.
- try:
- st = _os.lstat(path)
- except OSError:
- if ignore_errors:
- return
- raise
- if (_stat.S_ISLNK(st.st_mode) or
- not _stat.S_ISDIR(st.st_mode) or
- (hasattr(st, 'st_file_attributes') and
- st.st_file_attributes & _stat.FILE_ATTRIBUTE_REPARSE_POINT and
- st.st_reparse_tag == _stat.IO_REPARSE_TAG_MOUNT_POINT)
- ):
+ if not _os.path.isdir(path) or _os.path.isjunction(path):
if ignore_errors:
return
raise