summaryrefslogtreecommitdiff
path: root/Lib/shutil.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/shutil.py')
-rw-r--r--Lib/shutil.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/Lib/shutil.py b/Lib/shutil.py
index 99e4017d86..6d80feed67 100644
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -405,8 +405,10 @@ def _rmtree_safe_fd(topfd, path, onerror):
except os.error:
onerror(os.unlink, fullname, sys.exc_info())
-_use_fd_functions = (os.unlink in os.supports_dir_fd and
- os.open in os.supports_dir_fd)
+_use_fd_functions = ({os.open, os.stat, os.unlink, os.rmdir} <=
+ os.supports_dir_fd and
+ os.listdir in os.supports_fd and
+ os.stat in os.supports_follow_symlinks)
def rmtree(path, ignore_errors=False, onerror=None):
"""Recursively delete a directory tree.