]> granicus.if.org Git - python/commitdiff
Simplify and remove few dependencies on 'errno', thanks to PEP 3151.
authorFlorent Xicluna <florent.xicluna@gmail.com>
Fri, 28 Oct 2011 14:06:23 +0000 (16:06 +0200)
committerFlorent Xicluna <florent.xicluna@gmail.com>
Fri, 28 Oct 2011 14:06:23 +0000 (16:06 +0200)
Lib/importlib/__init__.py
Lib/importlib/_bootstrap.py
Lib/tarfile.py
Lib/tempfile.py
Lib/test/regrtest.py

index 2baaf9373290b715419c722a639fef84df5fa37d..9b20367f35d8a109aa27407a9d144676d48d35df 100644 (file)
@@ -81,11 +81,10 @@ except ImportError:
         except ImportError:
             raise ImportError('posix, nt, or os2 module required for importlib')
 _bootstrap._os = _os
-import imp, sys, marshal, errno, _io
+import imp, sys, marshal, _io
 _bootstrap.imp = imp
 _bootstrap.sys = sys
 _bootstrap.marshal = marshal
-_bootstrap.errno = errno
 _bootstrap._io = _io
 import _warnings
 _bootstrap._warnings = _warnings
index 1e22438996ec0c74ca523a858ebc50d5ecaaa0ad..4161b3e18c46eaefd7ddd11e345bae8b6af264f3 100644 (file)
@@ -7,7 +7,7 @@ work. One should use importlib as the public-facing version of this module.
 
 """
 
-# Injected modules are '_warnings', 'imp', 'sys', 'marshal', 'errno', '_io',
+# Injected modules are '_warnings', 'imp', 'sys', 'marshal', '_io',
 # and '_os' (a.k.a. 'posix', 'nt' or 'os2').
 # Injected attribute is path_sep.
 #
@@ -503,19 +503,13 @@ class _SourceFileLoader(_FileLoader, SourceLoader):
             parent = _path_join(parent, part)
             try:
                 _os.mkdir(parent)
-            except OSError as exc:
+            except FileExistsError:
                 # Probably another Python process already created the dir.
-                if exc.errno == errno.EEXIST:
-                    continue
-                else:
-                    raise
-            except IOError as exc:
+                continue
+            except PermissionError:
                 # If can't get proper access, then just forget about writing
                 # the data.
-                if exc.errno == errno.EACCES:
-                    return
-                else:
-                    raise
+                return
         try:
             _write_atomic(path, data)
         except (PermissionError, FileExistsError):
index 39fe635049c0bd7043a97ea63bb0dfd94867f29a..cf4e1643f897837e1ca4b52851b35a889f05067b 100644 (file)
@@ -42,7 +42,6 @@ import sys
 import os
 import shutil
 import stat
-import errno
 import time
 import struct
 import copy
@@ -2281,9 +2280,8 @@ class TarFile(object):
             # Use a safe mode for the directory, the real mode is set
             # later in _extract_member().
             os.mkdir(targetpath, 0o700)
-        except EnvironmentError as e:
-            if e.errno != errno.EEXIST:
-                raise
+        except FileExistsError:
+            pass
 
     def makefile(self, tarinfo, targetpath):
         """Make a file called targetpath.
index a45000384fbc7da4378ec871e02ed965a63abd32..ed107f4ea88d8fde707318b78d472bb04be09221 100644 (file)
@@ -31,7 +31,6 @@ import warnings as _warnings
 import sys as _sys
 import io as _io
 import os as _os
-import errno as _errno
 from random import Random as _Random
 
 try:
@@ -43,7 +42,7 @@ else:
     def _set_cloexec(fd):
         try:
             flags = _fcntl.fcntl(fd, _fcntl.F_GETFD, 0)
-        except IOError:
+        except OSError:
             pass
         else:
             # flags read successfully, modify
@@ -85,19 +84,19 @@ if hasattr(_os, "lstat"):
 elif hasattr(_os, "stat"):
     _stat = _os.stat
 else:
