]> granicus.if.org Git - python/commitdiff
Issue #16719: Get rid of WindowsError. Use OSError instead
authorAndrew Svetlov <andrew.svetlov@gmail.com>
Wed, 19 Dec 2012 12:33:35 +0000 (14:33 +0200)
committerAndrew Svetlov <andrew.svetlov@gmail.com>
Wed, 19 Dec 2012 12:33:35 +0000 (14:33 +0200)
Patch by Serhiy Storchaka.

28 files changed:
Doc/library/shutil.rst
Lib/ctypes/__init__.py
Lib/ctypes/test/test_checkretval.py
Lib/ctypes/test/test_win32.py
Lib/idlelib/EditorWindow.py
Lib/importlib/_bootstrap.py
Lib/multiprocessing/connection.py
Lib/ntpath.py
Lib/platform.py
Lib/shutil.py
Lib/tarfile.py
Lib/test/test_codecs.py
Lib/test/test_mmap.py
Lib/test/test_os.py
Lib/test/test_winreg.py
Lib/test/test_winsound.py
Lib/urllib/request.py
Lib/webbrowser.py
Modules/_ctypes/callproc.c
Modules/_multiprocessing/multiprocessing.c
Modules/posixmodule.c
Objects/unicodeobject.c
PC/VC6/build_ssl.py
PC/VS7.1/build_ssl.py
PC/VS8.0/build_ssl.py
PC/winreg.c
Python/errors.c
Tools/scripts/win_add2path.py

index 5d3f8814b7e5249377f8e61a40e7e244c9e15853..34d8a631a7f915b8b1f82b7d26873a676784e6c2 100644 (file)
@@ -393,11 +393,10 @@ provided by this module. ::
                errors.extend(err.args[0])
        try:
            copystat(src, dst)
-       except WindowsError:
-           # can't copy file access times on Windows
-           pass
        except OSError as why:
-           errors.extend((src, dst, str(why)))
+           # can't copy file access times on Windows
+           if why.winerror is None:
+               errors.extend((src, dst, str(why)))
        if errors:
            raise Error(errors)
 
index c92e130976bc88bb308604e105fb02db01ae6b63..e2f75c598f96adfea55eca3d9e1dddcd48365c52 100644 (file)
@@ -395,7 +395,7 @@ if _os.name in ("nt", "ce"):
         _type_ = "l"
         # _check_retval_ is called with the function's result when it
         # is used as restype.  It checks for the FAILED bit, and
-        # raises a WindowsError if it is set.
+        # raises an OSError if it is set.
         #
         # The _check_retval_ method is implemented in C, so that the
         # method definition itself is not included in the traceback
@@ -407,7 +407,7 @@ if _os.name in ("nt", "ce"):
     class OleDLL(CDLL):
         """This class represents a dll exporting functions using the
         Windows stdcall calling convention, and returning HRESULT.
-        HRESULT error values are automatically raised as WindowsError
+        HRESULT error values are automatically raised as OSError
         exceptions.
         """
         _func_flags_ = _FUNCFLAG_STDCALL
@@ -456,7 +456,7 @@ if _os.name in ("nt", "ce"):
             code = GetLastError()
         if descr is None:
             descr = FormatError(code).strip()
-        return WindowsError(None, descr, None, code)
+        return OSError(None, descr, None, code)
 
 if sizeof(c_uint) == sizeof(c_void_p):
     c_size_t = c_uint
index 01ccc57686fd20b836d1dcef0d800fd8bf9b4caf..19bb8135b3b610127bdc8dc817f2e01042dc58dd 100644 (file)
@@ -31,7 +31,7 @@ class Test(unittest.TestCase):
         pass
     else:
         def test_oledll(self):
