Replace IOError with OSError (#16715)

This commit is contained in:
Andrew Svetlov 2012-12-25 16:47:37 +02:00
parent 16bdd4120d
commit f7a17b48d7
121 changed files with 381 additions and 386 deletions

View file

@ -94,7 +94,7 @@ def _get_system_version():
_SYSTEM_VERSION = '' _SYSTEM_VERSION = ''
try: try:
f = open('/System/Library/CoreServices/SystemVersion.plist') f = open('/System/Library/CoreServices/SystemVersion.plist')
except IOError: except OSError:
# We're on a plain darwin box, fall back to the default # We're on a plain darwin box, fall back to the default
# behaviour. # behaviour.
pass pass

View file

@ -34,7 +34,7 @@
def open(file, mode="r", buffering=-1, encoding=None, errors=None, def open(file, mode="r", buffering=-1, encoding=None, errors=None,
newline=None, closefd=True, opener=None): newline=None, closefd=True, opener=None):
r"""Open file and return a stream. Raise IOError upon failure. r"""Open file and return a stream. Raise OSError upon failure.
file is either a text or byte string giving the name (and the path file is either a text or byte string giving the name (and the path
if the file isn't in the current working directory) of the file to if the file isn't in the current working directory) of the file to
@ -254,7 +254,7 @@ def __new__(cls, *args, **kwargs):
try: try:
UnsupportedOperation = io.UnsupportedOperation UnsupportedOperation = io.UnsupportedOperation
except AttributeError: except AttributeError:
class UnsupportedOperation(ValueError, IOError): class UnsupportedOperation(ValueError, OSError):
pass pass
@ -278,7 +278,7 @@ class IOBase(metaclass=abc.ABCMeta):
readinto) needed. Text I/O classes work with str data. readinto) needed. Text I/O classes work with str data.
Note that calling any method (even inquiries) on a closed stream is Note that calling any method (even inquiries) on a closed stream is
undefined. Implementations may raise IOError in this case. undefined. Implementations may raise OSError in this case.
IOBase (and its subclasses) support the iterator protocol, meaning IOBase (and its subclasses) support the iterator protocol, meaning
that an IOBase object can be iterated over yielding the lines in a that an IOBase object can be iterated over yielding the lines in a
@ -294,7 +294,7 @@ class IOBase(metaclass=abc.ABCMeta):
### Internal ### ### Internal ###
def _unsupported(self, name): def _unsupported(self, name):
"""Internal: raise an IOError exception for unsupported operations.""" """Internal: raise an OSError exception for unsupported operations."""
raise UnsupportedOperation("%s.%s() not supported" % raise UnsupportedOperation("%s.%s() not supported" %
(self.__class__.__name__, name)) (self.__class__.__name__, name))
@ -441,7 +441,7 @@ def __exit__(self, *args):
def fileno(self): def fileno(self):
"""Returns underlying file descriptor (an int) if one exists. """Returns underlying file descriptor (an int) if one exists.
An IOError is raised if the IO object does not use a file descriptor. An OSError is raised if the IO object does not use a file descriptor.
""" """
self._unsupported("fileno") self._unsupported("fileno")
@ -699,13 +699,13 @@ def __init__(self, raw):
def seek(self, pos, whence=0): def seek(self, pos, whence=0):
new_position = self.raw.seek(pos, whence) new_position = self.raw.seek(pos, whence)
if new_position < 0: if new_position < 0:
raise IOError("seek() returned an invalid position") raise OSError("seek() returned an invalid position")
return new_position return new_position
def tell(self): def tell(self):
pos = self.raw.tell() pos = self.raw.tell()
if pos < 0: if pos < 0:
raise IOError("tell() returned an invalid position") raise OSError("tell() returned an invalid position")
return pos return pos
def truncate(self, pos=None): def truncate(self, pos=None):
@ -927,7 +927,7 @@ def __init__(self, raw, buffer_size=DEFAULT_BUFFER_SIZE):
"""Create a new buffered reader using the given readable raw IO object. """Create a new buffered reader using the given readable raw IO object.
""" """
if not raw.readable(): if not raw.readable():
raise IOError('"raw" argument must be readable.') raise OSError('"raw" argument must be readable.')
_BufferedIOMixin.__init__(self, raw) _BufferedIOMixin.__init__(self, raw)
if buffer_size <= 0: if buffer_size <= 0:
@ -1074,7 +1074,7 @@ class BufferedWriter(_BufferedIOMixin):
def __init__(self, raw, buffer_size=DEFAULT_BUFFER_SIZE): def __init__(self, raw, buffer_size=DEFAULT_BUFFER_SIZE):
if not raw.writable(): if not raw.writable():
raise IOError('"raw" argument must be writable.') raise OSError('"raw" argument must be writable.')
_BufferedIOMixin.__init__(self, raw) _BufferedIOMixin.__init__(self, raw)
if buffer_size <= 0: if buffer_size <= 0:
@ -1138,7 +1138,7 @@ def _flush_unlocked(self):
errno.EAGAIN, errno.EAGAIN,
"write could not complete without blocking", 0) "write could not complete without blocking", 0)
if n > len(self._write_buf) or n < 0: if n > len(self._write_buf) or n < 0:
raise IOError("write() returned incorrect number of bytes") raise OSError("write() returned incorrect number of bytes")
del self._write_buf[:n] del self._write_buf[:n]
def tell(self): def tell(self):
@ -1174,10 +1174,10 @@ def __init__(self, reader, writer, buffer_size=DEFAULT_BUFFER_SIZE):
The arguments are two RawIO instances. The arguments are two RawIO instances.
""" """
if not reader.readable(): if not reader.readable():
raise IOError('"reader" argument must be readable.') raise OSError('"reader" argument must be readable.')
if not writer.writable(): if not writer.writable():
raise IOError('"writer" argument must be writable.') raise OSError('"writer" argument must be writable.')
self.reader = BufferedReader(reader, buffer_size) self.reader = BufferedReader(reader, buffer_size)
self.writer = BufferedWriter(writer, buffer_size) self.writer = BufferedWriter(writer, buffer_size)
@ -1248,7 +1248,7 @@ def seek(self, pos, whence=0):
with self._read_lock: with self._read_lock:
self._reset_read_buf() self._reset_read_buf()
if pos < 0: if pos < 0:
raise IOError("seek() returned invalid position") raise OSError("seek() returned invalid position")
return pos return pos
def tell(self): def tell(self):
@ -1727,7 +1727,7 @@ def tell(self):
if not self._seekable: if not self._seekable:
raise UnsupportedOperation("underlying stream is not seekable") raise UnsupportedOperation("underlying stream is not seekable")
if not self._telling: if not self._telling:
raise IOError("telling position disabled by next() call") raise OSError("telling position disabled by next() call")
self.flush() self.flush()
position = self.buffer.tell() position = self.buffer.tell()
decoder = self._decoder decoder = self._decoder
@ -1814,7 +1814,7 @@ def tell(self):
chars_decoded += len(decoder.decode(b'', final=True)) chars_decoded += len(decoder.decode(b'', final=True))
need_eof = 1 need_eof = 1
if chars_decoded < chars_to_skip: if chars_decoded < chars_to_skip:
raise IOError("can't reconstruct logical file position") raise OSError("can't reconstruct logical file position")
# The returned cookie corresponds to the last safe start point. # The returned cookie corresponds to the last safe start point.
return self._pack_cookie( return self._pack_cookie(
@ -1891,7 +1891,7 @@ def seek(self, cookie, whence=0):
# Skip chars_to_skip of the decoded characters. # Skip chars_to_skip of the decoded characters.
if len(self._decoded_chars) < chars_to_skip: if len(self._decoded_chars) < chars_to_skip:
raise IOError("can't restore logical file position") raise OSError("can't restore logical file position")
self._decoded_chars_used = chars_to_skip self._decoded_chars_used = chars_to_skip
# Finally, reset the encoder (merely useful for proper BOM handling) # Finally, reset the encoder (merely useful for proper BOM handling)

View file

@ -1167,7 +1167,7 @@ def __call__(self, string):
try: try:
return open(string, self._mode, self._bufsize, self._encoding, return open(string, self._mode, self._bufsize, self._encoding,
self._errors) self._errors)
except IOError as e: except OSError as e:
message = _("can't open '%s': %s") message = _("can't open '%s': %s")
raise ArgumentTypeError(message % (string, e)) raise ArgumentTypeError(message % (string, e))
@ -2020,7 +2020,7 @@ def _read_args_from_files(self, arg_strings):
new_arg_strings.extend(arg_strings) new_arg_strings.extend(arg_strings)
finally: finally:
args_file.close() args_file.close()
except IOError: except OSError:
err = _sys.exc_info()[1] err = _sys.exc_info()[1]
self.error(str(err)) self.error(str(err))

View file

@ -80,7 +80,7 @@ def initlog(*allargs):
if logfile and not logfp: if logfile and not logfp:
try: try:
logfp = open(logfile, "a") logfp = open(logfile, "a")
except IOError: except OSError:
pass pass
if not logfp: if not logfp:
log = nolog log = nolog

View file

@ -70,7 +70,7 @@ def __init__(self, file, align=True, bigendian=True, inclheader=False):
self.size_read = 0 self.size_read = 0
try: try:
self.offset = self.file.tell() self.offset = self.file.tell()
except (AttributeError, IOError): except (AttributeError, OSError):
self.seekable = False self.seekable = False
else: else:
self.seekable = True self.seekable = True
@ -102,7 +102,7 @@ def seek(self, pos, whence=0):
if self.closed: if self.closed:
raise ValueError("I/O operation on closed file") raise ValueError("I/O operation on closed file")
if not self.seekable: if not self.seekable:
raise IOError("cannot seek") raise OSError("cannot seek")
if whence == 1: if whence == 1:
pos = pos + self.size_read pos = pos + self.size_read
elif whence == 2: elif whence == 2:
@ -158,7 +158,7 @@ def skip(self):
self.file.seek(n, 1) self.file.seek(n, 1)
self.size_read = self.size_read + n self.size_read = self.size_read + n
return return
except IOError: except OSError:
pass pass
while self.size_read < self.chunksize: while self.size_read < self.chunksize:
n = min(8192, self.chunksize - self.size_read) n = min(8192, self.chunksize - self.size_read)

View file

@ -106,7 +106,7 @@ def compile_file(fullname, ddir=None, force=False, rx=None, quiet=False,
actual = chandle.read(8) actual = chandle.read(8)
if expect == actual: if expect == actual:
return success return success
except IOError: except OSError:
pass pass
if not quiet: if not quiet:
print('Compiling {!r}...'.format(fullname)) print('Compiling {!r}...'.format(fullname))
@ -124,7 +124,7 @@ def compile_file(fullname, ddir=None, force=False, rx=None, quiet=False,
msg = msg.decode(sys.stdout.encoding) msg = msg.decode(sys.stdout.encoding)
print(msg) print(msg)
success = 0 success = 0
except (SyntaxError, UnicodeError, IOError) as e: except (SyntaxError, UnicodeError, OSError) as e:
if quiet: if quiet:
print('*** Error compiling {!r}...'.format(fullname)) print('*** Error compiling {!r}...'.format(fullname))
else: else:

View file

@ -688,7 +688,7 @@ def read(self, filenames, encoding=None):
try: try:
with open(filename, encoding=encoding) as fp: with open(filename, encoding=encoding) as fp:
self._read(fp, filename) self._read(fp, filename)
except IOError: except OSError:
continue continue
read_ok.append(filename) read_ok.append(filename)
return read_ok return read_ok

View file

@ -42,7 +42,7 @@ class error(Exception):
_defaultmod = None _defaultmod = None
_modules = {} _modules = {}
error = (error, IOError) error = (error, OSError)
def open(file, flag='r', mode=0o666): def open(file, flag='r', mode=0o666):
@ -109,7 +109,7 @@ def whichdb(filename):
f = io.open(filename + ".dir", "rb") f = io.open(filename + ".dir", "rb")
f.close() f.close()
return "dbm.ndbm" return "dbm.ndbm"
except IOError: except OSError:
# some dbm emulations based on Berkeley DB generate a .db file # some dbm emulations based on Berkeley DB generate a .db file
# some do not, but they should be caught by the bsd checks # some do not, but they should be caught by the bsd checks
try: try:
@ -122,7 +122,7 @@ def whichdb(filename):
d = ndbm.open(filename) d = ndbm.open(filename)
d.close() d.close()
return "dbm.ndbm" return "dbm.ndbm"
except IOError: except OSError:
pass pass
# Check for dumbdbm next -- this has a .dir and a .dat file # Check for dumbdbm next -- this has a .dir and a .dat file
@ -139,13 +139,13 @@ def whichdb(filename):
return "dbm.dumb" return "dbm.dumb"
finally: finally:
f.close() f.close()
except (OSError, IOError): except OSError:
pass pass
# See if the file exists, return None if not # See if the file exists, return None if not
try: try:
f = io.open(filename, "rb") f = io.open(filename, "rb")
except IOError: except OSError:
return None return None
# Read the start of the file -- the magic number # Read the start of the file -- the magic number

View file

@ -29,7 +29,7 @@
_BLOCKSIZE = 512 _BLOCKSIZE = 512
error = IOError error = OSError
class _Database(collections.MutableMapping): class _Database(collections.MutableMapping):
@ -67,7 +67,7 @@ def __init__(self, filebasename, mode):
# Mod by Jack: create data file if needed # Mod by Jack: create data file if needed
try: try:
f = _io.open(self._datfile, 'r', encoding="Latin-1") f = _io.open(self._datfile, 'r', encoding="Latin-1")
except IOError: except OSError:
f = _io.open(self._datfile, 'w', encoding="Latin-1") f = _io.open(self._datfile, 'w', encoding="Latin-1")
self._chmod(self._datfile) self._chmod(self._datfile)
f.close() f.close()
@ -78,7 +78,7 @@ def _update(self):
self._index = {} self._index = {}
try: try:
f = _io.open(self._dirfile, 'r', encoding="Latin-1") f = _io.open(self._dirfile, 'r', encoding="Latin-1")
except IOError: except OSError:
pass pass
else: else:
for line in f: for line in f:

View file

@ -74,7 +74,7 @@ def copy_scripts(self):
# script. # script.
try: try:
f = open(script, "rb") f = open(script, "rb")
except IOError: except OSError:
if not self.dry_run: if not self.dry_run:
raise raise
f = None f = None

View file

@ -148,7 +148,7 @@ class found in 'cmdclass' is used in place of the default, which is
dist.run_commands() dist.run_commands()
except KeyboardInterrupt: except KeyboardInterrupt:
raise SystemExit("interrupted") raise SystemExit("interrupted")
except (IOError, OSError) as exc: except OSError as exc:
error = grok_environment_error(exc) error = grok_environment_error(exc)
if DEBUG: if DEBUG:

View file

@ -359,7 +359,7 @@ def check_config_h():
return CONFIG_H_NOTOK, "'%s' does not mention '__GNUC__'" % fn return CONFIG_H_NOTOK, "'%s' does not mention '__GNUC__'" % fn
finally: finally:
config_h.close() config_h.close()
except IOError as exc: except OSError as exc:
return (CONFIG_H_UNCERTAIN, return (CONFIG_H_UNCERTAIN,
"couldn't read '%s': %s" % (fn, exc.strerror)) "couldn't read '%s': %s" % (fn, exc.strerror))

View file

@ -198,7 +198,7 @@ def remove_tree(directory, verbose=1, dry_run=0):
abspath = os.path.abspath(cmd[1]) abspath = os.path.abspath(cmd[1])
if abspath in _path_created: if abspath in _path_created:
del _path_created[abspath] del _path_created[abspath]
except (IOError, OSError) as exc: except OSError as exc:
log.warn(grok_environment_error( log.warn(grok_environment_error(
exc, "error removing %s: " % directory)) exc, "error removing %s: " % directory))

View file

@ -35,8 +35,8 @@ class DistutilsArgError (DistutilsError):
class DistutilsFileError (DistutilsError): class DistutilsFileError (DistutilsError):
"""Any problems in the filesystem: expected file not found, etc. """Any problems in the filesystem: expected file not found, etc.
Typically this is for problems that we detect before IOError or Typically this is for problems that we detect before OSError
OSError could be raised.""" could be raised."""
pass pass
class DistutilsOptionError (DistutilsError): class DistutilsOptionError (DistutilsError):

View file

@ -729,7 +729,7 @@ def _remove_visual_c_ref(self, manifest_file):
return manifest_file return manifest_file
finally: finally:
manifest_f.close() manifest_f.close()
except IOError: except OSError:
pass pass
# -- Miscellaneous methods ----------------------------------------- # -- Miscellaneous methods -----------------------------------------

View file

@ -426,7 +426,7 @@ def _init_posix():
try: try:
filename = get_makefile_filename() filename = get_makefile_filename()
parse_makefile(filename, g) parse_makefile(filename, g)
except IOError as msg: except OSError as msg:
my_msg = "invalid Python installation: unable to open %s" % filename my_msg = "invalid Python installation: unable to open %s" % filename
if hasattr(msg, "strerror"): if hasattr(msg, "strerror"):
my_msg = my_msg + " (%s)" % msg.strerror my_msg = my_msg + " (%s)" % msg.strerror
@ -438,7 +438,7 @@ def _init_posix():
filename = get_config_h_filename() filename = get_config_h_filename()
with open(filename) as file: with open(filename) as file:
parse_config_h(file, g) parse_config_h(file, g)
except IOError as msg: except OSError as msg:
my_msg = "invalid Python installation: unable to open %s" % filename my_msg = "invalid Python installation: unable to open %s" % filename
if hasattr(msg, "strerror"): if hasattr(msg, "strerror"):
my_msg = my_msg + " (%s)" % msg.strerror my_msg = my_msg + " (%s)" % msg.strerror

View file

@ -207,8 +207,8 @@ def _subst (match, local_vars=local_vars):
def grok_environment_error (exc, prefix="error: "): def grok_environment_error (exc, prefix="error: "):
"""Generate a useful error message from an EnvironmentError (IOError or """Generate a useful error message from an OSError
OSError) exception object. Handles Python 1.5.1 and 1.5.2 styles, and exception object. Handles Python 1.5.1 and 1.5.2 styles, and
does what it can to deal with exception objects that don't have a does what it can to deal with exception objects that don't have a
filename (which happens when the error is due to a two-file operation, filename (which happens when the error is due to a two-file operation,
such as 'rename()' or 'link()'. Returns the error message as a string such as 'rename()' or 'link()'. Returns the error message as a string

View file

@ -30,7 +30,7 @@
All files are opened in text mode by default, you can override this by All files are opened in text mode by default, you can override this by
setting the mode parameter to input() or FileInput.__init__(). setting the mode parameter to input() or FileInput.__init__().
If an I/O error occurs during opening or reading a file, the IOError If an I/O error occurs during opening or reading a file, the OSError
exception is raised. exception is raised.
If sys.stdin is used more than once, the second and further use will If sys.stdin is used more than once, the second and further use will
@ -328,7 +328,7 @@ def readline(self):
os.unlink(self._backupfilename) os.unlink(self._backupfilename)
except OSError: except OSError:
pass pass
# The next few lines may raise IOError # The next few lines may raise OSError
os.rename(self._filename, self._backupfilename) os.rename(self._filename, self._backupfilename)
self._file = open(self._backupfilename, self._mode) self._file = open(self._backupfilename, self._mode)
try: try:
@ -350,7 +350,7 @@ def readline(self):
self._savestdout = sys.stdout self._savestdout = sys.stdout
sys.stdout = self._output sys.stdout = self._output
else: else:
# This may raise IOError # This may raise OSError
if self._openhook: if self._openhook:
self._file = self._openhook(self._filename, self._mode) self._file = self._openhook(self._filename, self._mode)
else: else:

View file

@ -61,7 +61,7 @@ class error_proto(Error): pass # response does not begin with [1-5]
# All exceptions (hopefully) that may be raised here and that aren't # All exceptions (hopefully) that may be raised here and that aren't
# (always) programming errors on our side # (always) programming errors on our side
all_errors = (Error, IOError, EOFError) all_errors = (Error, OSError, EOFError)
# Line terminators (we always output CRLF, but accept any of CRLF, CR, LF) # Line terminators (we always output CRLF, but accept any of CRLF, CR, LF)
@ -826,7 +826,7 @@ def abort(self):
return resp return resp
__all__.append('FTP_TLS') __all__.append('FTP_TLS')
all_errors = (Error, IOError, EOFError, ssl.SSLError) all_errors = (Error, OSError, EOFError, ssl.SSLError)
_150_re = None _150_re = None
@ -958,7 +958,7 @@ def __init__(self, filename=None):
filename = os.path.join(os.environ["HOME"], filename = os.path.join(os.environ["HOME"],
".netrc") ".netrc")
else: else:
raise IOError("specify file to load or set $HOME") raise OSError("specify file to load or set $HOME")
self.__hosts = {} self.__hosts = {}
self.__macros = {} self.__macros = {}
fp = open(filename, "r") fp = open(filename, "r")
@ -1074,7 +1074,7 @@ def test():
userid = passwd = acct = '' userid = passwd = acct = ''
try: try:
netrc = Netrc(rcfile) netrc = Netrc(rcfile)
except IOError: except OSError:
if rcfile is not None: if rcfile is not None:
sys.stderr.write("Could not open account file" sys.stderr.write("Could not open account file"
" -- using anonymous login.") " -- using anonymous login.")

View file

@ -244,7 +244,7 @@ def _parse(self, fp):
version, msgcount, masteridx, transidx = unpack('>4I', buf[4:20]) version, msgcount, masteridx, transidx = unpack('>4I', buf[4:20])
ii = '>II' ii = '>II'
else: else:
raise IOError(0, 'Bad magic number', filename) raise OSError(0, 'Bad magic number', filename)
# Now put all messages from the .mo file buffer into the catalog # Now put all messages from the .mo file buffer into the catalog
# dictionary. # dictionary.
for i in range(0, msgcount): for i in range(0, msgcount):
@ -256,7 +256,7 @@ def _parse(self, fp):
msg = buf[moff:mend] msg = buf[moff:mend]
tmsg = buf[toff:tend] tmsg = buf[toff:tend]
else: else:
raise IOError(0, 'File is corrupt', filename) raise OSError(0, 'File is corrupt', filename)
# See if we're looking at GNU .mo conventions for metadata # See if we're looking at GNU .mo conventions for metadata
if mlen == 0: if mlen == 0:
# Catalog description # Catalog description
@ -398,7 +398,7 @@ def translation(domain, localedir=None, languages=None,
if not mofiles: if not mofiles:
if fallback: if fallback:
return NullTranslations() return NullTranslations()
raise IOError(ENOENT, 'No translation file found for domain', domain) raise OSError(ENOENT, 'No translation file found for domain', domain)
# Avoid opening, reading, and parsing the .mo file after it's been done # Avoid opening, reading, and parsing the .mo file after it's been done
# once. # once.
result = None result = None
@ -460,7 +460,7 @@ def dgettext(domain, message):
try: try:
t = translation(domain, _localedirs.get(domain, None), t = translation(domain, _localedirs.get(domain, None),
codeset=_localecodesets.get(domain)) codeset=_localecodesets.get(domain))
except IOError: except OSError:
return message return message
return t.gettext(message) return t.gettext(message)
@ -468,7 +468,7 @@ def ldgettext(domain, message):
try: try:
t = translation(domain, _localedirs.get(domain, None), t = translation(domain, _localedirs.get(domain, None),
codeset=_localecodesets.get(domain)) codeset=_localecodesets.get(domain))
except IOError: except OSError:
return message return message
return t.lgettext(message) return t.lgettext(message)
@ -476,7 +476,7 @@ def dngettext(domain, msgid1, msgid2, n):
try: try:
t = translation(domain, _localedirs.get(domain, None), t = translation(domain, _localedirs.get(domain, None),
codeset=_localecodesets.get(domain)) codeset=_localecodesets.get(domain))
except IOError: except OSError:
if n == 1: if n == 1:
return msgid1 return msgid1
else: else:
@ -487,7 +487,7 @@ def ldngettext(domain, msgid1, msgid2, n):
try: try:
t = translation(domain, _localedirs.get(domain, None), t = translation(domain, _localedirs.get(domain, None),
codeset=_localecodesets.get(domain)) codeset=_localecodesets.get(domain))
except IOError: except OSError:
if n == 1: if n == 1:
return msgid1 return msgid1
else: else:

View file

@ -287,10 +287,10 @@ def _read_gzip_header(self):
raise EOFError("Reached EOF") raise EOFError("Reached EOF")
if magic != b'\037\213': if magic != b'\037\213':
raise IOError('Not a gzipped file') raise OSError('Not a gzipped file')
method = ord( self.fileobj.read(1) ) method = ord( self.fileobj.read(1) )
if method != 8: if method != 8:
raise IOError('Unknown compression method') raise OSError('Unknown compression method')
flag = ord( self.fileobj.read(1) ) flag = ord( self.fileobj.read(1) )
self.mtime = read32(self.fileobj) self.mtime = read32(self.fileobj)
# extraflag = self.fileobj.read(1) # extraflag = self.fileobj.read(1)
@ -326,7 +326,7 @@ def write(self,data):
self._check_closed() self._check_closed()
if self.mode != WRITE: if self.mode != WRITE:
import errno import errno
raise IOError(errno.EBADF, "write() on read-only GzipFile object") raise OSError(errno.EBADF, "write() on read-only GzipFile object")
if self.fileobj is None: if self.fileobj is None:
raise ValueError("write() on closed GzipFile object") raise ValueError("write() on closed GzipFile object")
@ -347,7 +347,7 @@ def read(self, size=-1):
self._check_closed() self._check_closed()
if self.mode != READ: if self.mode != READ:
import errno import errno
raise IOError(errno.EBADF, "read() on write-only GzipFile object") raise OSError(errno.EBADF, "read() on write-only GzipFile object")
if self.extrasize <= 0 and self.fileobj is None: if self.extrasize <= 0 and self.fileobj is None:
return b'' return b''
@ -380,7 +380,7 @@ def read1(self, size=-1):
self._check_closed() self._check_closed()
if self.mode != READ: if self.mode != READ:
import errno import errno
raise IOError(errno.EBADF, "read1() on write-only GzipFile object") raise OSError(errno.EBADF, "read1() on write-only GzipFile object")
if self.extrasize <= 0 and self.fileobj is None: if self.extrasize <= 0 and self.fileobj is None:
return b'' return b''
@ -404,7 +404,7 @@ def read1(self, size=-1):
def peek(self, n): def peek(self, n):
if self.mode != READ: if self.mode != READ:
import errno import errno
raise IOError(errno.EBADF, "peek() on write-only GzipFile object") raise OSError(errno.EBADF, "peek() on write-only GzipFile object")
# Do not return ridiculously small buffers, for one common idiom # Do not return ridiculously small buffers, for one common idiom
# is to call peek(1) and expect more bytes in return. # is to call peek(1) and expect more bytes in return.
@ -487,10 +487,10 @@ def _read_eof(self):
crc32 = read32(self.fileobj) crc32 = read32(self.fileobj)
isize = read32(self.fileobj) # may exceed 2GB isize = read32(self.fileobj) # may exceed 2GB
if crc32 != self.crc: if crc32 != self.crc:
raise IOError("CRC check failed %s != %s" % (hex(crc32), raise OSError("CRC check failed %s != %s" % (hex(crc32),
hex(self.crc))) hex(self.crc)))
elif isize != (self.size & 0xffffffff): elif isize != (self.size & 0xffffffff):
raise IOError("Incorrect length of data produced") raise OSError("Incorrect length of data produced")
# Gzip files can be padded with zeroes and still have archives. # Gzip files can be padded with zeroes and still have archives.
# Consume all zero bytes and set the file position to the first # Consume all zero bytes and set the file position to the first
@ -539,7 +539,7 @@ def rewind(self):
'''Return the uncompressed stream file position indicator to the '''Return the uncompressed stream file position indicator to the
beginning of the file''' beginning of the file'''
if self.mode != READ: if self.mode != READ:
raise IOError("Can't rewind in write mode") raise OSError("Can't rewind in write mode")
self.fileobj.seek(0) self.fileobj.seek(0)
self._new_member = True self._new_member = True
self.extrabuf = b"" self.extrabuf = b""
@ -564,7 +564,7 @@ def seek(self, offset, whence=0):
raise ValueError('Seek from end not supported') raise ValueError('Seek from end not supported')
if self.mode == WRITE: if self.mode == WRITE:
if offset < self.offset: if offset < self.offset:
raise IOError('Negative seek in write mode') raise OSError('Negative seek in write mode')
count = offset - self.offset count = offset - self.offset
chunk = bytes(1024) chunk = bytes(1024)
for i in range(count // 1024): for i in range(count // 1024):

View file

@ -1730,8 +1730,8 @@ def __str__(self):
return "<%s[%s]>" % (self.__class__, ", ".join(r)) return "<%s[%s]>" % (self.__class__, ", ".join(r))
# derives from IOError for backwards-compatibility with Python 2.4.0 # derives from OSError for backwards-compatibility with Python 2.4.0
class LoadError(IOError): pass class LoadError(OSError): pass
class FileCookieJar(CookieJar): class FileCookieJar(CookieJar):
"""CookieJar that can be loaded from and saved to a file.""" """CookieJar that can be loaded from and saved to a file."""
@ -1771,7 +1771,7 @@ def revert(self, filename=None,
ignore_discard=False, ignore_expires=False): ignore_discard=False, ignore_expires=False):
"""Clear all cookies and reload cookies from a saved file. """Clear all cookies and reload cookies from a saved file.
Raises LoadError (or IOError) if reversion is not successful; the Raises LoadError (or OSError) if reversion is not successful; the
object's state will not be altered if this happens. object's state will not be altered if this happens.
""" """
@ -1786,7 +1786,7 @@ def revert(self, filename=None,
self._cookies = {} self._cookies = {}
try: try:
self.load(filename, ignore_discard, ignore_expires) self.load(filename, ignore_discard, ignore_expires)
except (LoadError, IOError): except OSError:
self._cookies = old_state self._cookies = old_state
raise raise
@ -1937,8 +1937,7 @@ def _really_load(self, f, filename, ignore_discard, ignore_expires):
if not ignore_expires and c.is_expired(now): if not ignore_expires and c.is_expired(now):
continue continue
self.set_cookie(c) self.set_cookie(c)
except OSError:
except IOError:
raise raise
except Exception: except Exception:
_warn_unhandled_exception() _warn_unhandled_exception()
@ -2044,7 +2043,7 @@ def _really_load(self, f, filename, ignore_discard, ignore_expires):
continue continue
self.set_cookie(c) self.set_cookie(c)
except IOError: except OSError:
raise raise
except Exception: except Exception:
_warn_unhandled_exception() _warn_unhandled_exception()

View file

@ -711,7 +711,7 @@ def send_head(self):
ctype = self.guess_type(path) ctype = self.guess_type(path)
try: try:
f = open(path, 'rb') f = open(path, 'rb')
except IOError: except OSError:
self.send_error(404, "File not found") self.send_error(404, "File not found")
return None return None
self.send_response(200) self.send_response(200)

View file

@ -886,7 +886,7 @@ def update_recent_files_list(self, new_file=None):
with open(self.recent_files_path, 'w', with open(self.recent_files_path, 'w',
encoding='utf_8', errors='replace') as rf_file: encoding='utf_8', errors='replace') as rf_file:
rf_file.writelines(rf_list) rf_file.writelines(rf_list)
except IOError as err: except OSError as err:
if not getattr(self.root, "recentfilelist_error_displayed", False): if not getattr(self.root, "recentfilelist_error_displayed", False):
self.root.recentfilelist_error_displayed = True self.root.recentfilelist_error_displayed = True
tkMessageBox.showerror(title='IDLE Error', tkMessageBox.showerror(title='IDLE Error',

View file

@ -82,7 +82,7 @@ def grep_it(self, prog, path):
for fn in list: for fn in list:
try: try:
f = open(fn, errors='replace') f = open(fn, errors='replace')
except IOError as msg: except OSError as msg:
print(msg) print(msg)
continue continue
lineno = 0 lineno = 0

View file

@ -212,7 +212,7 @@ def loadfile(self, filename):
f.seek(0) f.seek(0)
bytes = f.read() bytes = f.read()
f.close() f.close()
except IOError as msg: except OSError as msg:
tkMessageBox.showerror("I/O Error", str(msg), master=self.text) tkMessageBox.showerror("I/O Error", str(msg), master=self.text)
return False return False
chars, converted = self._decode(two_lines, bytes) chars, converted = self._decode(two_lines, bytes)
@ -377,7 +377,7 @@ def writefile(self, filename):
f.flush() f.flush()
f.close() f.close()
return True return True
except IOError as msg: except OSError as msg:
tkMessageBox.showerror("I/O Error", str(msg), tkMessageBox.showerror("I/O Error", str(msg),
master=self.text) master=self.text)
return False return False

View file

@ -106,7 +106,7 @@ def _file_line_helper(self, line):
f = open(filename, "r") f = open(filename, "r")
f.close() f.close()
break break
except IOError: except OSError:
continue continue
else: else:
return None return None

View file

@ -58,7 +58,7 @@ def idle_showwarning(message, category, filename, lineno,
try: try:
file.write(warnings.formatwarning(message, category, filename, file.write(warnings.formatwarning(message, category, filename,
lineno, line=line)) lineno, line=line))
except IOError: except OSError:
pass ## file (probably __stderr__) is invalid, warning dropped. pass ## file (probably __stderr__) is invalid, warning dropped.
warnings.showwarning = idle_showwarning warnings.showwarning = idle_showwarning
def idle_formatwarning(message, category, filename, lineno, line=None): def idle_formatwarning(message, category, filename, lineno, line=None):
@ -211,7 +211,7 @@ def store_file_breaks(self):
try: try:
with open(self.breakpointPath, "r") as fp: with open(self.breakpointPath, "r") as fp:
lines = fp.readlines() lines = fp.readlines()
except IOError: except OSError:
lines = [] lines = []
try: try:
with open(self.breakpointPath, "w") as new_file: with open(self.breakpointPath, "w") as new_file:
@ -222,7 +222,7 @@ def store_file_breaks(self):
breaks = self.breakpoints breaks = self.breakpoints
if breaks: if breaks:
new_file.write(filename + '=' + str(breaks) + '\n') new_file.write(filename + '=' + str(breaks) + '\n')
except IOError as err: except OSError as err:
if not getattr(self.root, "breakpoint_error_displayed", False): if not getattr(self.root, "breakpoint_error_displayed", False):
self.root.breakpoint_error_displayed = True self.root.breakpoint_error_displayed = True
tkMessageBox.showerror(title='IDLE Error', tkMessageBox.showerror(title='IDLE Error',
@ -528,7 +528,7 @@ def poll_subprocess(self):
return return
try: try:
response = clt.pollresponse(self.active_seq, wait=0.05) response = clt.pollresponse(self.active_seq, wait=0.05)
except (EOFError, IOError, KeyboardInterrupt): except (EOFError, OSError, KeyboardInterrupt):
# lost connection or subprocess terminated itself, restart # lost connection or subprocess terminated itself, restart
# [the KBI is from rpc.SocketIO.handle_EOF()] # [the KBI is from rpc.SocketIO.handle_EOF()]
if self.tkconsole.closing: if self.tkconsole.closing:

View file

@ -142,7 +142,7 @@ def Save(self):
fname = self.file fname = self.file
try: try:
cfgFile = open(fname, 'w') cfgFile = open(fname, 'w')
except IOError: except OSError:
os.unlink(fname) os.unlink(fname)
cfgFile = open(fname, 'w') cfgFile = open(fname, 'w')
with cfgFile: with cfgFile:
@ -207,7 +207,7 @@ def GetUserCfgDir(self):
userDir+',\n but the path does not exist.\n') userDir+',\n but the path does not exist.\n')
try: try:
sys.stderr.write(warn) sys.stderr.write(warn)
except IOError: except OSError:
pass pass
userDir = '~' userDir = '~'
if userDir == "~": # still no path to home! if userDir == "~": # still no path to home!
@ -217,7 +217,7 @@ def GetUserCfgDir(self):
if not os.path.exists(userDir): if not os.path.exists(userDir):
try: try:
os.mkdir(userDir) os.mkdir(userDir)
except (OSError, IOError): except OSError:
warn = ('\n Warning: unable to create user config directory\n'+ warn = ('\n Warning: unable to create user config directory\n'+
userDir+'\n Check path and permissions.\n Exiting!\n\n') userDir+'\n Check path and permissions.\n Exiting!\n\n')
sys.stderr.write(warn) sys.stderr.write(warn)
@ -251,7 +251,7 @@ def GetOption(self, configType, section, option, default=None, type=None,
raw=raw))) raw=raw)))
try: try:
sys.stderr.write(warning) sys.stderr.write(warning)
except IOError: except OSError:
pass pass
try: try:
if self.defaultCfg[configType].has_option(section,option): if self.defaultCfg[configType].has_option(section,option):
@ -268,7 +268,7 @@ def GetOption(self, configType, section, option, default=None, type=None,
(option, section, default)) (option, section, default))
try: try:
sys.stderr.write(warning) sys.stderr.write(warning)
except IOError: except OSError:
pass pass
return default return default
@ -380,7 +380,7 @@ def GetThemeDict(self,type,themeName):
(element, themeName, theme[element])) (element, themeName, theme[element]))
try: try:
sys.stderr.write(warning) sys.stderr.write(warning)
except IOError: except OSError:
pass pass
colour=cfgParser.Get(themeName,element,default=theme[element]) colour=cfgParser.Get(themeName,element,default=theme[element])
theme[element]=colour theme[element]=colour
@ -637,7 +637,7 @@ def GetCoreKeys(self, keySetName=None):
(event, keySetName, keyBindings[event])) (event, keySetName, keyBindings[event]))
try: try:
sys.stderr.write(warning) sys.stderr.write(warning)
except IOError: except OSError:
pass pass
return keyBindings return keyBindings

