From fb9d5a16ce7c2c13f1a8de0d72f4bbe3f2468e30 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 19 Dec 2019 09:14:03 +0530 Subject: [PATCH] Remove remaining uses of WindowsError --- src/calibre/srv/utils.py | 6 ++++-- src/calibre/utils/shared_file.py | 12 ++++++------ src/calibre/utils/winreg/default_programs.py | 16 ++++++++-------- src/calibre/utils/winreg/lib.py | 6 +++--- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/calibre/srv/utils.py b/src/calibre/srv/utils.py index 666d833dfb..910ea78ff4 100644 --- a/src/calibre/srv/utils.py +++ b/src/calibre/srv/utils.py @@ -426,12 +426,14 @@ class HandleInterrupt(object): # {{{ def __enter__(self): if iswindows: if self.SetConsoleCtrlHandler(self.handle, 1) == 0: - raise WindowsError() + import ctypes + raise ctypes.WinError() def __exit__(self, *args): if iswindows: if self.SetConsoleCtrlHandler(self.handle, 0) == 0: - raise WindowsError() + import ctypes + raise ctypes.WinError() # }}} diff --git a/src/calibre/utils/shared_file.py b/src/calibre/utils/shared_file.py index ec379c4eff..2f122f141e 100644 --- a/src/calibre/utils/shared_file.py +++ b/src/calibre/utils/shared_file.py @@ -71,13 +71,13 @@ if iswindows: } def raise_winerror(pywinerr, path=None): - reraise( - WindowsError, WindowsError( - pywinerr.winerror, - (pywinerr.funcname or '') + ': ' + (pywinerr.strerror or ''), path - ), - sys.exc_info()[2] + exc = OSError( + pywinerr.winerror, + (pywinerr.funcname or '') + ': ' + (pywinerr.strerror or ''), + path, + pywinerr.winerror ) + reraise(type(exc), exc, sys.exc_info()[2]) def os_open(path, flags, mode=0o777, share_flags=FILE_SHARE_VALID_FLAGS): ''' diff --git a/src/calibre/utils/winreg/default_programs.py b/src/calibre/utils/winreg/default_programs.py index 55b55c0665..c8343f9ca4 100644 --- a/src/calibre/utils/winreg/default_programs.py +++ b/src/calibre/utils/winreg/default_programs.py @@ -198,8 +198,8 @@ def get_prog_id_map(base, key_path): desc, ans = None, {} try: k = Key(open_at=key_path, root=base) - except WindowsError as err: - if err.errno == winerror.ERROR_FILE_NOT_FOUND: + except OSError as err: + if err.winerror == winerror.ERROR_FILE_NOT_FOUND: return desc, ans raise with k: @@ -214,8 +214,8 @@ def get_prog_id_map(base, key_path): def get_open_data(base, prog_id): try: k = Key(open_at=r'Software\Classes\%s' % prog_id, root=base) - except WindowsError as err: - if err.errno == winerror.ERROR_FILE_NOT_FOUND: + except OSError as err: + if err.winerror == winerror.ERROR_FILE_NOT_FOUND: return None, None, None with k: cmd = k.get(sub_key=r'shell\open\command') @@ -266,8 +266,8 @@ def find_programs(extensions): for base in (HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE): try: k = Key(open_at=r'Software\RegisteredApplications', root=base) - except WindowsError as err: - if err.errno == winerror.ERROR_FILE_NOT_FOUND: + except OSError as err: + if err.winerror == winerror.ERROR_FILE_NOT_FOUND: continue raise with k: @@ -292,8 +292,8 @@ def find_programs(extensions): for ext in extensions: try: k = Key(open_at=r'Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.%s\OpenWithProgIDs' % ext, root=HKEY_CURRENT_USER) - except WindowsError as err: - if err.errno == winerror.ERROR_FILE_NOT_FOUND: + except OSError as err: + if err.winerror == winerror.ERROR_FILE_NOT_FOUND: continue for prog_id in itervalues(k): if prog_id and prog_id not in seen_prog_ids: diff --git a/src/calibre/utils/winreg/lib.py b/src/calibre/utils/winreg/lib.py index 71298b3e94..65af342bbc 100644 --- a/src/calibre/utils/winreg/lib.py +++ b/src/calibre/utils/winreg/lib.py @@ -252,8 +252,8 @@ class Key(object): data_buf = ctypes.create_unicode_buffer(max(2 * len(data_buf), size.value // 2)) except KeyError: return default - except WindowsError as err: - if fallback and err.errno == winerror.ERROR_BAD_COMMAND: + except OSError as err: + if fallback and err.winerror == winerror.ERROR_BAD_COMMAND: return self.get(value_name=value_name, default=default) raise return data_buf.value @@ -310,7 +310,7 @@ class Key(object): if sub_key is not None: try: key = RegOpenKey(key, sub_key) - except WindowsError: + except OSError: return try: name_buf = ctypes.create_unicode_buffer(16385)