-            self.assertRaises(WindowsError,
+            self.assertRaises(OSError,
                                   oledll.oleaut32.CreateTypeLib2,
                                   0, None, None)
 
index 128914ea2daf1c2620287f9b96b9a00b91d482b3..4c858257667dd751319120933e1ecb93e7b811f6 100644 (file)
@@ -40,7 +40,7 @@ if sys.platform == "win32":
                 # Call functions with invalid arguments, and make sure
                 # that access violations are trapped and raise an
                 # exception.
-                self.assertRaises(WindowsError, windll.kernel32.GetModuleHandleA, 32)
+                self.assertRaises(OSError, windll.kernel32.GetModuleHandleA, 32)
 
         def test_noargs(self):
             # This is a special case on win32 x64
index e74b619fb26dc72104241db2bb00fad954f3cc32..49087058b08f232cfeb5d014723d72b398b3dd44 100644 (file)
@@ -536,7 +536,7 @@ class EditorWindow(object):
         if sys.platform[:3] == 'win':
             try:
                 os.startfile(self.help_url)
-            except WindowsError as why:
+            except OSError as why:
                 tkMessageBox.showerror(title='Document Start Failure',
                     message=str(why), parent=self.text)
         else:
@@ -845,7 +845,7 @@ class EditorWindow(object):
             if sys.platform[:3] == 'win':
                 try:
                     os.startfile(helpfile)
-                except WindowsError as why:
+                except OSError as why:
                     tkMessageBox.showerror(title='Document Start Failure',
                         message=str(why), parent=self.text)
             else:
index 0c6252ebd63b4b32617447d1c1bf1855bcbd8d1a..3ea798d5bd2b9dd758a28fe191901dc37a628426 100644 (file)
@@ -755,7 +755,7 @@ class WindowsRegistryFinder:
     def _open_registry(cls, key):
         try:
             return _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, key)
-        except WindowsError:
+        except OSError:
             return _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, key)
 
     @classmethod
@@ -769,7 +769,7 @@ class WindowsRegistryFinder:
         try:
             with cls._open_registry(key) as hkey:
                 filepath = _winreg.QueryValue(hkey, "")
-        except WindowsError:
+        except OSError:
             return None
         return filepath
 
index fbbd5d91d39047a2a43811f5038a8267c29a066a..391d6b2fbbec31e49a73ba31814cf6dd60930349 100644 (file)
@@ -676,7 +676,7 @@ if sys.platform == 'win32':
                     0, _winapi.NULL, _winapi.OPEN_EXISTING,
                     _winapi.FILE_FLAG_OVERLAPPED, _winapi.NULL
                     )
-            except WindowsError as e:
+            except OSError as e:
                 if e.winerror not in (_winapi.ERROR_SEM_TIMEOUT,
                                       _winapi.ERROR_PIPE_BUSY) or _check_timeout(t):
                     raise
index 12494c5fb5fb46dda7802a96f4da276500e32b78..2fbb6d69ddf9d3b7826b602abbedd73339f31092 100644 (file)
@@ -331,7 +331,7 @@ def lexists(path):
     """Test whether a path exists.  Returns True for broken symbolic links"""
     try:
         st = os.lstat(path)
-    except (OSError, WindowsError):
+    except OSError:
         return False
     return True
 
@@ -584,7 +584,7 @@ else:  # use native Windows method on Windows
         if path: # Empty path must return current working directory.
             try:
                 path = _getfullpathname(path)
-            except WindowsError:
+            except OSError:
                 pass # Bad path - return unchanged.
         elif isinstance(path, bytes):
             path = os.getcwdb()
index 53182c6f277eed3b225c5e10b0895f105f211f82..143138dcfbd4c8fb676d5bb4193bcf1771b9143d 100755 (executable)
@@ -581,7 +581,7 @@ def win32_ver(release='',version='',csd='',ptype=''):
                     # Discard any type that isn't REG_SZ
                     if type == REG_SZ and name.find("Server") != -1:
                         product_type = VER_NT_SERVER
-                except WindowsError:
+                except OSError:
                     # Use default of VER_NT_WORKSTATION
                     pass
 