View file

@ -339,7 +339,7 @@ def putmessage(self, message):
r, w, x = select.select([], [self.sock], []) r, w, x = select.select([], [self.sock], [])
n = self.sock.send(s[:BUFSIZE]) n = self.sock.send(s[:BUFSIZE])
except (AttributeError, TypeError): except (AttributeError, TypeError):
raise IOError("socket no longer exists") raise OSError("socket no longer exists")
except OSError: except OSError:
raise raise
else: else:

View file

@ -66,7 +66,7 @@ def view_file(parent, title, filename, encoding=None, modal=True):
try: try:
with open(filename, 'r', encoding=encoding) as file: with open(filename, 'r', encoding=encoding) as file:
contents = file.read() contents = file.read()
except IOError: except OSError:
import tkinter.messagebox as tkMessageBox import tkinter.messagebox as tkMessageBox
tkMessageBox.showerror(title='File Load Error', tkMessageBox.showerror(title='File Load Error',
message='Unable to load file %r .' % filename, message='Unable to load file %r .' % filename,

View file

@ -149,7 +149,7 @@ def testall(list, recursive, toplevel):
sys.stdout.flush() sys.stdout.flush()
try: try:
print(what(filename)) print(what(filename))
except IOError: except OSError:
print('*** not found ***') print('*** not found ***')
if __name__ == '__main__': if __name__ == '__main__':

View file

@ -915,7 +915,7 @@ def get_source(self, fullname):
path = self.get_filename(fullname) path = self.get_filename(fullname)
try: try:
source_bytes = self.get_data(path) source_bytes = self.get_data(path)
except IOError as exc: except OSError as exc:
raise ImportError("source not available through get_data()", raise ImportError("source not available through get_data()",
name=fullname) from exc name=fullname) from exc
readsource = _io.BytesIO(source_bytes).readline readsource = _io.BytesIO(source_bytes).readline
@ -961,7 +961,7 @@ def get_code(self, fullname):
source_mtime = int(st['mtime']) source_mtime = int(st['mtime'])
try: try:
data = self.get_data(bytecode_path) data = self.get_data(bytecode_path)
except IOError: except OSError:
pass pass
else: else:
try: try:

View file

@ -545,13 +545,13 @@ def findsource(object):
The argument may be a module, class, method, function, traceback, frame, The argument may be a module, class, method, function, traceback, frame,
or code object. The source code is returned as a list of all the lines or code object. The source code is returned as a list of all the lines
in the file and the line number indexes a line in that list. An IOError in the file and the line number indexes a line in that list. An OSError
is raised if the source code cannot be retrieved.""" is raised if the source code cannot be retrieved."""
file = getfile(object) file = getfile(object)
sourcefile = getsourcefile(object) sourcefile = getsourcefile(object)
if not sourcefile and file[0] + file[-1] != '<>': if not sourcefile and file[0] + file[-1] != '<>':
raise IOError('source code not available') raise OSError('source code not available')
file = sourcefile if sourcefile else file file = sourcefile if sourcefile else file
module = getmodule(object, file) module = getmodule(object, file)
@ -560,7 +560,7 @@ def findsource(object):
else: else:
lines = linecache.getlines(file) lines = linecache.getlines(file)
if not lines: if not lines:
raise IOError('could not get source code') raise OSError('could not get source code')
if ismodule(object): if ismodule(object):
return lines, 0 return lines, 0
@ -586,7 +586,7 @@ def findsource(object):
candidates.sort() candidates.sort()
return lines, candidates[0][1] return lines, candidates[0][1]
else: else:
raise IOError('could not find class definition') raise OSError('could not find class definition')
if ismethod(object): if ismethod(object):
object = object.__func__ object = object.__func__
@ -598,14 +598,14 @@ def findsource(object):
object = object.f_code object = object.f_code
if iscode(object): if iscode(object):
if not hasattr(object, 'co_firstlineno'): if not hasattr(object, 'co_firstlineno'):
raise IOError('could not find function definition') raise OSError('could not find function definition')
lnum = object.co_firstlineno - 1 lnum = object.co_firstlineno - 1
pat = re.compile(r'^(\s*def\s)|(.*(?<!\w)lambda(:|\s))|^(\s*@)') pat = re.compile(r'^(\s*def\s)|(.*(?<!\w)lambda(:|\s))|^(\s*@)')
while lnum > 0: while lnum > 0:
if pat.match(lines[lnum]): break if pat.match(lines[lnum]): break
lnum = lnum - 1 lnum = lnum - 1
return lines, lnum return lines, lnum
raise IOError('could not find code object') raise OSError('could not find code object')
def getcomments(object): def getcomments(object):
"""Get lines of comments immediately preceding an object's source code. """Get lines of comments immediately preceding an object's source code.
@ -614,7 +614,7 @@ def getcomments(object):
""" """
try: try:
lines, lnum = findsource(object) lines, lnum = findsource(object)
except (IOError, TypeError): except (OSError, TypeError):
return None return None
if ismodule(object): if ismodule(object):
@ -710,7 +710,7 @@ def getsourcelines(object):
The argument may be a module, class, method, function, traceback, frame, The argument may be a module, class, method, function, traceback, frame,
or code object. The source code is returned as a list of the lines or code object. The source code is returned as a list of the lines
corresponding to the object and the line number indicates where in the corresponding to the object and the line number indicates where in the
original source file the first line of code was found. An IOError is original source file the first line of code was found. An OSError is
raised if the source code cannot be retrieved.""" raised if the source code cannot be retrieved."""
lines, lnum = findsource(object) lines, lnum = findsource(object)
@ -722,7 +722,7 @@ def getsource(object):
The argument may be a module, class, method, function, traceback, frame, The argument may be a module, class, method, function, traceback, frame,
or code object. The source code is returned as a single string. An or code object. The source code is returned as a single string. An
IOError is raised if the source code cannot be retrieved.""" OSError is raised if the source code cannot be retrieved."""
lines, lnum = getsourcelines(object) lines, lnum = getsourcelines(object)
return ''.join(lines) return ''.join(lines)
@ -1122,7 +1122,7 @@ def getframeinfo(frame, context=1):
start = lineno - 1 - context//2 start = lineno - 1 - context//2
try: try:
lines, lnum = findsource(frame) lines, lnum = findsource(frame)
except IOError: except OSError:
lines = index = None lines = index = None
else: else:
start = max(start, 1) start = max(start, 1)

View file

@ -4,7 +4,7 @@
At the top of the I/O hierarchy is the abstract base class IOBase. It At the top of the I/O hierarchy is the abstract base class IOBase. It
defines the basic interface to a stream. Note, however, that there is no defines the basic interface to a stream. Note, however, that there is no
separation between reading and writing to streams; implementations are separation between reading and writing to streams; implementations are
allowed to raise an IOError if they do not support a given operation. allowed to raise an OSError if they do not support a given operation.
Extending IOBase is RawIOBase which deals simply with the reading and Extending IOBase is RawIOBase which deals simply with the reading and
writing of raw bytes to a stream. FileIO subclasses RawIOBase to provide writing of raw bytes to a stream. FileIO subclasses RawIOBase to provide

View file

@ -60,7 +60,7 @@ def parse_graminit_h(self, filename):
""" """
try: try:
f = open(filename) f = open(filename)
except IOError as err: except OSError as err:
print("Can't open %s: %s" % (filename, err)) print("Can't open %s: %s" % (filename, err))
return False return False
self.symbol2number = {} self.symbol2number = {}
@ -111,7 +111,7 @@ def parse_graminit_c(self, filename):
""" """
try: try:
f = open(filename) f = open(filename)
except IOError as err: except OSError as err:
print("Can't open %s: %s" % (filename, err)) print("Can't open %s: %s" % (filename, err))
return False return False
# The code below essentially uses f's iterator-ness! # The code below essentially uses f's iterator-ness!

View file

@ -123,7 +123,7 @@ def load_grammar(gt="Grammar.txt", gp=None,
logger.info("Writing grammar tables to %s", gp) logger.info("Writing grammar tables to %s", gp)
try: try:
g.dump(gp) g.dump(gp)
except IOError as e: except OSError as e:
logger.info("Writing failed:"+str(e)) logger.info("Writing failed:"+str(e))
else: else:
g = grammar.Grammar() g = grammar.Grammar()

View file

@ -326,7 +326,7 @@ def _read_python_source(self, filename):
""" """
try: try:
f = open(filename, "rb") f = open(filename, "rb")
except IOError as err: except OSError as err:
self.log_error("Can't open %s: %s", filename, err) self.log_error("Can't open %s: %s", filename, err)
return None, None return None, None
try: try:

View file

@ -91,7 +91,7 @@ def updatecache(filename, module_globals=None):
if name and get_source: if name and get_source:
try: try:
data = get_source(name) data = get_source(name)
except (ImportError, IOError): except (ImportError, OSError):
pass pass
else: else:
if data is None: if data is None:
@ -125,7 +125,7 @@ def updatecache(filename, module_globals=None):
try: try:
with tokenize.open(fullname) as fp: with tokenize.open(fullname) as fp:
lines = fp.readlines() lines = fp.readlines()
except IOError: except OSError:
return [] return []
if lines and not lines[-1].endswith('\n'): if lines and not lines[-1].endswith('\n'):
lines[-1] += '\n' lines[-1] += '\n'

View file

@ -896,7 +896,7 @@ def handleError(self, record):
# couldn't find the right stack frame, for some reason # couldn't find the right stack frame, for some reason
sys.stderr.write('Logged from file %s, line %s\n' % ( sys.stderr.write('Logged from file %s, line %s\n' % (
record.filename, record.lineno)) record.filename, record.lineno))
except IOError: #pragma: no cover except OSError: #pragma: no cover
pass # see issue 5971 pass # see issue 5971
finally: finally:
del t, v, tb del t, v, tb
@ -1838,7 +1838,7 @@ def shutdown(handlerList=_handlerList):
h.acquire() h.acquire()
h.flush() h.flush()
h.close() h.close()
except (IOError, ValueError): except (OSError, ValueError):
# Ignore errors which might be caused # Ignore errors which might be caused
# because handlers have been closed but # because handlers have been closed but
# references to them are still around at # references to them are still around at

View file

@ -585,7 +585,7 @@ def __init__(self, path, factory=None, create=True):
Mailbox.__init__(self, path, factory, create) Mailbox.__init__(self, path, factory, create)
try: try:
f = open(self._path, 'rb+') f = open(self._path, 'rb+')
except IOError as e: except OSError as e:
if e.errno == errno.ENOENT: if e.errno == errno.ENOENT:
if create: if create:
f = open(self._path, 'wb+') f = open(self._path, 'wb+')
@ -988,7 +988,7 @@ def remove(self, key):
path = os.path.join(self._path, str(key)) path = os.path.join(self._path, str(key))
try: try:
f = open(path, 'rb+') f = open(path, 'rb+')
except IOError as e: except OSError as e:
if e.errno == errno.ENOENT: if e.errno == errno.ENOENT:
raise KeyError('No message with key: %s' % key) raise KeyError('No message with key: %s' % key)
else: else:
@ -1002,7 +1002,7 @@ def __setitem__(self, key, message):
path = os.path.join(self._path, str(key)) path = os.path.join(self._path, str(key))
try: try:
f = open(path, 'rb+') f = open(path, 'rb+')
except IOError as e: except OSError as e:
if e.errno == errno.ENOENT: if e.errno == errno.ENOENT:
raise KeyError('No message with key: %s' % key) raise KeyError('No message with key: %s' % key)
else: else:
@ -1028,7 +1028,7 @@ def get_message(self, key):
f = open(os.path.join(self._path, str(key)), 'rb+') f = open(os.path.join(self._path, str(key)), 'rb+')
else: else:
f = open(os.path.join(self._path, str(key)), 'rb') f = open(os.path.join(self._path, str(key)), 'rb')
except IOError as e: except OSError as e:
if e.errno == errno.ENOENT: if e.errno == errno.ENOENT:
raise KeyError('No message with key: %s' % key) raise KeyError('No message with key: %s' % key)
else: else:
@ -1055,7 +1055,7 @@ def get_bytes(self, key):
f = open(os.path.join(self._path, str(key)), 'rb+') f = open(os.path.join(self._path, str(key)), 'rb+')
else: else:
f = open(os.path.join(self._path, str(key)), 'rb') f = open(os.path.join(self._path, str(key)), 'rb')
except IOError as e: except OSError as e:
if e.errno == errno.ENOENT: if e.errno == errno.ENOENT:
raise KeyError('No message with key: %s' % key) raise KeyError('No message with key: %s' % key)
else: else:
@ -1075,7 +1075,7 @@ def get_file(self, key):
"""Return a file-like representation or raise a KeyError.""" """Return a file-like representation or raise a KeyError."""
try: try:
f = open(os.path.join(self._path, str(key)), 'rb') f = open(os.path.join(self._path, str(key)), 'rb')
except IOError as e: except OSError as e:
if e.errno == errno.ENOENT: if e.errno == errno.ENOENT:
raise KeyError('No message with key: %s' % key) raise KeyError('No message with key: %s' % key)
else: else:
@ -2068,7 +2068,7 @@ def _lock_file(f, dotlock=True):
if fcntl: if fcntl:
try: try:
fcntl.lockf(f, fcntl.LOCK_EX | fcntl.LOCK_NB) fcntl.lockf(f, fcntl.LOCK_EX | fcntl.LOCK_NB)
except IOError as e: except OSError as e:
if e.errno in (errno.EAGAIN, errno.EACCES, errno.EROFS): if e.errno in (errno.EAGAIN, errno.EACCES, errno.EROFS):
raise ExternalClashError('lockf: lock unavailable: %s' % raise ExternalClashError('lockf: lock unavailable: %s' %
f.name) f.name)
@ -2078,7 +2078,7 @@ def _lock_file(f, dotlock=True):
try: try:
pre_lock = _create_temporary(f.name + '.lock') pre_lock = _create_temporary(f.name + '.lock')
pre_lock.close() pre_lock.close()
except IOError as e: except OSError as e:
if e.errno in (errno.EACCES, errno.EROFS): if e.errno in (errno.EACCES, errno.EROFS):
return # Without write access, just skip dotlocking. return # Without write access, just skip dotlocking.
else: else:

View file

@ -20,7 +20,7 @@ def getcaps():
for mailcap in listmailcapfiles(): for mailcap in listmailcapfiles():
try: try:
fp = open(mailcap, 'r') fp = open(mailcap, 'r')
except IOError: except OSError:
continue continue
morecaps = readmailcapfile(fp) morecaps = readmailcapfile(fp)
fp.close() fp.close()

View file

@ -359,7 +359,7 @@ def init(files=None):
def read_mime_types(file): def read_mime_types(file):
try: try:
f = open(file) f = open(file)
except IOError: except OSError:
return None return None
db = MimeTypes() db = MimeTypes()
db.readfp(f, True) db.readfp(f, True)

View file

@ -132,22 +132,22 @@ def __del__(self):
def _check_closed(self): def _check_closed(self):
if self._handle is None: if self._handle is None:
raise IOError("handle is closed") raise OSError("handle is closed")
def _check_readable(self): def _check_readable(self):
if not self._readable: if not self._readable:
raise IOError("connection is write-only") raise OSError("connection is write-only")
def _check_writable(self): def _check_writable(self):
if not self._writable: if not self._writable:
raise IOError("connection is read-only") raise OSError("connection is read-only")
def _bad_message_length(self): def _bad_message_length(self):
if self._writable: if self._writable:
self._readable = False self._readable = False
else: else:
self.close() self.close()
raise IOError("bad message length") raise OSError("bad message length")
@property @property
def closed(self): def closed(self):
@ -317,7 +317,7 @@ def _recv_bytes(self, maxsize=None):
return f return f
elif err == _winapi.ERROR_MORE_DATA: elif err == _winapi.ERROR_MORE_DATA:
return self._get_more_data(ov, maxsize) return self._get_more_data(ov, maxsize)
except IOError as e: except OSError as e:
if e.winerror == _winapi.ERROR_BROKEN_PIPE: if e.winerror == _winapi.ERROR_BROKEN_PIPE:
raise EOFError raise EOFError
else: else:
@ -383,7 +383,7 @@ def _recv(self, size, read=_read):
if remaining == size: if remaining == size:
raise EOFError raise EOFError
else: else:
raise IOError("got end of file during message") raise OSError("got end of file during message")
buf.write(chunk) buf.write(chunk)
remaining -= n remaining -= n
return buf return buf
@ -443,7 +443,7 @@ def accept(self):
Returns a `Connection` object. Returns a `Connection` object.
''' '''
if self._listener is None: if self._listener is None:
raise IOError('listener is closed') raise OSError('listener is closed')
c = self._listener.accept() c = self._listener.accept()
if self._authkey: if self._authkey:
deliver_challenge(c, self._authkey) deliver_challenge(c, self._authkey)

View file

@ -167,7 +167,7 @@ def accepter(self):
while True: while True:
try: try:
c = self.listener.accept() c = self.listener.accept()
except (OSError, IOError): except OSError:
continue continue
t = threading.Thread(target=self.handle_request, args=(c,)) t = threading.Thread(target=self.handle_request, args=(c,))
t.daemon = True t.daemon = True

View file

@ -78,8 +78,8 @@ def worker(inqueue, outqueue, initializer=None, initargs=(), maxtasks=None):
while maxtasks is None or (maxtasks and completed < maxtasks): while maxtasks is None or (maxtasks and completed < maxtasks):
try: try:
task = get() task = get()
except (EOFError, IOError): except (EOFError, OSError):
debug('worker got EOFError or IOError -- exiting') debug('worker got EOFError or OSError -- exiting')
break break
if task is None: if task is None:
@ -349,7 +349,7 @@ def _handle_tasks(taskqueue, put, outqueue, pool):
break break
try: try:
put(task) put(task)
except IOError: except OSError:
debug('could not put task on queue') debug('could not put task on queue')
break break
else: else:
@ -371,8 +371,8 @@ def _handle_tasks(taskqueue, put, outqueue, pool):
debug('task handler sending sentinel to workers') debug('task handler sending sentinel to workers')
for p in pool: for p in pool:
put(None) put(None)
except IOError: except OSError:
debug('task handler got IOError when sending sentinels') debug('task handler got OSError when sending sentinels')
debug('task handler exiting') debug('task handler exiting')
@ -383,8 +383,8 @@ def _handle_results(outqueue, get, cache):
while 1: while 1:
try: try:
task = get() task = get()
except (IOError, EOFError): except (OSError, EOFError):
debug('result handler got EOFError/IOError -- exiting') debug('result handler got EOFError/OSError -- exiting')
return return
if thread._state: if thread._state:
@ -405,8 +405,8 @@ def _handle_results(outqueue, get, cache):
while cache and thread._state != TERMINATE: while cache and thread._state != TERMINATE:
try: try:
task = get() task = get()
except (IOError, EOFError): except (OSError, EOFError):
debug('result handler got EOFError/IOError -- exiting') debug('result handler got EOFError/OSError -- exiting')
return return
if task is None: if task is None:
@ -428,7 +428,7 @@ def _handle_results(outqueue, get, cache):
if not outqueue._reader.poll(): if not outqueue._reader.poll():
break break
get() get()
except (IOError, EOFError): except (OSError, EOFError):
pass pass
debug('result handler exiting: len(cache)=%s, thread._state=%s', debug('result handler exiting: len(cache)=%s, thread._state=%s',

View file

@ -25,7 +25,7 @@ def __init__(self, file=None):
try: try:
file = os.path.join(os.environ['HOME'], ".netrc") file = os.path.join(os.environ['HOME'], ".netrc")
except KeyError: except KeyError:
raise IOError("Could not find .netrc: $HOME is not set") raise OSError("Could not find .netrc: $HOME is not set")
self.hosts = {} self.hosts = {}
self.macros = {} self.macros = {}
with open(file) as fp: with open(file) as fp:

View file

@ -947,7 +947,7 @@ def login(self, user=None, password=None, usenetrc=True):
if auth: if auth:
user = auth[0] user = auth[0]
password = auth[2] password = auth[2]
except IOError: except OSError:
pass pass
# Perform NNTP authentication if needed. # Perform NNTP authentication if needed.
if not user: if not user:

View file

@ -23,7 +23,7 @@ def url2pathname(url):
comp = url.split('|') comp = url.split('|')
if len(comp) != 2 or comp[0][-1] not in string.ascii_letters: if len(comp) != 2 or comp[0][-1] not in string.ascii_letters:
error = 'Bad URL: ' + url error = 'Bad URL: ' + url
raise IOError(error) raise OSError(error)
drive = comp[0][-1].upper() drive = comp[0][-1].upper()
components = comp[1].split('/') components = comp[1].split('/')
path = drive + ':' path = drive + ':'
@ -55,7 +55,7 @@ def pathname2url(p):
comp = p.split(':') comp = p.split(':')
if len(comp) != 2 or len(comp[0]) > 1: if len(comp) != 2 or len(comp[0]) > 1:
error = 'Bad path: ' + p error = 'Bad path: ' + p
raise IOError(error) raise OSError(error)
drive = urllib.parse.quote(comp[0].upper()) drive = urllib.parse.quote(comp[0].upper())
components = comp[1].split('\\') components = comp[1].split('\\')

View file

@ -92,7 +92,7 @@ def find_function(funcname, filename):
cre = re.compile(r'def\s+%s\s*[(]' % re.escape(funcname)) cre = re.compile(r'def\s+%s\s*[(]' % re.escape(funcname))
try: try:
fp = open(filename) fp = open(filename)
except IOError: except OSError:
return None return None
# consumer of this info expects the first line to be 1 # consumer of this info expects the first line to be 1
lineno = 1 lineno = 1
@ -170,12 +170,12 @@ def __init__(self, completekey='tab', stdin=None, stdout=None, skip=None,
try: try:
with open(os.path.join(envHome, ".pdbrc")) as rcFile: with open(os.path.join(envHome, ".pdbrc")) as rcFile:
self.rcLines.extend(rcFile) self.rcLines.extend(rcFile)
except IOError: except OSError:
pass pass
try: try:
with open(".pdbrc") as rcFile: with open(".pdbrc") as rcFile:
self.rcLines.extend(rcFile) self.rcLines.extend(rcFile)
except IOError: except OSError:
pass pass
self.commands = {} # associates a command list to breakpoint numbers self.commands = {} # associates a command list to breakpoint numbers
@ -1241,7 +1241,7 @@ def do_longlist(self, arg):
breaklist = self.get_file_breaks(filename) breaklist = self.get_file_breaks(filename)
try: try:
lines, lineno = getsourcelines(self.curframe) lines, lineno = getsourcelines(self.curframe)
except IOError as err: except OSError as err:
self.error(err) self.error(err)
return return
self._print_lines(lines, lineno, breaklist, self.curframe) self._print_lines(lines, lineno, breaklist, self.curframe)
@ -1257,7 +1257,7 @@ def do_source(self, arg):
return return
try: try:
lines, lineno = getsourcelines(obj) lines, lineno = getsourcelines(obj)
except (IOError, TypeError) as err: except (OSError, TypeError) as err:
self.error(err) self.error(err)
return return
self._print_lines(lines, lineno) self._print_lines(lines, lineno)

View file

@ -587,7 +587,7 @@ def extend_path(path, name):
if os.path.isfile(pkgfile): if os.path.isfile(pkgfile):
try: try:
f = open(pkgfile) f = open(pkgfile)
except IOError as msg: except OSError as msg:
sys.stderr.write("Can't open %s: %s\n" % sys.stderr.write("Can't open %s: %s\n" %
(pkgfile, msg)) (pkgfile, msg))
else: else:

View file

@ -430,9 +430,6 @@ def _syscmd_ver(system='', release='', version='',
except OSError as why: except OSError as why:
#print 'Command %s failed: %s' % (cmd,why) #print 'Command %s failed: %s' % (cmd,why)
continue continue
except IOError as why:
#print 'Command %s failed: %s' % (cmd,why)
continue
else: else:
break break
else: else:

View file

@ -612,7 +612,7 @@ def do_read(self, line):
if line: if line:
try: try:
self.stats = Stats(line) self.stats = Stats(line)
except IOError as err: except OSError as err:
print(err.args[1], file=self.stream) print(err.args[1], file=self.stream)
return return
except Exception as err: except Exception as err:

View file

@ -56,7 +56,7 @@ def _open_terminal():
else: else:
try: try:
tty_name, master_fd = sgi._getpty(os.O_RDWR, 0o666, 0) tty_name, master_fd = sgi._getpty(os.O_RDWR, 0o666, 0)
except IOError as msg: except OSError as msg:
raise OSError(msg) raise OSError(msg)
return master_fd, tty_name return master_fd, tty_name
for x in 'pqrstuvwxyzPQRST': for x in 'pqrstuvwxyzPQRST':
@ -83,7 +83,7 @@ def slave_open(tty_name):
try: try:
ioctl(result, I_PUSH, "ptem") ioctl(result, I_PUSH, "ptem")
ioctl(result, I_PUSH, "ldterm") ioctl(result, I_PUSH, "ldterm")
except IOError: except OSError:
pass pass
return result return result
@ -173,7 +173,7 @@ def spawn(argv, master_read=_read, stdin_read=_read):
restore = 0 restore = 0
try: try:
_copy(master_fd, master_read, stdin_read) _copy(master_fd, master_read, stdin_read)
except (IOError, OSError): except OSError:
if restore: if restore:
tty.tcsetattr(STDIN_FILENO, tty.TCSAFLUSH, mode) tty.tcsetattr(STDIN_FILENO, tty.TCSAFLUSH, mode)

View file

@ -173,7 +173,7 @@ def main(args=None):
except PyCompileError as error: except PyCompileError as error:
rv = 1 rv = 1
sys.stderr.write("%s\n" % error.msg) sys.stderr.write("%s\n" % error.msg)
except IOError as error: except OSError as error:
rv = 1 rv = 1
sys.stderr.write("%s\n" % error) sys.stderr.write("%s\n" % error)
else: else:

View file

@ -223,7 +223,7 @@ def synopsis(filename, cache={}):
if lastupdate is None or lastupdate < mtime: if lastupdate is None or lastupdate < mtime:
try: try:
file = tokenize.open(filename) file = tokenize.open(filename)
except IOError: except OSError:
# module can't be opened, so skip it # module can't be opened, so skip it
return None return None
binary_suffixes = importlib.machinery.BYTECODE_SUFFIXES[:] binary_suffixes = importlib.machinery.BYTECODE_SUFFIXES[:]
@ -1419,7 +1419,7 @@ def pipepager(text, cmd):
try: try:
pipe.write(text) pipe.write(text)
pipe.close() pipe.close()
except IOError: except OSError:
pass # Ignore broken pipes caused by quitting the pager program. pass # Ignore broken pipes caused by quitting the pager program.
def tempfilepager(text, cmd): def tempfilepager(text, cmd):

View file

@ -223,7 +223,7 @@ def main():
else: else:
try: try:
fp = open(file, "rb") fp = open(file, "rb")
except IOError as msg: except OSError as msg:
sys.stderr.write("%s: can't open (%s)\n" % (file, msg)) sys.stderr.write("%s: can't open (%s)\n" % (file, msg))
sts = 1 sts = 1
continue continue

View file

@ -153,7 +153,7 @@ def addpackage(sitedir, name, known_paths):
fullname = os.path.join(sitedir, name) fullname = os.path.join(sitedir, name)
try: try:
f = open(fullname, "r") f = open(fullname, "r")
except IOError: except OSError:
return return
with f: with f:
for n, line in enumerate(f): for n, line in enumerate(f):
@ -388,7 +388,7 @@ def __setup(self):
data = fp.read() data = fp.read()
fp.close() fp.close()
break break
except IOError: except OSError:
pass pass
if data: if data:
break break

View file

@ -11,7 +11,7 @@
- number of bits/sample, or 'U' for U-LAW, or 'A' for A-LAW - number of bits/sample, or 'U' for U-LAW, or 'A' for A-LAW
If the file doesn't have a recognizable type, it returns None. If the file doesn't have a recognizable type, it returns None.
If the file can't be opened, IOError is raised. If the file can't be opened, OSError is raised.
To compute the total time, divide the number of frames by the To compute the total time, divide the number of frames by the
sampling rate (a frame contains a sample for each channel). sampling rate (a frame contains a sample for each channel).
@ -230,7 +230,7 @@ def testall(list, recursive, toplevel):
sys.stdout.flush() sys.stdout.flush()
try: try:
print(what(filename)) print(what(filename))
except IOError: except OSError:
print('*** not found ***') print('*** not found ***')
if __name__ == '__main__': if __name__ == '__main__':

View file

@ -291,7 +291,7 @@ def readinto(self, b):
self._checkClosed() self._checkClosed()
self._checkReadable() self._checkReadable()
if self._timeout_occurred: if self._timeout_occurred:
raise IOError("cannot read from timed out object") raise OSError("cannot read from timed out object")
while True: while True:
try: try:
return self._sock.recv_into(b) return self._sock.recv_into(b)

View file

@ -897,7 +897,7 @@ def communicate(self, input=None, timeout=None):
if input: if input:
try: try:
self.stdin.write(input) self.stdin.write(input)
except IOError as e: except OSError as e:
if e.errno != errno.EPIPE and e.errno != errno.EINVAL: if e.errno != errno.EPIPE and e.errno != errno.EINVAL:
raise raise
self.stdin.close() self.stdin.close()
@ -1152,7 +1152,7 @@ def _communicate(self, input, endtime, orig_timeout):
if input is not None: if input is not None:
try: try:
self.stdin.write(input) self.stdin.write(input)
except IOError as e: except OSError as e:
if e.errno != errno.EPIPE: if e.errno != errno.EPIPE:
raise raise
self.stdin.close() self.stdin.close()

View file

@ -349,21 +349,21 @@ def _generate_posix_vars():
makefile = get_makefile_filename() makefile = get_makefile_filename()
try: try:
_parse_makefile(makefile, vars) _parse_makefile(makefile, vars)
except IOError as e: except OSError as e:
msg = "invalid Python installation: unable to open %s" % makefile msg = "invalid Python installation: unable to open %s" % makefile
if hasattr(e, "strerror"): if hasattr(e, "strerror"):
msg = msg + " (%s)" % e.strerror msg = msg + " (%s)" % e.strerror
raise IOError(msg) raise OSError(msg)
# load the installed pyconfig.h: # load the installed pyconfig.h:
config_h = get_config_h_filename() config_h = get_config_h_filename()
try: try:
with open(config_h) as f: with open(config_h) as f:
parse_config_h(f, vars) parse_config_h(f, vars)
except IOError as e: except OSError as e:
msg = "invalid Python installation: unable to open %s" % config_h msg = "invalid Python installation: unable to open %s" % config_h
if hasattr(e, "strerror"): if hasattr(e, "strerror"):
msg = msg + " (%s)" % e.strerror msg = msg + " (%s)" % e.strerror
raise IOError(msg) raise OSError(msg)
# On AIX, there are wrong paths to the linker scripts in the Makefile # On AIX, there are wrong paths to the linker scripts in the Makefile
# -- these paths are relative to the Python source, but when installed # -- these paths are relative to the Python source, but when installed
# the scripts are in another directory. # the scripts are in another directory.

View file

@ -95,7 +95,7 @@ def check(file):
try: try:
f = tokenize.open(file) f = tokenize.open(file)
except IOError as msg: except OSError as msg:
errprint("%r: I/O Error: %s" % (file, msg)) errprint("%r: I/O Error: %s" % (file, msg))
return return

View file

@ -264,13 +264,13 @@ def copyfileobj(src, dst, length=None):
for b in range(blocks): for b in range(blocks):
buf = src.read(BUFSIZE) buf = src.read(BUFSIZE)
if len(buf) < BUFSIZE: if len(buf) < BUFSIZE:
raise IOError("end of file reached") raise OSError("end of file reached")
dst.write(buf) dst.write(buf)
if remainder != 0: if remainder != 0:
buf = src.read(remainder) buf = src.read(remainder)
if len(buf) < remainder: if len(buf) < remainder:
raise IOError("end of file reached") raise OSError("end of file reached")
dst.write(buf) dst.write(buf)
return return
@ -399,7 +399,7 @@ def __init__(self, name, mode, comptype, fileobj, bufsize):
if mode == "r": if mode == "r":
self.dbuf = b"" self.dbuf = b""
self.cmp = bz2.BZ2Decompressor() self.cmp = bz2.BZ2Decompressor()
self.exception = IOError self.exception = OSError
else: else:
self.cmp = bz2.BZ2Compressor() self.cmp = bz2.BZ2Compressor()
@ -1631,7 +1631,7 @@ def gzopen(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs):
try: try:
fileobj = gzip.GzipFile(name, mode + "b", compresslevel, fileobj) fileobj = gzip.GzipFile(name, mode + "b", compresslevel, fileobj)
t = cls.taropen(name, mode, fileobj, **kwargs) t = cls.taropen(name, mode, fileobj, **kwargs)
except IOError: except OSError:
if not extfileobj and fileobj is not None: if not extfileobj and fileobj is not None:
fileobj.close() fileobj.close()
if fileobj is None: if fileobj is None:
@ -1662,7 +1662,7 @@ def bz2open(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs):
try: try:
t = cls.taropen(name, mode, fileobj, **kwargs) t = cls.taropen(name, mode, fileobj, **kwargs)
except (IOError, EOFError): except (OSError, EOFError):
fileobj.close() fileobj.close()
raise ReadError("not a bzip2 file") raise ReadError("not a bzip2 file")
t._extfileobj = False t._extfileobj = False
@ -2322,9 +2322,9 @@ def _check(self, mode=None):
corresponds to TarFile's mode. corresponds to TarFile's mode.
""" """
if self.closed: if self.closed:
raise IOError("%s is closed" % self.__class__.__name__) raise OSError("%s is closed" % self.__class__.__name__)
if mode is not None and self.mode not in mode: if mode is not None and self.mode not in mode:
raise IOError("bad operation for mode %r" % self.mode) raise OSError("bad operation for mode %r" % self.mode)
def _find_link_target(self, tarinfo): def _find_link_target(self, tarinfo):
"""Find the target member of a symlink or hardlink member in the """Find the target member of a symlink or hardlink member in the

View file

@ -28,7 +28,7 @@ def f(self, id):
self.alive[id] = os.getpid() self.alive[id] = os.getpid()
try: try:
time.sleep(SHORTSLEEP) time.sleep(SHORTSLEEP)
except IOError: except OSError:
pass pass
def wait_impl(self, cpid): def wait_impl(self, cpid):

View file

@ -282,7 +282,7 @@ def __init__(self, *args, **kw):
unittest.TestCase.__init__(self, *args, **kw) unittest.TestCase.__init__(self, *args, **kw)
try: try:
self.open_mapping_file().close() # test it to report the error early self.open_mapping_file().close() # test it to report the error early
except (IOError, HTTPException): except (OSError, HTTPException):
self.skipTest("Could not retrieve "+self.mapfileurl) self.skipTest("Could not retrieve "+self.mapfileurl)
def open_mapping_file(self): def open_mapping_file(self):

View file

@ -506,7 +506,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
next_test = fp.read().strip() next_test = fp.read().strip()
tests = [next_test] tests = [next_test]
fp.close() fp.close()
except IOError: except OSError:
pass pass
if fromfile: if fromfile:

View file

@ -22,7 +22,7 @@ def randfloats(n):
fn = os.path.join(td, "rr%06d" % n) fn = os.path.join(td, "rr%06d" % n)
try: try:
fp = open(fn, "rb") fp = open(fn, "rb")
except IOError: except OSError:
r = random.random r = random.random
result = [r() for i in range(n)] result = [r() for i in range(n)]
try: try:
@ -37,7 +37,7 @@ def randfloats(n):
os.unlink(fn) os.unlink(fn)
except OSError: except OSError:
pass pass
except IOError as msg: except OSError as msg:
print("can't write", fn, ":", msg) print("can't write", fn, ":", msg)
else: else:
result = marshal.load(fp) result = marshal.load(fp)

View file

@ -1097,9 +1097,9 @@ def __exit__(self, type_=None, value=None, traceback=None):
# Context managers that raise ResourceDenied when various issues # Context managers that raise ResourceDenied when various issues
# with the Internet connection manifest themselves as exceptions. # with the Internet connection manifest themselves as exceptions.
# XXX deprecate these and use transient_internet() instead # XXX deprecate these and use transient_internet() instead
time_out = TransientResource(IOError, errno=errno.ETIMEDOUT) time_out = TransientResource(OSError, errno=errno.ETIMEDOUT)
socket_peer_reset = TransientResource(OSError, errno=errno.ECONNRESET) socket_peer_reset = TransientResource(OSError, errno=errno.ECONNRESET)
ioerror_peer_reset = TransientResource(IOError, errno=errno.ECONNRESET) ioerror_peer_reset = TransientResource(OSError, errno=errno.ECONNRESET)
@contextlib.contextmanager @contextlib.contextmanager
@ -1145,17 +1145,17 @@ def filter_error(err):
if timeout is not None: if timeout is not None:
socket.setdefaulttimeout(timeout) socket.setdefaulttimeout(timeout)
yield yield
except IOError as err: except OSError as err:
# urllib can wrap original socket errors multiple times (!), we must # urllib can wrap original socket errors multiple times (!), we must
# unwrap to get at the original error. # unwrap to get at the original error.
while True: while True:
a = err.args a = err.args
if len(a) >= 1 and isinstance(a[0], IOError): if len(a) >= 1 and isinstance(a[0], OSError):
err = a[0] err = a[0]
# The error can also be wrapped as args[1]: # The error can also be wrapped as args[1]:
# except socket.error as msg: # except socket.error as msg:
# raise IOError('socket error', msg).with_traceback(sys.exc_info()[2]) # raise OSError('socket error', msg).with_traceback(sys.exc_info()[2])
elif len(a) >= 2 and isinstance(a[1], IOError): elif len(a) >= 2 and isinstance(a[1], OSError):
err = a[1] err = a[1]
else: else:
break break

View file

@ -355,12 +355,12 @@ def test_tofromfile(self):
support.unlink(support.TESTFN) support.unlink(support.TESTFN)
def test_fromfile_ioerror(self): def test_fromfile_ioerror(self):
# Issue #5395: Check if fromfile raises a proper IOError # Issue #5395: Check if fromfile raises a proper OSError
# instead of EOFError. # instead of EOFError.
a = array.array(self.typecode) a = array.array(self.typecode)
f = open(support.TESTFN, 'wb') f = open(support.TESTFN, 'wb')
try: try:
self.assertRaises(IOError, a.fromfile, f, len(self.example)) self.assertRaises(OSError, a.fromfile, f, len(self.example))
finally: finally:
f.close() f.close()
support.unlink(support.TESTFN) support.unlink(support.TESTFN)

View file

@ -253,8 +253,8 @@ def testWriteMethodsOnReadOnlyFile(self):
bz2f.write(b"abc") bz2f.write(b"abc")
with BZ2File(self.filename, "r") as bz2f: with BZ2File(self.filename, "r") as bz2f:
self.assertRaises(IOError, bz2f.write, b"a") self.assertRaises(OSError, bz2f.write, b"a")
self.assertRaises(IOError, bz2f.writelines, [b"a"]) self.assertRaises(OSError, bz2f.writelines, [b"a"])
def testAppend(self): def testAppend(self):
with BZ2File(self.filename, "w") as bz2f: with BZ2File(self.filename, "w") as bz2f:
@ -429,7 +429,7 @@ def testOpenDel(self):
del o del o
def testOpenNonexistent(self): def testOpenNonexistent(self):
self.assertRaises(IOError, BZ2File, "/non/existent") self.assertRaises(OSError, BZ2File, "/non/existent")
def testReadlinesNoNewline(self): def testReadlinesNoNewline(self):
# Issue #1191043: readlines() fails on a file containing no newline. # Issue #1191043: readlines() fails on a file containing no newline.

View file

@ -136,12 +136,12 @@ def __len__(self):
return 10; return 10;
def __getitem__(self, i): def __getitem__(self, i):
if i > 2: if i > 2:
raise IOError raise OSError
self.assertRaises(IOError, self._write_test, BadList(), '') self.assertRaises(OSError, self._write_test, BadList(), '')
class BadItem: class BadItem:
def __str__(self): def __str__(self):
raise IOError raise OSError
self.assertRaises(IOError, self._write_test, [BadItem()], '') self.assertRaises(OSError, self._write_test, [BadItem()], '')
def test_write_bigfield(self): def test_write_bigfield(self):
# This exercises the buffer realloc functionality # This exercises the buffer realloc functionality
@ -186,9 +186,9 @@ def test_write_escape(self):
def test_writerows(self): def test_writerows(self):
class BrokenFile: class BrokenFile:
def write(self, buf): def write(self, buf):
raise IOError raise OSError
writer = csv.writer(BrokenFile()) writer = csv.writer(BrokenFile())
self.assertRaises(IOError, writer.writerows, [['a']]) self.assertRaises(OSError, writer.writerows, [['a']])
with TemporaryFile("w+", newline='') as fileobj: with TemporaryFile("w+", newline='') as fileobj:
writer = csv.writer(fileobj) writer = csv.writer(fileobj)

View file

@ -57,7 +57,7 @@ def keys_helper(self, f):
return keys return keys
def test_error(self): def test_error(self):
self.assertTrue(issubclass(self.module.error, IOError)) self.assertTrue(issubclass(self.module.error, OSError))
def test_anydbm_not_existing(self): def test_anydbm_not_existing(self):
self.assertRaises(dbm.error, dbm.open, _fname) self.assertRaises(dbm.error, dbm.open, _fname)

View file

@ -27,7 +27,7 @@ def openfile(filename):
# Prevent this test from running in the Python distro # Prevent this test from running in the Python distro
try: try:
openfile('crispin-torture.txt') openfile('crispin-torture.txt')
except IOError: except OSError:
raise TestSkipped raise TestSkipped

View file

@ -33,7 +33,7 @@
try: try:
select.epoll() select.epoll()
except IOError as e: except OSError as e:
if e.errno == errno.ENOSYS: if e.errno == errno.ENOSYS:
raise unittest.SkipTest("kernel doesn't support epoll()") raise unittest.SkipTest("kernel doesn't support epoll()")
raise raise
@ -122,12 +122,12 @@ def test_add(self):
# ValueError: file descriptor cannot be a negative integer (-1) # ValueError: file descriptor cannot be a negative integer (-1)
self.assertRaises(ValueError, ep.register, -1, self.assertRaises(ValueError, ep.register, -1,
select.EPOLLIN | select.EPOLLOUT) select.EPOLLIN | select.EPOLLOUT)
# IOError: [Errno 9] Bad file descriptor # OSError: [Errno 9] Bad file descriptor
self.assertRaises(IOError, ep.register, 10000, self.assertRaises(OSError, ep.register, 10000,
select.EPOLLIN | select.EPOLLOUT) select.EPOLLIN | select.EPOLLOUT)
# registering twice also raises an exception # registering twice also raises an exception
ep.register(server, select.EPOLLIN | select.EPOLLOUT) ep.register(server, select.EPOLLIN | select.EPOLLOUT)
self.assertRaises(IOError, ep.register, server, self.assertRaises(OSError, ep.register, server,
select.EPOLLIN | select.EPOLLOUT) select.EPOLLIN | select.EPOLLOUT)
finally: finally:
ep.close() ep.close()
@ -149,7 +149,7 @@ def test_fromfd(self):
ep.close() ep.close()
try: try:
ep2.poll(1, 4) ep2.poll(1, 4)
except IOError as e: except OSError as e:
self.assertEqual(e.args[0], errno.EBADF, e) self.assertEqual(e.args[0], errno.EBADF, e)
else: else:
self.fail("epoll on closed fd didn't raise EBADF") self.fail("epoll on closed fd didn't raise EBADF")

View file

@ -244,16 +244,16 @@ def testAttributes(self):
{'args' : ('foo', 1)}), {'args' : ('foo', 1)}),
(SystemExit, ('foo',), (SystemExit, ('foo',),
{'args' : ('foo',), 'code' : 'foo'}), {'args' : ('foo',), 'code' : 'foo'}),
(IOError, ('foo',), (OSError, ('foo',),
{'args' : ('foo',), 'filename' : None, {'args' : ('foo',), 'filename' : None,
'errno' : None, 'strerror' : None}), 'errno' : None, 'strerror' : None}),
(IOError, ('foo', 'bar'), (OSError, ('foo', 'bar'),
{'args' : ('foo', 'bar'), 'filename' : None, {'args' : ('foo', 'bar'), 'filename' : None,
'errno' : 'foo', 'strerror' : 'bar'}), 'errno' : 'foo', 'strerror' : 'bar'}),
(IOError, ('foo', 'bar', 'baz'), (OSError, ('foo', 'bar', 'baz'),
{'args' : ('foo', 'bar'), 'filename' : 'baz', {'args' : ('foo', 'bar'), 'filename' : 'baz',
'errno' : 'foo', 'strerror' : 'bar'}), 'errno' : 'foo', 'strerror' : 'bar'}),
(IOError, ('foo', 'bar', 'baz', 'quux'), (OSError, ('foo', 'bar', 'baz', 'quux'),
{'args' : ('foo', 'bar', 'baz', 'quux')}), {'args' : ('foo', 'bar', 'baz', 'quux')}),
(OSError, ('errnoStr', 'strErrorStr', 'filenameStr'), (OSError, ('errnoStr', 'strErrorStr', 'filenameStr'),
{'args' : ('errnoStr', 'strErrorStr'), {'args' : ('errnoStr', 'strErrorStr'),

View file

@ -87,7 +87,7 @@ def testErrors(self):
self.assertTrue(not f.closed) self.assertTrue(not f.closed)
if hasattr(f, "readinto"): if hasattr(f, "readinto"):
self.assertRaises((IOError, TypeError), f.readinto, "") self.assertRaises((OSError, TypeError), f.readinto, "")
f.close() f.close()
self.assertTrue(f.closed) self.assertTrue(f.closed)
@ -126,7 +126,7 @@ def testMethods(self):
self.assertEqual(self.f.__exit__(*sys.exc_info()), None) self.assertEqual(self.f.__exit__(*sys.exc_info()), None)
def testReadWhenWriting(self): def testReadWhenWriting(self):
self.assertRaises(IOError, self.f.read) self.assertRaises(OSError, self.f.read)
class CAutoFileTests(AutoFileTests): class CAutoFileTests(AutoFileTests):
open = io.open open = io.open
@ -151,12 +151,12 @@ def testModeStrings(self):
def testStdin(self): def testStdin(self):
# This causes the interpreter to exit on OSF1 v5.1. # This causes the interpreter to exit on OSF1 v5.1.
if sys.platform != 'osf1V5': if sys.platform != 'osf1V5':
self.assertRaises((IOError, ValueError), sys.stdin.seek, -1) self.assertRaises((OSError, ValueError), sys.stdin.seek, -1)
else: else:
print(( print((
' Skipping sys.stdin.seek(-1), it may crash the interpreter.' ' Skipping sys.stdin.seek(-1), it may crash the interpreter.'
' Test manually.'), file=sys.__stdout__) ' Test manually.'), file=sys.__stdout__)
self.assertRaises((IOError, ValueError), sys.stdin.truncate) self.assertRaises((OSError, ValueError), sys.stdin.truncate)
def testBadModeArgument(self): def testBadModeArgument(self):
# verify that we get a sensible error message for bad mode argument # verify that we get a sensible error message for bad mode argument
@ -187,7 +187,7 @@ def testSetBufferSize(self):
d = int(f.read().decode("ascii")) d = int(f.read().decode("ascii"))
f.close() f.close()
f.close() f.close()
except IOError as msg: except OSError as msg:
self.fail('error setting buffer size %d: %s' % (s, str(msg))) self.fail('error setting buffer size %d: %s' % (s, str(msg)))
self.assertEqual(d, s) self.assertEqual(d, s)

View file

@ -275,8 +275,8 @@ def test_close_on_exception(self):
try: try:
t1 = writeTmp(1, [""]) t1 = writeTmp(1, [""])
with FileInput(files=t1) as fi: with FileInput(files=t1) as fi:
raise IOError raise OSError
except IOError: except OSError:
self.assertEqual(fi._files, ()) self.assertEqual(fi._files, ())
finally: finally:
remove_tempfiles(t1) remove_tempfiles(t1)

View file

@ -144,16 +144,16 @@ def testOpendir(self):
# Unix calls dircheck() and returns "[Errno 21]: Is a directory" # Unix calls dircheck() and returns "[Errno 21]: Is a directory"
try: try:
_FileIO('.', 'r') _FileIO('.', 'r')
except IOError as e: except OSError as e:
self.assertNotEqual(e.errno, 0) self.assertNotEqual(e.errno, 0)
self.assertEqual(e.filename, ".") self.assertEqual(e.filename, ".")
else: else:
self.fail("Should have raised IOError") self.fail("Should have raised OSError")
@unittest.skipIf(os.name == 'nt', "test only works on a POSIX-like system") @unittest.skipIf(os.name == 'nt', "test only works on a POSIX-like system")
def testOpenDirFD(self): def testOpenDirFD(self):
fd = os.open('.', os.O_RDONLY) fd = os.open('.', os.O_RDONLY)
with self.assertRaises(IOError) as cm: with self.assertRaises(OSError) as cm:
_FileIO(fd, 'r') _FileIO(fd, 'r')
os.close(fd) os.close(fd)
self.assertEqual(cm.exception.errno, errno.EISDIR) self.assertEqual(cm.exception.errno, errno.EISDIR)
@ -171,7 +171,7 @@ def wrapper(self):
finally: finally:
try: try:
self.f.close() self.f.close()
except IOError: except OSError:
pass pass
return wrapper return wrapper
@ -183,14 +183,14 @@ def wrapper(self):
os.close(f.fileno()) os.close(f.fileno())
try: try:
func(self, f) func(self, f)
except IOError as e: except OSError as e:
self.assertEqual(e.errno, errno.EBADF) self.assertEqual(e.errno, errno.EBADF)
else: else:
self.fail("Should have raised IOError") self.fail("Should have raised OSError")
finally: finally:
try: try:
self.f.close() self.f.close()
except IOError: except OSError:
pass pass
return wrapper return wrapper
@ -237,7 +237,7 @@ def testErrnoOnClosedIsatty(self, f):
def ReopenForRead(self): def ReopenForRead(self):
try: try:
self.f.close() self.f.close()
except IOError: except OSError:
pass pass
self.f = _FileIO(TESTFN, 'r') self.f = _FileIO(TESTFN, 'r')
os.close(self.f.fileno()) os.close(self.f.fileno())
@ -346,7 +346,7 @@ def testInvalidFd(self):
self.assertRaises(OSError, _FileIO, make_bad_fd()) self.assertRaises(OSError, _FileIO, make_bad_fd())
if sys.platform == 'win32': if sys.platform == 'win32':
import msvcrt import msvcrt
self.assertRaises(IOError, msvcrt.get_osfhandle, make_bad_fd()) self.assertRaises(OSError, msvcrt.get_osfhandle, make_bad_fd())
def testBadModeArgument(self): def testBadModeArgument(self):
# verify that we get a sensible error message for bad mode argument # verify that we get a sensible error message for bad mode argument

View file

@ -482,7 +482,7 @@ def test_exceptions(self):
def test_all_errors(self): def test_all_errors(self):
exceptions = (ftplib.error_reply, ftplib.error_temp, ftplib.error_perm, exceptions = (ftplib.error_reply, ftplib.error_temp, ftplib.error_perm,
ftplib.error_proto, ftplib.Error, IOError, EOFError) ftplib.error_proto, ftplib.Error, OSError, EOFError)
for x in exceptions: for x in exceptions:
try: try:
raise x('exception not included in all_errors set') raise x('exception not included in all_errors set')
@ -721,7 +721,7 @@ def test_source_address(self):
source_address=(HOST, port)) source_address=(HOST, port))
self.assertEqual(self.client.sock.getsockname()[1], port) self.assertEqual(self.client.sock.getsockname()[1], port)
self.client.quit() self.client.quit()
except IOError as e: except OSError as e:
if e.errno == errno.EADDRINUSE: if e.errno == errno.EADDRINUSE:
self.skipTest("couldn't bind to port %d" % port) self.skipTest("couldn't bind to port %d" % port)
raise raise
@ -732,7 +732,7 @@ def test_source_address_passive_connection(self):
try: try:
with self.client.transfercmd('list') as sock: with self.client.transfercmd('list') as sock:
self.assertEqual(sock.getsockname()[1], port) self.assertEqual(sock.getsockname()[1], port)
except IOError as e: except OSError as e:
if e.errno == errno.EADDRINUSE: if e.errno == errno.EADDRINUSE:
self.skipTest("couldn't bind to port %d" % port) self.skipTest("couldn't bind to port %d" % port)
raise raise

View file

@ -114,7 +114,7 @@ def handle(self):
# Naked sockets return empty strings.. # Naked sockets return empty strings..
return return
line += part line += part
except IOError: except OSError:
# ..but SSLSockets raise exceptions. # ..but SSLSockets raise exceptions.
return return
if line.endswith(b'\r\n'): if line.endswith(b'\r\n'):

View file

@ -59,7 +59,7 @@ def get_data(self, path):
elif path == self.bytecode_path: elif path == self.bytecode_path:
return self.bytecode return self.bytecode
else: else:
raise IOError raise OSError
def path_stats(self, path): def path_stats(self, path):
assert path == self.path assert path == self.path
@ -125,12 +125,12 @@ class SourceOnlyLoaderTests(SourceLoaderTestHarness):
def test_get_source(self): def test_get_source(self):
# Verify the source code is returned as a string. # Verify the source code is returned as a string.
# If an IOError is raised by get_data then raise ImportError. # If an OSError is raised by get_data then raise ImportError.
expected_source = self.loader.source.decode('utf-8') expected_source = self.loader.source.decode('utf-8')
self.assertEqual(self.loader.get_source(self.name), expected_source) self.assertEqual(self.loader.get_source(self.name), expected_source)
def raise_IOError(path): def raise_OSError(path):
raise IOError raise OSError
self.loader.get_data = raise_IOError self.loader.get_data = raise_OSError
with self.assertRaises(ImportError) as cm: with self.assertRaises(ImportError) as cm:
self.loader.get_source(self.name) self.loader.get_source(self.name)
self.assertEqual(cm.exception.name, self.name) self.assertEqual(cm.exception.name, self.name)
@ -216,7 +216,7 @@ def test_no_bytecode(self):
# If no bytecode exists then move on to the source. # If no bytecode exists then move on to the source.
self.loader.bytecode_path = "<does not exist>" self.loader.bytecode_path = "<does not exist>"
# Sanity check # Sanity check
with self.assertRaises(IOError): with self.assertRaises(OSError):
bytecode_path = imp.cache_from_source(self.path) bytecode_path = imp.cache_from_source(self.path)
self.loader.get_data(bytecode_path) self.loader.get_data(bytecode_path)
code_object = self.loader.get_code(self.name) code_object = self.loader.get_code(self.name)
@ -265,7 +265,7 @@ def test_no_set_data(self):
self.loader.__class__.set_data = original_set_data self.loader.__class__.set_data = original_set_data
def test_set_data_raises_exceptions(self): def test_set_data_raises_exceptions(self):
# Raising NotImplementedError or IOError is okay for set_data. # Raising NotImplementedError or OSError is okay for set_data.
def raise_exception(exc): def raise_exception(exc):
def closure(*args, **kwargs): def closure(*args, **kwargs):
raise exc raise exc

View file

@ -407,7 +407,7 @@ def test_read_only_bytecode(self):
os.chmod(bytecode_path, os.chmod(bytecode_path,
stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH) stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH)
try: try:
# Should not raise IOError! # Should not raise OSError!
self.import_(mapping['_temp'], '_temp') self.import_(mapping['_temp'], '_temp')
finally: finally:
# Make writable for eventual clean-up. # Make writable for eventual clean-up.

View file

@ -401,14 +401,14 @@ def test_method_in_dynamic_class(self):
unicodedata.__file__[-4:] in (".pyc", ".pyo"), unicodedata.__file__[-4:] in (".pyc", ".pyo"),
"unicodedata is not an external binary module") "unicodedata is not an external binary module")
def test_findsource_binary(self): def test_findsource_binary(self):
self.assertRaises(IOError, inspect.getsource, unicodedata) self.assertRaises(OSError, inspect.getsource, unicodedata)
self.assertRaises(IOError, inspect.findsource, unicodedata) self.assertRaises(OSError, inspect.findsource, unicodedata)
def test_findsource_code_in_linecache(self): def test_findsource_code_in_linecache(self):
lines = ["x=1"] lines = ["x=1"]
co = compile(lines[0], "_dynamically_created_file", "exec") co = compile(lines[0], "_dynamically_created_file", "exec")
self.assertRaises(IOError, inspect.findsource, co) self.assertRaises(OSError, inspect.findsource, co)
self.assertRaises(IOError, inspect.getsource, co) self.assertRaises(OSError, inspect.getsource, co)
linecache.cache[co.co_filename] = (1, None, lines, co.co_filename) linecache.cache[co.co_filename] = (1, None, lines, co.co_filename)
try: try:
self.assertEqual(inspect.findsource(co), (lines,0)) self.assertEqual(inspect.findsource(co), (lines,0))

View file

@ -164,7 +164,7 @@ class CloseFailureIO(MockRawIO):
def close(self): def close(self):
if not self.closed: if not self.closed:
self.closed = 1 self.closed = 1
raise IOError raise OSError
class CCloseFailureIO(CloseFailureIO, io.RawIOBase): class CCloseFailureIO(CloseFailureIO, io.RawIOBase):
pass pass
@ -600,9 +600,9 @@ def test_unbounded_file(self):
def test_flush_error_on_close(self): def test_flush_error_on_close(self):
f = self.open(support.TESTFN, "wb", buffering=0) f = self.open(support.TESTFN, "wb", buffering=0)
def bad_flush(): def bad_flush():
raise IOError() raise OSError()
f.flush = bad_flush f.flush = bad_flush
self.assertRaises(IOError, f.close) # exception not swallowed self.assertRaises(OSError, f.close) # exception not swallowed
self.assertTrue(f.closed) self.assertTrue(f.closed)
def test_multi_close(self): def test_multi_close(self):
@ -761,7 +761,7 @@ def f():
if s: if s:
# The destructor *may* have printed an unraisable error, check it # The destructor *may* have printed an unraisable error, check it
self.assertEqual(len(s.splitlines()), 1) self.assertEqual(len(s.splitlines()), 1)
self.assertTrue(s.startswith("Exception IOError: "), s) self.assertTrue(s.startswith("Exception OSError: "), s)
self.assertTrue(s.endswith(" ignored"), s) self.assertTrue(s.endswith(" ignored"), s)
def test_repr(self): def test_repr(self):
@ -777,22 +777,22 @@ def test_repr(self):
def test_flush_error_on_close(self): def test_flush_error_on_close(self):
raw = self.MockRawIO() raw = self.MockRawIO()
def bad_flush(): def bad_flush():
raise IOError() raise OSError()
raw.flush = bad_flush raw.flush = bad_flush
b = self.tp(raw) b = self.tp(raw)
self.assertRaises(IOError, b.close) # exception not swallowed self.assertRaises(OSError, b.close) # exception not swallowed
self.assertTrue(b.closed) self.assertTrue(b.closed)
def test_close_error_on_close(self): def test_close_error_on_close(self):
raw = self.MockRawIO() raw = self.MockRawIO()
def bad_flush(): def bad_flush():
raise IOError('flush') raise OSError('flush')
def bad_close(): def bad_close():
raise IOError('close') raise OSError('close')
raw.close = bad_close raw.close = bad_close
b = self.tp(raw) b = self.tp(raw)
b.flush = bad_flush b.flush = bad_flush
with self.assertRaises(IOError) as err: # exception not swallowed with self.assertRaises(OSError) as err: # exception not swallowed
b.close() b.close()
self.assertEqual(err.exception.args, ('close',)) self.assertEqual(err.exception.args, ('close',))
self.assertEqual(err.exception.__context__.args, ('flush',)) self.assertEqual(err.exception.__context__.args, ('flush',))
@ -1014,8 +1014,8 @@ def test_unseekable(self):
def test_misbehaved_io(self): def test_misbehaved_io(self):
rawio = self.MisbehavedRawIO((b"abc", b"d", b"efg")) rawio = self.MisbehavedRawIO((b"abc", b"d", b"efg"))
bufio = self.tp(rawio) bufio = self.tp(rawio)
self.assertRaises(IOError, bufio.seek, 0) self.assertRaises(OSError, bufio.seek, 0)
self.assertRaises(IOError, bufio.tell) self.assertRaises(OSError, bufio.tell)
def test_no_extraneous_read(self): def test_no_extraneous_read(self):
# Issue #9550; when the raw IO object has satisfied the read request, # Issue #9550; when the raw IO object has satisfied the read request,
@ -1066,7 +1066,7 @@ def test_misbehaved_io_read(self):
bufio = self.tp(rawio) bufio = self.tp(rawio)
# _pyio.BufferedReader seems to implement reading different, so that # _pyio.BufferedReader seems to implement reading different, so that
# checking this is not so easy. # checking this is not so easy.
self.assertRaises(IOError, bufio.read, 10) self.assertRaises(OSError, bufio.read, 10)
def test_garbage_collection(self): def test_garbage_collection(self):
# C BufferedReader objects are collected. # C BufferedReader objects are collected.
@ -1313,9 +1313,9 @@ def f():
def test_misbehaved_io(self): def test_misbehaved_io(self):
rawio = self.MisbehavedRawIO() rawio = self.MisbehavedRawIO()
bufio = self.tp(rawio, 5) bufio = self.tp(rawio, 5)
self.assertRaises(IOError, bufio.seek, 0) self.assertRaises(OSError, bufio.seek, 0)
self.assertRaises(IOError, bufio.tell) self.assertRaises(OSError, bufio.tell)
self.assertRaises(IOError, bufio.write, b"abcdef") self.assertRaises(OSError, bufio.write, b"abcdef")
def test_max_buffer_size_removal(self): def test_max_buffer_size_removal(self):
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
@ -1324,11 +1324,11 @@ def test_max_buffer_size_removal(self):
def test_write_error_on_close(self): def test_write_error_on_close(self):
raw = self.MockRawIO() raw = self.MockRawIO()
def bad_write(b): def bad_write(b):
raise IOError() raise OSError()
raw.write = bad_write raw.write = bad_write
b = self.tp(raw) b = self.tp(raw)
b.write(b'spam') b.write(b'spam')
self.assertRaises(IOError, b.close) # exception not swallowed self.assertRaises(OSError, b.close) # exception not swallowed
self.assertTrue(b.closed) self.assertTrue(b.closed)
@ -1393,14 +1393,14 @@ class NotReadable(MockRawIO):
def readable(self): def readable(self):
return False return False
self.assertRaises(IOError, self.tp, NotReadable(), self.MockRawIO()) self.assertRaises(OSError, self.tp, NotReadable(), self.MockRawIO())
def test_constructor_with_not_writeable(self): def test_constructor_with_not_writeable(self):
class NotWriteable(MockRawIO): class NotWriteable(MockRawIO):
def writable(self): def writable(self):
return False return False
self.assertRaises(IOError, self.tp, self.MockRawIO(), NotWriteable()) self.assertRaises(OSError, self.tp, self.MockRawIO(), NotWriteable())
def test_read(self): def test_read(self):
pair = self.tp(self.BytesIO(b"abcdef"), self.MockRawIO()) pair = self.tp(self.BytesIO(b"abcdef"), self.MockRawIO())
@ -2146,7 +2146,7 @@ def f():
if s: if s:
# The destructor *may* have printed an unraisable error, check it # The destructor *may* have printed an unraisable error, check it
self.assertEqual(len(s.splitlines()), 1) self.assertEqual(len(s.splitlines()), 1)
self.assertTrue(s.startswith("Exception IOError: "), s) self.assertTrue(s.startswith("Exception OSError: "), s)
self.assertTrue(s.endswith(" ignored"), s) self.assertTrue(s.endswith(" ignored"), s)
# Systematic tests of the text I/O API # Systematic tests of the text I/O API
@ -2218,7 +2218,7 @@ def test_telling(self):
f.seek(0) f.seek(0)
for line in f: for line in f:
self.assertEqual(line, "\xff\n") self.assertEqual(line, "\xff\n")
self.assertRaises(IOError, f.tell) self.assertRaises(OSError, f.tell)
self.assertEqual(f.tell(), p2) self.assertEqual(f.tell(), p2)
f.close() f.close()
@ -2322,7 +2322,7 @@ class UnReadable(self.BytesIO):
def readable(self): def readable(self):
return False return False
txt = self.TextIOWrapper(UnReadable()) txt = self.TextIOWrapper(UnReadable())
self.assertRaises(IOError, txt.read) self.assertRaises(OSError, txt.read)
def test_read_one_by_one(self): def test_read_one_by_one(self):
txt = self.TextIOWrapper(self.BytesIO(b"AA\r\nBB")) txt = self.TextIOWrapper(self.BytesIO(b"AA\r\nBB"))
@ -2497,9 +2497,9 @@ def run(n):
def test_flush_error_on_close(self): def test_flush_error_on_close(self):
txt = self.TextIOWrapper(self.BytesIO(self.testdata), encoding="ascii") txt = self.TextIOWrapper(self.BytesIO(self.testdata), encoding="ascii")
def bad_flush(): def bad_flush():
raise IOError() raise OSError()
txt.flush = bad_flush txt.flush = bad_flush
self.assertRaises(IOError, txt.close) # exception not swallowed self.assertRaises(OSError, txt.close) # exception not swallowed
self.assertTrue(txt.closed) self.assertTrue(txt.closed)
def test_multi_close(self): def test_multi_close(self):
@ -3032,7 +3032,7 @@ def _read():
# buffer, and block again. # buffer, and block again.
try: try:
wio.close() wio.close()
except IOError as e: except OSError as e:
if e.errno != errno.EBADF: if e.errno != errno.EBADF:
raise raise
@ -3160,7 +3160,7 @@ def alarm2(sig, frame):
# buffer, and could block (in case of failure). # buffer, and could block (in case of failure).
try: try:
wio.close() wio.close()
except IOError as e: except OSError as e:
if e.errno != errno.EBADF: if e.errno != errno.EBADF:
raise raise

View file

@ -8,7 +8,7 @@
try: try:
tty = open("/dev/tty", "rb") tty = open("/dev/tty", "rb")
except IOError: except OSError:
raise unittest.SkipTest("Unable to open /dev/tty") raise unittest.SkipTest("Unable to open /dev/tty")
else: else:
# Skip if another process is in foreground # Skip if another process is in foreground

View file

@ -14,7 +14,7 @@
import signal import signal
# The default handler for SIGXFSZ is to abort the process. # The default handler for SIGXFSZ is to abort the process.
# By ignoring it, system calls exceeding the file size resource # By ignoring it, system calls exceeding the file size resource
# limit will raise IOError instead of crashing the interpreter. # limit will raise OSError instead of crashing the interpreter.
oldhandler = signal.signal(signal.SIGXFSZ, signal.SIG_IGN) oldhandler = signal.signal(signal.SIGXFSZ, signal.SIG_IGN)
except (ImportError, AttributeError): except (ImportError, AttributeError):
pass pass
@ -162,7 +162,7 @@ def test_main():
# flush, too! # flush, too!
f.write(b'x') f.write(b'x')
f.flush() f.flush()
except (IOError, OverflowError): except (OSError, OverflowError):
f.close() f.close()
unlink(TESTFN) unlink(TESTFN)
raise unittest.SkipTest("filesystem does not have largefile support") raise unittest.SkipTest("filesystem does not have largefile support")

View file

@ -3183,13 +3183,13 @@ def _test_with_failure_in_method(self, method, error):
self.assertEqual('0 - release', self.called[-1]) self.assertEqual('0 - release', self.called[-1])
def test_with_ioerror_in_acquire(self): def test_with_ioerror_in_acquire(self):
self._test_with_failure_in_method('acquire', IOError) self._test_with_failure_in_method('acquire', OSError)
def test_with_ioerror_in_flush(self): def test_with_ioerror_in_flush(self):
self._test_with_failure_in_method('flush', IOError) self._test_with_failure_in_method('flush', OSError)
def test_with_ioerror_in_close(self): def test_with_ioerror_in_close(self):
self._test_with_failure_in_method('close', IOError) self._test_with_failure_in_method('close', OSError)
def test_with_valueerror_in_acquire(self): def test_with_valueerror_in_acquire(self):
self._test_with_failure_in_method('acquire', ValueError) self._test_with_failure_in_method('acquire', ValueError)

View file

@ -520,12 +520,12 @@ def force_decode():
def test_relative_seek(self): def test_relative_seek(self):
memio = self.ioclass() memio = self.ioclass()
self.assertRaises(IOError, memio.seek, -1, 1) self.assertRaises(OSError, memio.seek, -1, 1)
self.assertRaises(IOError, memio.seek, 3, 1) self.assertRaises(OSError, memio.seek, 3, 1)
self.assertRaises(IOError, memio.seek, -3, 1) self.assertRaises(OSError, memio.seek, -3, 1)
self.assertRaises(IOError, memio.seek, -1, 2) self.assertRaises(OSError, memio.seek, -1, 2)
self.assertRaises(IOError, memio.seek, 1, 1) self.assertRaises(OSError, memio.seek, 1, 1)
self.assertRaises(IOError, memio.seek, 1, 2) self.assertRaises(OSError, memio.seek, 1, 2)
def test_textio_properties(self): def test_textio_properties(self):
memio = self.ioclass() memio = self.ioclass()

View file

@ -684,11 +684,11 @@ def test_context_manager(self):
self.assertTrue(m.closed) self.assertTrue(m.closed)
def test_context_manager_exception(self): def test_context_manager_exception(self):
# Test that the IOError gets passed through # Test that the OSError gets passed through
with self.assertRaises(Exception) as exc: with self.assertRaises(Exception) as exc:
with mmap.mmap(-1, 10) as m: with mmap.mmap(-1, 10) as m:
raise IOError raise OSError
self.assertIsInstance(exc.exception, IOError, self.assertIsInstance(exc.exception, OSError,
"wrong exception raised in context manager") "wrong exception raised in context manager")
self.assertTrue(m.closed, "context manager failed") self.assertTrue(m.closed, "context manager failed")
@ -709,7 +709,7 @@ def _make_test_file(self, num_zeroes, tail):
f.seek(num_zeroes) f.seek(num_zeroes)
f.write(tail) f.write(tail)
f.flush() f.flush()
except (IOError, OverflowError): except (OSError, OverflowError):
f.close() f.close()
raise unittest.SkipTest("filesystem does not have largefile support") raise unittest.SkipTest("filesystem does not have largefile support")
return f return f

View file

@ -2019,7 +2019,7 @@ def test_rapid_restart(self):
address=addr, authkey=authkey, serializer=SERIALIZER) address=addr, authkey=authkey, serializer=SERIALIZER)
try: try:
manager.start() manager.start()
except IOError as e: except OSError as e:
if e.errno != errno.EADDRINUSE: if e.errno != errno.EADDRINUSE:
raise raise
# Retry after some time, in case the old socket was lingering # Retry after some time, in case the old socket was lingering
@ -2132,9 +2132,9 @@ def test_duplex_false(self):
self.assertEqual(reader.writable, False) self.assertEqual(reader.writable, False)
self.assertEqual(writer.readable, False) self.assertEqual(writer.readable, False)
self.assertEqual(writer.writable, True) self.assertEqual(writer.writable, True)
self.assertRaises(IOError, reader.send, 2) self.assertRaises(OSError, reader.send, 2)
self.assertRaises(IOError, writer.recv) self.assertRaises(OSError, writer.recv)
self.assertRaises(IOError, writer.poll) self.assertRaises(OSError, writer.poll)
def test_spawn_close(self): def test_spawn_close(self):
# We test that a pipe connection can be closed by parent # We test that a pipe connection can be closed by parent
@ -2296,8 +2296,8 @@ def test_context(self):
if self.TYPE == 'processes': if self.TYPE == 'processes':
self.assertTrue(a.closed) self.assertTrue(a.closed)
self.assertTrue(b.closed) self.assertTrue(b.closed)
self.assertRaises(IOError, a.recv) self.assertRaises(OSError, a.recv)
self.assertRaises(IOError, b.recv) self.assertRaises(OSError, b.recv)
class _TestListener(BaseTestCase): class _TestListener(BaseTestCase):
@ -2318,7 +2318,7 @@ def test_context(self):
self.assertEqual(d.recv(), 1729) self.assertEqual(d.recv(), 1729)
if self.TYPE == 'processes': if self.TYPE == 'processes':
self.assertRaises(IOError, l.accept) self.assertRaises(OSError, l.accept)
class _TestListenerClient(BaseTestCase): class _TestListenerClient(BaseTestCase):
@ -2866,12 +2866,12 @@ class TestInvalidHandle(unittest.TestCase):
def test_invalid_handles(self): def test_invalid_handles(self):
conn = multiprocessing.connection.Connection(44977608) conn = multiprocessing.connection.Connection(44977608)
try: try:
self.assertRaises((ValueError, IOError), conn.poll) self.assertRaises((ValueError, OSError), conn.poll)
finally: finally:
# Hack private attribute _handle to avoid printing an error # Hack private attribute _handle to avoid printing an error
# in conn.__del__ # in conn.__del__
conn._handle = None conn._handle = None
self.assertRaises((ValueError, IOError), self.assertRaises((ValueError, OSError),
multiprocessing.connection.Connection, -1) multiprocessing.connection.Connection, -1)
# #

View file

@ -43,7 +43,7 @@ def test_main(self):
try: try:
testdata = open_urlresource(TESTDATAURL, encoding="utf-8", testdata = open_urlresource(TESTDATAURL, encoding="utf-8",
check=check_version) check=check_version)
except (IOError, HTTPException): except (OSError, HTTPException):
self.skipTest("Could not retrieve " + TESTDATAURL) self.skipTest("Could not retrieve " + TESTDATAURL)
self.addCleanup(testdata.close) self.addCleanup(testdata.close)
for line in testdata: for line in testdata:

View file

@ -44,7 +44,7 @@ class OSSAudioDevTests(unittest.TestCase):
def play_sound_file(self, data, rate, ssize, nchannels): def play_sound_file(self, data, rate, ssize, nchannels):
try: try:
dsp = ossaudiodev.open('w') dsp = ossaudiodev.open('w')
except IOError as msg: except OSError as msg:
if msg.args[0] in (errno.EACCES, errno.ENOENT, if msg.args[0] in (errno.EACCES, errno.ENOENT,
errno.ENODEV, errno.EBUSY): errno.ENODEV, errno.EBUSY):
raise unittest.SkipTest(msg) raise unittest.SkipTest(msg)
@ -190,7 +190,7 @@ def test_on_closed(self):
def test_main(): def test_main():
try: try:
dsp = ossaudiodev.open('w') dsp = ossaudiodev.open('w')
except (ossaudiodev.error, IOError) as msg: except (ossaudiodev.error, OSError) as msg:
if msg.args[0] in (errno.EACCES, errno.ENOENT, if msg.args[0] in (errno.EACCES, errno.ENOENT,
errno.ENODEV, errno.EBUSY): errno.ENODEV, errno.EBUSY):
raise unittest.SkipTest(msg) raise unittest.SkipTest(msg)

View file

@ -550,7 +550,7 @@ def _test_chflags_regular_file(self, chflags_func, target_file, **kwargs):
self.assertEqual(st.st_flags | stat.UF_IMMUTABLE, new_st.st_flags) self.assertEqual(st.st_flags | stat.UF_IMMUTABLE, new_st.st_flags)
try: try:
fd = open(target_file, 'w+') fd = open(target_file, 'w+')
except IOError as e: except OSError as e:
self.assertEqual(e.errno, errno.EPERM) self.assertEqual(e.errno, errno.EPERM)
finally: finally:
posix.chflags(target_file, st.st_flags) posix.chflags(target_file, st.st_flags)

View file

@ -61,7 +61,7 @@ def test_fsize_enforced(self):
for i in range(5): for i in range(5):
time.sleep(.1) time.sleep(.1)
f.flush() f.flush()
except IOError: except OSError:
if not limit_set: if not limit_set:
raise raise
if limit_set: if limit_set:

View file

@ -1515,7 +1515,7 @@ def __exit__(self, exc_type, exc_val, exc_tb):
self._exited_with = exc_type, exc_val, exc_tb self._exited_with = exc_type, exc_val, exc_tb
if self._raise_in_exit: if self._raise_in_exit:
self._raised = True self._raised = True
raise IOError("Cannot close") raise OSError("Cannot close")
return self._suppress_at_exit return self._suppress_at_exit
def tearDown(self): def tearDown(self):
@ -1529,12 +1529,12 @@ def _set_shutil_open(self, func):
def test_w_source_open_fails(self): def test_w_source_open_fails(self):
def _open(filename, mode='r'): def _open(filename, mode='r'):
if filename == 'srcfile': if filename == 'srcfile':
raise IOError('Cannot open "srcfile"') raise OSError('Cannot open "srcfile"')
assert 0 # shouldn't reach here. assert 0 # shouldn't reach here.
self._set_shutil_open(_open) self._set_shutil_open(_open)
self.assertRaises(IOError, shutil.copyfile, 'srcfile', 'destfile') self.assertRaises(OSError, shutil.copyfile, 'srcfile', 'destfile')
def test_w_dest_open_fails(self): def test_w_dest_open_fails(self):
@ -1544,14 +1544,14 @@ def _open(filename, mode='r'):
if filename == 'srcfile': if filename == 'srcfile':
return srcfile return srcfile
if filename == 'destfile': if filename == 'destfile':
raise IOError('Cannot open "destfile"') raise OSError('Cannot open "destfile"')
assert 0 # shouldn't reach here. assert 0 # shouldn't reach here.
self._set_shutil_open(_open) self._set_shutil_open(_open)
shutil.copyfile('srcfile', 'destfile') shutil.copyfile('srcfile', 'destfile')
self.assertTrue(srcfile._entered) self.assertTrue(srcfile._entered)
self.assertTrue(srcfile._exited_with[0] is IOError) self.assertTrue(srcfile._exited_with[0] is OSError)
self.assertEqual(srcfile._exited_with[1].args, self.assertEqual(srcfile._exited_with[1].args,
('Cannot open "destfile"',)) ('Cannot open "destfile"',))
@ -1573,7 +1573,7 @@ def _open(filename, mode='r'):
self.assertTrue(srcfile._entered) self.assertTrue(srcfile._entered)
self.assertTrue(destfile._entered) self.assertTrue(destfile._entered)
self.assertTrue(destfile._raised) self.assertTrue(destfile._raised)
self.assertTrue(srcfile._exited_with[0] is IOError) self.assertTrue(srcfile._exited_with[0] is OSError)
self.assertEqual(srcfile._exited_with[1].args, self.assertEqual(srcfile._exited_with[1].args,
('Cannot close',)) ('Cannot close',))
@ -1591,7 +1591,7 @@ def _open(filename, mode='r'):
self._set_shutil_open(_open) self._set_shutil_open(_open)
self.assertRaises(IOError, self.assertRaises(OSError,
shutil.copyfile, 'srcfile', 'destfile') shutil.copyfile, 'srcfile', 'destfile')
self.assertTrue(srcfile._entered) self.assertTrue(srcfile._entered)
self.assertTrue(destfile._entered) self.assertTrue(destfile._entered)

View file

@ -222,7 +222,7 @@ def testSourceAddress(self):
self.assertEqual(smtp.source_address, ('127.0.0.1', port)) self.assertEqual(smtp.source_address, ('127.0.0.1', port))
self.assertEqual(smtp.local_hostname, 'localhost') self.assertEqual(smtp.local_hostname, 'localhost')
smtp.quit() smtp.quit()
except IOError as e: except OSError as e:
if e.errno == errno.EADDRINUSE: if e.errno == errno.EADDRINUSE:
self.skipTest("couldn't bind to port %d" % port) self.skipTest("couldn't bind to port %d" % port)
raise raise

View file

@ -3723,7 +3723,7 @@ def testReadAfterTimeout(self):
# First read raises a timeout # First read raises a timeout
self.assertRaises(socket.timeout, self.read_file.read, 1) self.assertRaises(socket.timeout, self.read_file.read, 1)
# Second read is disallowed # Second read is disallowed
with self.assertRaises(IOError) as ctx: with self.assertRaises(OSError) as ctx:
self.read_file.read(1) self.read_file.read(1)
self.assertIn("cannot read from timed out object", str(ctx.exception)) self.assertIn("cannot read from timed out object", str(ctx.exception))

View file

@ -246,15 +246,15 @@ def test_errors(self):
s = ssl.wrap_socket(sock, server_side=True, certfile=CERTFILE) s = ssl.wrap_socket(sock, server_side=True, certfile=CERTFILE)
self.assertRaisesRegex(ValueError, "can't connect in server-side mode", self.assertRaisesRegex(ValueError, "can't connect in server-side mode",
s.connect, (HOST, 8080)) s.connect, (HOST, 8080))
with self.assertRaises(IOError) as cm: with self.assertRaises(OSError) as cm:
with socket.socket() as sock: with socket.socket() as sock:
ssl.wrap_socket(sock, certfile=WRONGCERT) ssl.wrap_socket(sock, certfile=WRONGCERT)
self.assertEqual(cm.exception.errno, errno.ENOENT) self.assertEqual(cm.exception.errno, errno.ENOENT)
with self.assertRaises(IOError) as cm: with self.assertRaises(OSError) as cm:
with socket.socket() as sock: with socket.socket() as sock:
ssl.wrap_socket(sock, certfile=CERTFILE, keyfile=WRONGCERT) ssl.wrap_socket(sock, certfile=CERTFILE, keyfile=WRONGCERT)
self.assertEqual(cm.exception.errno, errno.ENOENT) self.assertEqual(cm.exception.errno, errno.ENOENT)
with self.assertRaises(IOError) as cm: with self.assertRaises(OSError) as cm:
with socket.socket() as sock: with socket.socket() as sock:
ssl.wrap_socket(sock, certfile=WRONGCERT, keyfile=WRONGCERT) ssl.wrap_socket(sock, certfile=WRONGCERT, keyfile=WRONGCERT)
self.assertEqual(cm.exception.errno, errno.ENOENT) self.assertEqual(cm.exception.errno, errno.ENOENT)
@ -442,7 +442,7 @@ def test_load_cert_chain(self):
ctx.load_cert_chain(CERTFILE) ctx.load_cert_chain(CERTFILE)
ctx.load_cert_chain(CERTFILE, keyfile=CERTFILE) ctx.load_cert_chain(CERTFILE, keyfile=CERTFILE)
self.assertRaises(TypeError, ctx.load_cert_chain, keyfile=CERTFILE) self.assertRaises(TypeError, ctx.load_cert_chain, keyfile=CERTFILE)
with self.assertRaises(IOError) as cm: with self.assertRaises(OSError) as cm:
ctx.load_cert_chain(WRONGCERT) ctx.load_cert_chain(WRONGCERT)
self.assertEqual(cm.exception.errno, errno.ENOENT) self.assertEqual(cm.exception.errno, errno.ENOENT)
with self.assertRaisesRegex(ssl.SSLError, "PEM lib"): with self.assertRaisesRegex(ssl.SSLError, "PEM lib"):
@ -527,7 +527,7 @@ def test_load_verify_locations(self):
ctx.load_verify_locations(cafile=BYTES_CERTFILE, capath=None) ctx.load_verify_locations(cafile=BYTES_CERTFILE, capath=None)
self.assertRaises(TypeError, ctx.load_verify_locations) self.assertRaises(TypeError, ctx.load_verify_locations)
self.assertRaises(TypeError, ctx.load_verify_locations, None, None) self.assertRaises(TypeError, ctx.load_verify_locations, None, None)
with self.assertRaises(IOError) as cm: with self.assertRaises(OSError) as cm:
ctx.load_verify_locations(WRONGCERT) ctx.load_verify_locations(WRONGCERT)
self.assertEqual(cm.exception.errno, errno.ENOENT) self.assertEqual(cm.exception.errno, errno.ENOENT)
with self.assertRaisesRegex(ssl.SSLError, "PEM lib"): with self.assertRaisesRegex(ssl.SSLError, "PEM lib"):
@ -1229,11 +1229,11 @@ def bad_cert_test(certfile):
except OSError as x: except OSError as x:
if support.verbose: if support.verbose:
sys.stdout.write("\nOSError is %s\n" % x.args[1]) sys.stdout.write("\nOSError is %s\n" % x.args[1])
except IOError as x: except OSError as x:
if x.errno != errno.ENOENT: if x.errno != errno.ENOENT:
raise raise
if support.verbose: if support.verbose:
sys.stdout.write("\IOError is %s\n" % str(x)) sys.stdout.write("\OSError is %s\n" % str(x))
else: else:
raise AssertionError("Use of invalid cert should have failed!") raise AssertionError("Use of invalid cert should have failed!")
@ -1387,7 +1387,7 @@ def test_malformed_key(self):
"badkey.pem")) "badkey.pem"))
def test_rude_shutdown(self): def test_rude_shutdown(self):
"""A brutal shutdown of an SSL server should raise an IOError """A brutal shutdown of an SSL server should raise an OSError
in the client when attempting handshake. in the client when attempting handshake.
""" """
listener_ready = threading.Event() listener_ready = threading.Event()
@ -1415,7 +1415,7 @@ def connector():
listener_gone.wait() listener_gone.wait()
try: try:
ssl_sock = ssl.wrap_socket(c) ssl_sock = ssl.wrap_socket(c)
except IOError: except OSError:
pass pass
else: else:
self.fail('connecting to closed SSL socket should have failed') self.fail('connecting to closed SSL socket should have failed')

