diff options
author | Andrew Svetlov <andrew.svetlov@gmail.com> | 2012-12-19 12:33:35 (GMT) |
---|---|---|
committer | Andrew Svetlov <andrew.svetlov@gmail.com> | 2012-12-19 12:33:35 (GMT) |
commit | 2606a6f197a49f04611cb5cb0d67404d1ab14481 (patch) | |
tree | 35c228625105050ec2f593e6b362ce9e2498c760 | |
parent | 8a045cb93bded97220422a957941bb68341429d1 (diff) | |
download | cpython-2606a6f197a49f04611cb5cb0d67404d1ab14481.zip cpython-2606a6f197a49f04611cb5cb0d67404d1ab14481.tar.gz cpython-2606a6f197a49f04611cb5cb0d67404d1ab14481.tar.bz2 |
Issue #16719: Get rid of WindowsError. Use OSError instead
Patch by Serhiy Storchaka.
-rw-r--r-- | Doc/library/shutil.rst | 7 | ||||
-rw-r--r-- | Lib/ctypes/__init__.py | 6 | ||||
-rw-r--r-- | Lib/ctypes/test/test_checkretval.py | 2 | ||||
-rw-r--r-- | Lib/ctypes/test/test_win32.py | 2 | ||||
-rw-r--r-- | Lib/idlelib/EditorWindow.py | 4 | ||||
-rw-r--r-- | Lib/importlib/_bootstrap.py | 4 | ||||
-rw-r--r-- | Lib/multiprocessing/connection.py | 2 | ||||
-rw-r--r-- | Lib/ntpath.py | 4 | ||||
-rwxr-xr-x | Lib/platform.py | 2 | ||||
-rw-r--r-- | Lib/shutil.py | 11 | ||||
-rw-r--r-- | Lib/tarfile.py | 4 | ||||
-rw-r--r-- | Lib/test/test_codecs.py | 4 | ||||
-rw-r--r-- | Lib/test/test_mmap.py | 2 | ||||
-rw-r--r-- | Lib/test/test_os.py | 18 | ||||
-rw-r--r-- | Lib/test/test_winreg.py | 16 | ||||
-rw-r--r-- | Lib/test/test_winsound.py | 2 | ||||
-rw-r--r-- | Lib/urllib/request.py | 4 | ||||
-rw-r--r-- | Lib/webbrowser.py | 2 | ||||
-rw-r--r-- | Modules/_ctypes/callproc.c | 36 | ||||
-rw-r--r-- | Modules/_multiprocessing/multiprocessing.c | 4 | ||||
-rw-r--r-- | Modules/posixmodule.c | 2 | ||||
-rw-r--r-- | Objects/unicodeobject.c | 10 | ||||
-rw-r--r-- | PC/VC6/build_ssl.py | 2 | ||||
-rw-r--r-- | PC/VS7.1/build_ssl.py | 2 | ||||
-rw-r--r-- | PC/VS8.0/build_ssl.py | 2 | ||||
-rw-r--r-- | PC/winreg.c | 4 | ||||
-rw-r--r-- | Python/errors.c | 6 | ||||
-rw-r--r-- | Tools/scripts/win_add2path.py | 2 |
28 files changed, 79 insertions, 87 deletions
diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst index 5d3f881..34d8a63 100644 --- a/Doc/library/shutil.rst +++ b/Doc/library/shutil.rst @@ -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) diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py index c92e130..e2f75c5 100644 --- a/Lib/ctypes/__init__.py +++ b/Lib/ctypes/__init__.py @@ -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 diff --git a/Lib/ctypes/test/test_checkretval.py b/Lib/ctypes/test/test_checkretval.py index 01ccc57..19bb813 100644 --- a/Lib/ctypes/test/test_checkretval.py +++ b/Lib/ctypes/test/test_checkretval.py @@ -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) diff --git a/Lib/ctypes/test/test_win32.py b/Lib/ctypes/test/test_win32.py index 128914e..4c85825 100644 --- a/Lib/ctypes/test/test_win32.py +++ b/Lib/ctypes/test/test_win32.py @@ -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 diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index e74b619..4908705 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -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: diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index 0c6252e..3ea798d 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -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 diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py index fbbd5d9..391d6b2 100644 --- a/Lib/multiprocessing/connection.py +++ b/Lib/multiprocessing/connection.py @@ -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 diff --git a/Lib/ntpath.py b/Lib/ntpath.py index 12494c5..2fbb6d69 100644 --- a/Lib/ntpath.py +++ b/Lib/ntpath.py @@ -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() diff --git a/Lib/platform.py b/Lib/platform.py index 53182c6..143138d 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -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 diff --git a/Lib/shutil.py b/Lib/shutil.py index 9a79f85..b1e3017 100644 --- a/Lib/shutil.py +++ b/Lib/shutil.py @@ -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) diff --git a/Lib/tarfile.py b/Lib/tarfile.py index c0ae8b1..a0f132e 100644 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -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 diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py index f2a1ae3..be85a4c 100644 --- a/Lib/test/test_codecs.py +++ b/Lib/test/test_codecs.py @@ -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', diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py index e3b7909..e341bc7 100644 --- a/Lib/test/test_mmap.py +++ b/Lib/test/test_mmap.py @@ -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: diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index 4f86ef5..165a9bf 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -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", diff --git a/Lib/test/test_winreg.py b/Lib/test/test_winreg.py index 1100737..318937c 100644 --- a/Lib/test/test_winreg.py +++ b/Lib/test/test_winreg.py @@ -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, diff --git a/Lib/test/test_winsound.py b/Lib/test/test_winsound.py index eb7f75f..61d864a 100644 --- a/Lib/test/test_winsound.py +++ b/Lib/test/test_winsound.py @@ -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): diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index 6757bc6..2ebd892 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -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 diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py index 691f7db..f1a071b 100644 --- a/Lib/webbrowser.py +++ b/Lib/webbrowser.py @@ -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 diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index 09320cf..058e04e 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -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; diff --git a/Modules/_multiprocessing/multiprocessing.c b/Modules/_multiprocessing/multiprocessing.c index 110eff7..a77c3b3 100644 --- a/Modules/_multiprocessing/multiprocessing.c +++ b/Modules/_multiprocessing/multiprocessing.c @@ -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 */ diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index cba3691..10368b2 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -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 diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 4efc93d..1f602b7 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -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 diff --git a/PC/VC6/build_ssl.py b/PC/VC6/build_ssl.py index 95af084..89554b8 100644 --- a/PC/VC6/build_ssl.py +++ b/PC/VC6/build_ssl.py @@ -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) diff --git a/PC/VS7.1/build_ssl.py b/PC/VS7.1/build_ssl.py index 2e9f4e3..36f9d5c 100644 --- a/PC/VS7.1/build_ssl.py +++ b/PC/VS7.1/build_ssl.py @@ -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) diff --git a/PC/VS8.0/build_ssl.py b/PC/VS8.0/build_ssl.py index dc13ef5..bc6eba4 100644 --- a/PC/VS8.0/build_ssl.py +++ b/PC/VS8.0/build_ssl.py @@ -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) diff --git a/PC/winreg.c b/PC/winreg.c index 091b477..d3d6b83 100644 --- a/PC/winreg.c +++ b/PC/winreg.c @@ -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 */ diff --git a/Python/errors.c b/Python/errors.c index a2d1a82..1f955b5 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -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; diff --git a/Tools/scripts/win_add2path.py b/Tools/scripts/win_add2path.py index 9259b44..c85bea5 100644 --- a/Tools/scripts/win_add2path.py +++ b/Tools/scripts/win_add2path.py @@ -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] |