index 9a79f852f98641bcdd95b04c2f99b36731be38b8..b1e30175a8c627ed6149e08c1667a38b68ae5491 100644 (file)
@@ -60,11 +60,6 @@ class RegistryError(Exception):
     and unpacking registeries fails"""
 
 
-try:
-    WindowsError
-except NameError:
-    WindowsError = None
-
 def copyfileobj(fsrc, fdst, length=16*1024):
     """copy data from file-like object fsrc to file-like object fdst"""
     while 1:
@@ -334,10 +329,8 @@ def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,
     try:
         copystat(src, dst)
     except OSError as why:
-        if WindowsError is not None and isinstance(why, WindowsError):
-            # Copying file access times may fail on Windows
-            pass
-        else:
+        # Copying file access times may fail on Windows
+        if why.winerror is None:
             errors.append((src, dst, str(why)))
     if errors:
         raise Error(errors)
index c0ae8b1103b2aa4bc1647f7bee1f587e976060dc..a0f132e20ddfe41538feb495c21c8840b1df5136 100644 (file)
@@ -56,9 +56,9 @@ except ImportError:
 # os.symlink on Windows prior to 6.0 raises NotImplementedError
 symlink_exception = (AttributeError, NotImplementedError)
 try:
-    # WindowsError (1314) will be raised if the caller does not hold the
+    # OSError (winerror=1314) will be raised if the caller does not hold the
     # SeCreateSymbolicLinkPrivilege privilege
-    symlink_exception += (WindowsError,)
+    symlink_exception += (OSError,)
 except NameError:
     pass
 
index f2a1ae3f790f2ef54bd7902fb5f87a7fdfeb5bfb..be85a4ca410bc6040863beb2db49ea5f62d5194b 100644 (file)
@@ -2035,8 +2035,8 @@ class CodePageTest(unittest.TestCase):
     def test_invalid_code_page(self):
         self.assertRaises(ValueError, codecs.code_page_encode, -1, 'a')
         self.assertRaises(ValueError, codecs.code_page_decode, -1, b'a')
-        self.assertRaises(WindowsError, codecs.code_page_encode, 123, 'a')
-        self.assertRaises(WindowsError, codecs.code_page_decode, 123, b'a')
+        self.assertRaises(OSError, codecs.code_page_encode, 123, 'a')
+        self.assertRaises(OSError, codecs.code_page_decode, 123, b'a')
 
     def test_code_page_name(self):
         self.assertRaisesRegex(UnicodeEncodeError, 'cp932',
index e3b790990a6bb895947375e7375b2f8c52995248..e341bc73aa17844f72da6daac8826e3fd4db29af 100644 (file)
@@ -658,7 +658,7 @@ class MmapTests(unittest.TestCase):
             m = mmap.mmap(f.fileno(), 0)
             f.close()
             try:
-                m.resize(0) # will raise WindowsError
+                m.resize(0) # will raise OSError
             except:
                 pass
             try:
index 4f86ef538f155649ea7e0c700d7732f9468d13fa..165a9bfeac6bb4d875589a65ce5b463e29d0f7c2 100644 (file)
@@ -468,9 +468,9 @@ class StatAttributeTests(unittest.TestCase):
             # Verify that an open file can be stat'ed
             try:
                 os.stat(r"c:\pagefile.sys")
-            except WindowsError as e:
-                if e.errno == 2: # file does not exist; cannot run test
-                    return
+            except FileNotFoundError:
+                pass # file does not exist; cannot run test
+            except OSError as e:
                 self.fail("Could not stat pagefile.sys")
 
         @unittest.skipUnless(hasattr(os, "pipe"), "requires os.pipe()")
@@ -1042,27 +1042,27 @@ class ExecTests(unittest.TestCase):
 
 class Win32ErrorTests(unittest.TestCase):
     def test_rename(self):
-        self.assertRaises(WindowsError, os.rename, support.TESTFN, support.TESTFN+".bak")
+        self.assertRaises(OSError, os.rename, support.TESTFN, support.TESTFN+".bak")
 
     def test_remove(self):
-        self.assertRaises(WindowsError, os.remove, support.TESTFN)
+        self.assertRaises(OSError, os.remove, support.TESTFN)
 
     def test_chdir(self):
-        self.assertRaises(WindowsError, os.chdir, support.TESTFN)
+        self.assertRaises(OSError, os.chdir, support.TESTFN)
 
     def test_mkdir(self):
         f = open(support.TESTFN, "w")
         try:
-            self.assertRaises(WindowsError, os.mkdir, support.TESTFN)
+            self.assertRaises(OSError, os.mkdir, support.TESTFN)
         finally:
             f.close()
             os.unlink(support.TESTFN)
 
     def test_utime(self):
-        self.assertRaises(WindowsError, os.utime, support.TESTFN, None)
+        self.assertRaises(OSError, os.utime, support.TESTFN, None)
 
     def test_chmod(self):
-        self.assertRaises(WindowsError, os.chmod, support.TESTFN, 0)
+        self.assertRaises(OSError, os.chmod, support.TESTFN, 0)
 
 class TestInvalidFD(unittest.TestCase):
     singles = ["fchdir", "dup", "fdopen", "fdatasync", "fstat",
index 1100737d4cbf2fd2a44ba5268e0dd7573b61c542..318937c4b58d27a70d3e1e1c0962ad25dc39783f 100644 (file)
@@ -54,13 +54,13 @@ class BaseWinregTests(unittest.TestCase):
     def delete_tree(self, root, subkey):
         try:
             hkey = OpenKey(root, subkey, KEY_ALL_ACCESS)
-        except WindowsError:
+        except OSError:
             # subkey does not exist
             return
         while True:
             try:
                 subsubkey = EnumKey(hkey, 0)
-            except WindowsError:
+            except OSError:
                 # no more subkeys
                 break
             self.delete_tree(hkey, subsubkey)
@@ -176,7 +176,7 @@ class BaseWinregTests(unittest.TestCase):
         try:
             key = OpenKey(root_key, test_key_name)
             self.fail("Could open the non-existent key")
-        except WindowsError: # Use this error name this time
+        except OSError: # Use this error name this time
             pass
 
     def _test_all(self, root_key, subkeystr="sub_key"):
@@ -227,7 +227,7 @@ class LocalWinregTests(BaseWinregTests):
 
     def test_inexistant_remote_registry(self):
         connect = lambda: ConnectRegistry("abcdefghijkl", HKEY_CURRENT_USER)
-        self.assertRaises(WindowsError, connect)
+        self.assertRaises(OSError, connect)
 
     def testExpandEnvironmentStrings(self):
         r = ExpandEnvironmentStrings("%windir%\\test")
@@ -239,8 +239,8 @@ class LocalWinregTests(BaseWinregTests):
         try:
             with ConnectRegistry(None, HKEY_LOCAL_MACHINE) as h:
                 self.assertNotEqual(h.handle, 0)
-                raise WindowsError
-        except WindowsError:
+                raise OSError
+        except OSError:
             self.assertEqual(h.handle, 0)
 
     def test_changing_value(self):
@@ -375,7 +375,7 @@ class Win64WinregTests(BaseWinregTests):
                 open_fail = lambda: OpenKey(HKEY_CURRENT_USER,
                                             test_reflect_key_name, 0,
                                             KEY_READ | KEY_WOW64_64KEY)
-                self.assertRaises(WindowsError, open_fail)
+                self.assertRaises(OSError, open_fail)
 
             # Now explicitly open the 64-bit version of the key
             with OpenKey(HKEY_CURRENT_USER, test_reflect_key_name, 0,
@@ -415,7 +415,7 @@ class Win64WinregTests(BaseWinregTests):
             open_fail = lambda: OpenKeyEx(HKEY_CURRENT_USER,
                                           test_reflect_key_name, 0,
                                           KEY_READ | KEY_WOW64_64KEY)
-            self.assertRaises(WindowsError, open_fail)
+            self.assertRaises(OSError, open_fail)
 
             # Make sure the 32-bit key is actually there
             with OpenKeyEx(HKEY_CURRENT_USER, test_reflect_key_name, 0,
index eb7f75f066adc3347fe57f818636141f6c2f9411..61d864a64857f7ab90d7a5fd3ff16db584988340 100644 (file)
@@ -22,7 +22,7 @@ def has_sound(sound):
         key = winreg.OpenKeyEx(winreg.HKEY_CURRENT_USER,
                 "AppEvents\Schemes\Apps\.Default\{0}\.Default".format(sound))
         return winreg.EnumValue(key, 0)[1] != ""
-    except WindowsError:
+    except OSError:
         return False
 
 class BeepTest(unittest.TestCase):
index 6757bc615880de4d99520a7b76572c17e334cbae..2ebd89260f5bdafd8937debbadd2f5bbbacb3ce7 100644 (file)
@@ -2573,7 +2573,7 @@ elif os.name == 'nt':
                         proxies['https'] = 'https://%s' % proxyServer
                         proxies['ftp'] = 'ftp://%s' % proxyServer
             internetSettings.Close()
-        except (WindowsError, ValueError, TypeError):
+        except (OSError, ValueError, TypeError):
             # Either registry key not found etc, or the value in an
             # unexpected format.
             # proxies already set up to be empty so nothing to do
@@ -2603,7 +2603,7 @@ elif os.name == 'nt':
             proxyOverride = str(winreg.QueryValueEx(internetSettings,
                                                      'ProxyOverride')[0])
             # ^^^^ Returned as Unicode but problems if not converted to ASCII
-        except WindowsError:
+        except OSError:
             return 0
         if not proxyEnable or not proxyOverride:
             return 0
index 691f7db175de306ec2cde466dd2bcc1b6090045d..f1a071b779f9e6fcba04fcb7a1408b18bd08ef31 100644 (file)
@@ -534,7 +534,7 @@ if sys.platform[:3] == "win":
         def open(self, url, new=0, autoraise=True):
             try:
                 os.startfile(url)
-            except WindowsError:
+            except OSError:
                 # [Error 22] No application is associated with the specified
                 # file for this operation: '<URL>'
                 return False
index 09320cf1c04a457cffb913b8e8b15f22bde9b661..058e04e9dea5a95dc77f27412bf979bd1b2295c0 100644 (file)
@@ -257,18 +257,18 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr)
            to a virtual address for which it does not
            have the appropriate access. */
         if (pr->ExceptionInformation[0] == 0)
-            PyErr_Format(PyExc_WindowsError,
+            PyErr_Format(PyExc_OSError,
                          "exception: access violation reading %p",
                          pr->ExceptionInformation[1]);
         else
-            PyErr_Format(PyExc_WindowsError,
+            PyErr_Format(PyExc_OSError,
                          "exception: access violation writing %p",
                          pr->ExceptionInformation[1]);
         break;
 
     case EXCEPTION_BREAKPOINT:
         /* A breakpoint was encountered. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: breakpoint encountered");
         break;
 
@@ -278,14 +278,14 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr)
            alignment. For example, 16-bit values must be
            aligned on 2-byte boundaries, 32-bit values on
            4-byte boundaries, and so on. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: datatype misalignment");
         break;
 
     case EXCEPTION_SINGLE_STEP:
         /* A trace trap or other single-instruction mechanism
            signaled that one instruction has been executed. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: single step");
         break;
 
@@ -293,7 +293,7 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr)
         /* The thread attempted to access an array element
            that is out of bounds, and the underlying hardware
            supports bounds checking. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: array bounds exceeded");
         break;
 
@@ -302,28 +302,28 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr)
            is denormal. A denormal value is one that is too
            small to represent as a standard floating-point
            value. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: floating-point operand denormal");
         break;
 
     case EXCEPTION_FLT_DIVIDE_BY_ZERO:
         /* The thread attempted to divide a floating-point
            value by a floating-point divisor of zero. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: float divide by zero");
         break;
 
     case EXCEPTION_FLT_INEXACT_RESULT:
         /* The result of a floating-point operation cannot be
            represented exactly as a decimal fraction. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: float inexact");
         break;
 
     case EXCEPTION_FLT_INVALID_OPERATION:
         /* This exception represents any floating-point
            exception not included in this list. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: float invalid operation");
         break;
 
@@ -331,21 +331,21 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr)
         /* The exponent of a floating-point operation is
            greater than the magnitude allowed by the
            corresponding type. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: float overflow");
         break;
 
     case EXCEPTION_FLT_STACK_CHECK:
         /* The stack overflowed or underflowed as the result
            of a floating-point operation. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: stack over/underflow");
         break;
 
     case EXCEPTION_STACK_OVERFLOW:
         /* The stack overflowed or underflowed as the result
            of a floating-point operation. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: stack overflow");
         break;
 
@@ -353,21 +353,21 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr)
         /* The exponent of a floating-point operation is less
            than the magnitude allowed by the corresponding
            type. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: float underflow");
         break;
 
     case EXCEPTION_INT_DIVIDE_BY_ZERO:
         /* The thread attempted to divide an integer value by
            an integer divisor of zero. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: integer divide by zero");
         break;
 
     case EXCEPTION_INT_OVERFLOW:
         /* The result of an integer operation caused a carry
            out of the most significant bit of the result. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: integer overflow");
         break;
 
@@ -375,14 +375,14 @@ static void SetException(DWORD code, EXCEPTION_RECORD *pr)
         /* The thread attempted to execute an instruction
            whose operation is not allowed in the current
            machine mode. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: priviledged instruction");
         break;
 
     case EXCEPTION_NONCONTINUABLE_EXCEPTION:
         /* The thread attempted to continue execution after a
            noncontinuable exception occurred. */
-        PyErr_SetString(PyExc_WindowsError,
+        PyErr_SetString(PyExc_OSError,
                         "exception: nocontinuable");
         break;
 
index 110eff710edaac12014e0af9617df3e8350a83a4..a77c3b341c4fc85a05d93005271da9b1800ece08 100644 (file)
@@ -21,12 +21,12 @@ _PyMp_SetError(PyObject *Type, int num)
 #ifdef MS_WINDOWS
     case MP_STANDARD_ERROR:
         if (Type == NULL)
-            Type = PyExc_WindowsError;
+            Type = PyExc_OSError;
         PyErr_SetExcFromWindowsErr(Type, 0);
         break;
     case MP_SOCKET_ERROR:
         if (Type == NULL)
-            Type = PyExc_WindowsError;
+            Type = PyExc_OSError;
         PyErr_SetExcFromWindowsErr(Type, WSAGetLastError());
         break;
 #else /* !MS_WINDOWS */
index cba3691007cd5a0568af99c582cacc6626c850a1..10368b2c051f495e7fb8f7de340d9fd447a2aded 100644 (file)
@@ -1041,7 +1041,7 @@ win32_error_object(char* function, PyObject* filename)
     errno = GetLastError();
     if (filename)
         return PyErr_SetExcFromWindowsErrWithFilenameObject(
-                    PyExc_WindowsError,
+                    PyExc_OSError,
                     errno,
                     filename);
     else
index 4efc93df0675afed3c5e57e96e078ef01876c4e9..1f602b7ea6fa4cab69d79e2721999d5fe1c7532a 100644 (file)
@@ -6589,8 +6589,8 @@ decode_code_page_flags(UINT code_page)
  * Decode a byte string from a Windows code page into unicode object in strict
  * mode.
  *
- * Returns consumed size if succeed, returns -2 on decode error, or raise a
- * WindowsError and returns -1 on other error.
+ * Returns consumed size if succeed, returns -2 on decode error, or raise an
+ * OSError and returns -1 on other error.
  */
 static int
 decode_code_page_strict(UINT code_page,
@@ -6641,7 +6641,7 @@ error:
  * Decode a byte string from a code page into unicode object with an error
  * handler.
  *
- * Returns consumed size if succeed, or raise a WindowsError or
+ * Returns consumed size if succeed, or raise an OSError or
  * UnicodeDecodeError exception and returns -1 on error.
  */
 static int
@@ -6897,7 +6897,7 @@ encode_code_page_flags(UINT code_page, const char *errors)
  * mode.
  *
  * Returns consumed characters if succeed, returns -2 on encode error, or raise
- * a WindowsError and returns -1 on other error.
+ * an OSError and returns -1 on other error.
  */
 static int
 encode_code_page_strict(UINT code_page, PyObject **outbytes,
@@ -6993,7 +6993,7 @@ error:
  * Encode a Unicode string to a Windows code page into a byte string using a
  * error handler.
  *
- * Returns consumed characters if succeed, or raise a WindowsError and returns
+ * Returns consumed characters if succeed, or raise an OSError and returns
  * -1 on other error.
  */
 static int
index 95af084afe802275b0ead864251721310a3b8e84..89554b899c6c27085493106887d6ea61111241a6 100644 (file)
@@ -66,7 +66,7 @@ def find_best_ssl_dir(sources):
             # note: do not abspath s; the build will fail if any
             # higher up directory name has spaces in it.
             fnames = os.listdir(s)
-        except os.error:
+        except OSError:
             fnames = []
         for fname in fnames:
             fqn = os.path.join(s, fname)
index 2e9f4e3bd06382b6d9006f0e27c38a0f4112dd4e..36f9d5c51d6d70015f3410b6574abb064bda884c 100644 (file)
@@ -62,7 +62,7 @@ def find_best_ssl_dir(sources):
             # note: do not abspath s; the build will fail if any
             # higher up directory name has spaces in it.
             fnames = os.listdir(s)
-        except os.error:
+        except OSError:
             fnames = []
         for fname in fnames:
             fqn = os.path.join(s, fname)
index dc13ef5709b43cbbfef0f5b03cd05b939bf8501e..bc6eba47a61d98cc385ac255a5f0ea95996de2ef 100644 (file)
@@ -71,7 +71,7 @@ def find_best_ssl_dir(sources):
             # note: do not abspath s; the build will fail if any
             # higher up directory name has spaces in it.
             fnames = os.listdir(s)
-        except os.error:
+        except OSError:
             fnames = []
         for fname in fnames:
             fqn = os.path.join(s, fname)
index 091b477235f63cfe7b6afdd581aaa56273905999..d3d6b8384091530edf0e6cdd9530298b87f33cc4 100644 (file)
@@ -1794,9 +1794,9 @@ PyMODINIT_FUNC PyInit_winreg(void)
     if (PyDict_SetItemString(d, "HKEYType",
                              (PyObject *)&PyHKEY_Type) != 0)
         return NULL;
-    Py_INCREF(PyExc_WindowsError);
+    Py_INCREF(PyExc_OSError);
     if (PyDict_SetItemString(d, "error",
-                             PyExc_WindowsError) != 0)
+                             PyExc_OSError) != 0)
         return NULL;
 
     /* Add the relevant constants */
index a2d1a82ddf222012d778206e0995c62c7ba9b1af..1f955b54f049e8bf29ed77f1dfc04e4a2798352b 100644 (file)
@@ -588,7 +588,7 @@ PyObject *PyErr_SetExcFromWindowsErr(PyObject *exc, int ierr)
 
 PyObject *PyErr_SetFromWindowsErr(int ierr)
 {
-    return PyErr_SetExcFromWindowsErrWithFilename(PyExc_WindowsError,
+    return PyErr_SetExcFromWindowsErrWithFilename(PyExc_OSError,
                                                   ierr, NULL);
 }
 PyObject *PyErr_SetFromWindowsErrWithFilename(
@@ -597,7 +597,7 @@ PyObject *PyErr_SetFromWindowsErrWithFilename(
 {
     PyObject *name = filename ? PyUnicode_DecodeFSDefault(filename) : NULL;
     PyObject *result = PyErr_SetExcFromWindowsErrWithFilenameObject(
-                                                  PyExc_WindowsError,
+                                                  PyExc_OSError,
                                                   ierr, name);
     Py_XDECREF(name);
     return result;
@@ -611,7 +611,7 @@ PyObject *PyErr_SetFromWindowsErrWithUnicodeFilename(
                      PyUnicode_FromUnicode(filename, wcslen(filename)) :
              NULL;
     PyObject *result = PyErr_SetExcFromWindowsErrWithFilenameObject(
-                                                  PyExc_WindowsError,
+                                                  PyExc_OSError,
                                                   ierr, name);
     Py_XDECREF(name);
     return result;
index 9259b441f763d66ff051c9384d1cdeb44b8e6885..c85bea576fe83a3f92cad5d3bac5a4a85bca83be 100644 (file)
@@ -30,7 +30,7 @@ def modify():
     with winreg.CreateKey(HKCU, ENV) as key:
         try:
             envpath = winreg.QueryValueEx(key, PATH)[0]
-        except WindowsError:
+        except OSError:
             envpath = DEFAULT
 
         paths = [envpath]