summaryrefslogtreecommitdiff
path: root/Lib/pathlib.py
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2014-10-30 23:14:03 +0100
committerAntoine Pitrou <solipsis@pitrou.net>2014-10-30 23:14:03 +0100
commitd407d8e946949954a627d1ac685a288c3bb90d70 (patch)
tree0853638d1ffa43b112e72ece8ee1edcbd303334b /Lib/pathlib.py
parent5649562a3309e734e20d6c2c0ffebb122e649ea2 (diff)
downloadcpython-d407d8e946949954a627d1ac685a288c3bb90d70.tar.gz
Issue #22759: Query methods on pathlib.Path() (exists(), is_dir(), etc.) now return False when the underlying stat call raises NotADirectoryError.
Diffstat (limited to 'Lib/pathlib.py')
-rw-r--r--Lib/pathlib.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/Lib/pathlib.py b/Lib/pathlib.py
index 48b70317cd..f5598c51d2 100644
--- a/Lib/pathlib.py
+++ b/Lib/pathlib.py
@@ -8,7 +8,7 @@ import re
import sys
from collections import Sequence
from contextlib import contextmanager
-from errno import EINVAL, ENOENT
+from errno import EINVAL, ENOENT, ENOTDIR
from operator import attrgetter
from stat import S_ISDIR, S_ISLNK, S_ISREG, S_ISSOCK, S_ISBLK, S_ISCHR, S_ISFIFO
from urllib.parse import quote_from_bytes as urlquote_from_bytes
@@ -1187,7 +1187,7 @@ class Path(PurePath):
try:
self.stat()
except OSError as e:
- if e.errno != ENOENT:
+ if e.errno not in (ENOENT, ENOTDIR):
raise
return False
return True
@@ -1199,7 +1199,7 @@ class Path(PurePath):
try:
return S_ISDIR(self.stat().st_mode)
except OSError as e:
- if e.errno != ENOENT:
+ if e.errno not in (ENOENT, ENOTDIR):
raise
# Path doesn't exist or is a broken symlink
# (see https://bitbucket.org/pitrou/pathlib/issue/12/)
@@ -1213,7 +1213,7 @@ class Path(PurePath):
try:
return S_ISREG(self.stat().st_mode)
except OSError as e:
- if e.errno != ENOENT:
+ if e.errno not in (ENOENT, ENOTDIR):
raise
# Path doesn't exist or is a broken symlink
# (see https://bitbucket.org/pitrou/pathlib/issue/12/)
@@ -1226,7 +1226,7 @@ class Path(PurePath):
try:
return S_ISLNK(self.lstat().st_mode)
except OSError as e:
- if e.errno != ENOENT:
+ if e.errno not in (ENOENT, ENOTDIR):
raise
# Path doesn't exist
return False
@@ -1238,7 +1238,7 @@ class Path(PurePath):
try:
return S_ISBLK(self.stat().st_mode)
except OSError as e:
- if e.errno != ENOENT:
+ if e.errno not in (ENOENT, ENOTDIR):
raise
# Path doesn't exist or is a broken symlink
# (see https://bitbucket.org/pitrou/pathlib/issue/12/)
@@ -1251,7 +1251,7 @@ class Path(PurePath):
try:
return S_ISCHR(self.stat().st_mode)
except OSError as e:
- if e.errno != ENOENT:
+ if e.errno not in (ENOENT, ENOTDIR):
raise
# Path doesn't exist or is a broken symlink
# (see https://bitbucket.org/pitrou/pathlib/issue/12/)
@@ -1264,7 +1264,7 @@ class Path(PurePath):
try:
return S_ISFIFO(self.stat().st_mode)
except OSError as e:
- if e.errno != ENOENT:
+ if e.errno not in (ENOENT, ENOTDIR):
raise
# Path doesn't exist or is a broken symlink
# (see https://bitbucket.org/pitrou/pathlib/issue/12/)
@@ -1277,7 +1277,7 @@ class Path(PurePath):
try:
return S_ISSOCK(self.stat().st_mode)
except OSError as e:
- if e.errno != ENOENT:
+ if e.errno not in (ENOENT, ENOTDIR):
raise
# Path doesn't exist or is a broken symlink
# (see https://bitbucket.org/pitrou/pathlib/issue/12/)