-    # Fallback.  All we need is something that raises os.error if the
+    # Fallback.  All we need is something that raises OSError if the
     # file doesn't exist.
     def _stat(fn):
         try:
             f = open(fn)
-        except IOError:
-            raise _os.error
+        except OSError:
+            raise OSError
         f.close()
 
 def _exists(fn):
     try:
         _stat(fn)
-    except _os.error:
+    except OSError:
         return False
     else:
         return True
@@ -144,7 +143,7 @@ def _candidate_tempdir_list():
     # As a last resort, the current directory.
     try:
         dirlist.append(_os.getcwd())
-    except (AttributeError, _os.error):
+    except (AttributeError, OSError):
         dirlist.append(_os.curdir)
 
     return dirlist
@@ -176,12 +175,11 @@ def _get_default_tempdir():
                 _os.unlink(filename)
                 del fp, fd
                 return dir
-            except (OSError, IOError) as e:
-                if e.args[0] != _errno.EEXIST:
-                    break # no point trying more names in this directory
+            except FileExistsError:
                 pass
-    raise IOError(_errno.ENOENT,
-                  "No usable temporary directory found in %s" % dirlist)
+            except OSError:
+                break   # no point trying more names in this directory
+    raise FileNotFoundError("No usable temporary directory found in %s" % dirlist)
 
 _name_sequence = None
 
@@ -211,12 +209,10 @@ def _mkstemp_inner(dir, pre, suf, flags):
             fd = _os.open(file, flags, 0o600)
             _set_cloexec(fd)
             return (fd, _os.path.abspath(file))
-        except OSError as e:
-            if e.errno == _errno.EEXIST:
-                continue # try again
-            raise
+        except FileExistsError:
+            continue    # try again
 
-    raise IOError(_errno.EEXIST, "No usable temporary file name found")
+    raise FileExistsError("No usable temporary file name found")
 
 
 # User visible interfaces.
@@ -300,12 +296,10 @@ def mkdtemp(suffix="", prefix=template, dir=None):
         try:
             _os.mkdir(file, 0o700)
             return file
-        except OSError as e:
-            if e.errno == _errno.EEXIST:
-                continue # try again
-            raise
+        except FileExistsError:
+            continue    # try again
 
-    raise IOError(_errno.EEXIST, "No usable temporary directory name found")
+    raise FileExistsError("No usable temporary directory name found")
 
 def mktemp(suffix="", prefix=template, dir=None):
     """User-callable function to return a unique temporary file name.  The
@@ -334,7 +328,7 @@ def mktemp(suffix="", prefix=template, dir=None):
         if not _exists(file):
             return file
 
-    raise IOError(_errno.EEXIST, "No usable temporary filename found")
+    raise FileExistsError("No usable temporary filename found")
 
 
 class _TemporaryFileWrapper:
@@ -664,7 +658,7 @@ class TemporaryDirectory(object):
     _islink = staticmethod(_os.path.islink)
     _remove = staticmethod(_os.remove)
     _rmdir = staticmethod(_os.rmdir)
-    _os_error = _os.error
+    _os_error = OSError
     _warn = _warnings.warn
 
     def _rmtree(self, path):
index 59bdb015eae7a63eee3454c839f373a64364d521..bbda525bea50a1b4f787bf2d6c16c09f83af203f 100755 (executable)
@@ -166,7 +166,6 @@ option '-uall,-gui'.
 """
 
 import builtins
-import errno
 import faulthandler
 import getopt
 import io
@@ -1721,9 +1720,8 @@ def _make_temp_dir_for_build(TEMPDIR):
         TEMPDIR = os.path.abspath(TEMPDIR)
         try:
             os.mkdir(TEMPDIR)
-        except OSError as e:
-            if e.errno != errno.EEXIST:
-                raise
+        except FileExistsError:
+            pass
 
     # Define a writable temp dir that will be used as cwd while running
     # the tests. The name of the dir includes the pid to allow parallel