View file

@ -489,7 +489,7 @@ def test_unpack_with_buffer(self):
def test_bool(self): def test_bool(self):
class ExplodingBool(object): class ExplodingBool(object):
def __bool__(self): def __bool__(self):
raise IOError raise OSError
for prefix in tuple("<>!=")+('',): for prefix in tuple("<>!=")+('',):
false = (), [], [], '', 0 false = (), [], [], '', 0
true = [1], 'test', 5, -1, 0xffffffff+1, 0xffffffff/2 true = [1], 'test', 5, -1, 0xffffffff+1, 0xffffffff/2
@ -520,10 +520,10 @@ def __bool__(self):
try: try:
struct.pack(prefix + '?', ExplodingBool()) struct.pack(prefix + '?', ExplodingBool())
except IOError: except OSError:
pass pass
else: else:
self.fail("Expected IOError: struct.pack(%r, " self.fail("Expected OSError: struct.pack(%r, "
"ExplodingBool())" % (prefix + '?')) "ExplodingBool())" % (prefix + '?'))
for c in [b'\x01', b'\x7f', b'\xff', b'\x0f', b'\xf0']: for c in [b'\x01', b'\x7f', b'\xff', b'\x0f', b'\xf0']:

Some files were not shown because too many files have changed in this diff Show more