summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGiampaolo Rodola' <g.rodola@gmail.com>2013-02-12 14:14:17 (GMT)
committerGiampaolo Rodola' <g.rodola@gmail.com>2013-02-12 14:14:17 (GMT)
commit0166a283f65b08ee2dddb1b075f86862b8c7e3e4 (patch)
treef319f122b4865fcba24d86fd4d48f3f923cfea8b /Lib
parentb071d4f3da8db02dc5b355590f1f909896592ec3 (diff)
downloadcpython-0166a283f65b08ee2dddb1b075f86862b8c7e3e4.zip
cpython-0166a283f65b08ee2dddb1b075f86862b8c7e3e4.tar.gz
cpython-0166a283f65b08ee2dddb1b075f86862b8c7e3e4.tar.bz2
modernize some modules' code by replacing OSError->ENOENT/ENOTDIR/EPERM/EEXIST occurrences with the corresponding pep-3151 exceptions (FileNotFoundError, NotADirectoryError, etc.)
Diffstat (limited to 'Lib')
-rw-r--r--Lib/ctypes/util.py5
-rw-r--r--Lib/logging/handlers.py7
-rw-r--r--Lib/mailbox.py41
-rw-r--r--Lib/os.py5
-rwxr-xr-xLib/smtpd.py3
-rw-r--r--Lib/test/support.py17
6 files changed, 27 insertions, 51 deletions
diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
index 1515604..c427d31 100644
--- a/Lib/ctypes/util.py
+++ b/Lib/ctypes/util.py
@@ -102,9 +102,8 @@ elif os.name == "posix":
finally:
try:
os.unlink(ccout)
- except OSError as e:
- if e.errno != errno.ENOENT:
- raise
+ except FileNotFoundError:
+ pass
if rv == 10:
raise OSError('gcc or cc command not found')
res = re.search(expr, trace)
diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py
index 1491b47..263acc9 100644
--- a/Lib/logging/handlers.py
+++ b/Lib/logging/handlers.py
@@ -438,11 +438,8 @@ class WatchedFileHandler(logging.FileHandler):
try:
# stat the file by path, checking for existence
sres = os.stat(self.baseFilename)
- except OSError as err:
- if err.errno == errno.ENOENT:
- sres = None
- else:
- raise
+ except FileNotFoundError:
+ sres = None
# compare file system stat with that of our stream file handle
if not sres or sres[ST_DEV] != self.dev or sres[ST_INO] != self.ino:
if self.stream is not None:
diff --git a/Lib/mailbox.py b/Lib/mailbox.py
index ab20ff9..2049516 100644
--- a/Lib/mailbox.py
+++ b/Lib/mailbox.py
@@ -334,11 +334,8 @@ class Maildir(Mailbox):
# This overrides an inapplicable implementation in the superclass.
try:
self.remove(key)
- except KeyError:
+ except (KeyError, FileNotFoundError):
pass
- except OSError as e:
- if e.errno != errno.ENOENT:
- raise
def __setitem__(self, key, message):
"""Replace the keyed message; raise KeyError if it doesn't exist."""
@@ -493,16 +490,12 @@ class Maildir(Mailbox):
path = os.path.join(self._path, 'tmp', uniq)
try:
os.stat(path)
- except OSError as e:
- if e.errno == errno.ENOENT:
- Maildir._count += 1
- try:
- return _create_carefully(path)
- except OSError as e:
- if e.errno != errno.EEXIST:
- raise
- else:
- raise
+ except FileNotFoundError:
+ Maildir._count += 1
+ try:
+ return _create_carefully(path)
+ except FileExistsError:
+ pass
# Fall through to here if stat succeeded or open raised EEXIST.
raise ExternalClashError('Name clash prevented file creation: %s' %
@@ -700,12 +693,9 @@ class _singlefileMailbox(Mailbox):
os.chmod(new_file.name, mode)
try:
os.rename(new_file.name, self._path)
- except OSError as e:
- if e.errno == errno.EEXIST:
- os.remove(self._path)
- os.rename(new_file.name, self._path)
- else:
- raise
+ except FileExistsError:
+ os.remove(self._path)
+ os.rename(new_file.name, self._path)
self._file = open(self._path, 'rb+')
self._toc = new_toc
self._pending = False
@@ -2081,13 +2071,10 @@ def _lock_file(f, dotlock=True):
else:
os.rename(pre_lock.name, f.name + '.lock')
dotlock_done = True
- except OSError as e:
- if e.errno == errno.EEXIST:
- os.remove(pre_lock.name)
- raise ExternalClashError('dot lock unavailable: %s' %
- f.name)
- else:
- raise
+ except FileExistsError:
+ os.remove(pre_lock.name)
+ raise ExternalClashError('dot lock unavailable: %s' %
+ f.name)
except:
if fcntl:
fcntl.lockf(f, fcntl.LOCK_UN)
diff --git a/Lib/os.py b/Lib/os.py
index 659f3cc..5f35f4c 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -232,10 +232,9 @@ def makedirs(name, mode=0o777, exist_ok=False):
if head and tail and not path.exists(head):
try:
makedirs(head, mode, exist_ok)
- except OSError as e:
+ except FileExistsError:
# be happy if someone already created the path
- if e.errno != errno.EEXIST:
- raise
+ pass
cdir = curdir
if isinstance(tail, bytes):
cdir = bytes(curdir, 'ASCII')
diff --git a/Lib/smtpd.py b/Lib/smtpd.py
index 1e239a1..3cab264 100755
--- a/Lib/smtpd.py
+++ b/Lib/smtpd.py
@@ -850,8 +850,7 @@ if __name__ == '__main__':
nobody = pwd.getpwnam('nobody')[2]
try:
os.setuid(nobody)
- except OSError as e:
- if e.errno != errno.EPERM: raise
+ except PermissionError:
print('Cannot setuid "nobody"; try running with -n option.', file=sys.stderr)
sys.exit(1)
try:
diff --git a/Lib/test/support.py b/Lib/test/support.py
index 7f60111..d886ad4 100644
--- a/Lib/test/support.py
+++ b/Lib/test/support.py
@@ -291,25 +291,20 @@ else:
def unlink(filename):
try:
_unlink(filename)
- except OSError as error:
- # The filename need not exist.
- if error.errno not in (errno.ENOENT, errno.ENOTDIR):
- raise
+ except (FileNotFoundError, NotADirectoryError):
+ pass
def rmdir(dirname):
try:
_rmdir(dirname)
- except OSError as error:
- # The directory need not exist.
- if error.errno != errno.ENOENT:
- raise
+ except FileNotFoundError:
+ pass
def rmtree(path):
try:
_rmtree(path)
- except OSError as error:
- if error.errno != errno.ENOENT:
- raise
+ except FileNotFoundError:
+ pass
def make_legacy_pyc(source):
"""Move a PEP 3147 pyc/pyo file to its legacy pyc/pyo location.