3434def open (file , mode = "r" , buffering = - 1 , encoding = None , errors = None ,
3535 newline = None , closefd = True , opener = None ):
3636
37- r"""Open file and return a stream. Raise IOError upon failure.
37+ r"""Open file and return a stream. Raise OSError upon failure.
3838
3939 file is either a text or byte string giving the name (and the path
4040 if the file isn't in the current working directory) of the file to
@@ -254,7 +254,7 @@ def __new__(cls, *args, **kwargs):
254254try :
255255 UnsupportedOperation = io .UnsupportedOperation
256256except AttributeError :
257- class UnsupportedOperation (ValueError , IOError ):
257+ class UnsupportedOperation (ValueError , OSError ):
258258 pass
259259
260260
@@ -278,7 +278,7 @@ class IOBase(metaclass=abc.ABCMeta):
278278 readinto) needed. Text I/O classes work with str data.
279279
280280 Note that calling any method (even inquiries) on a closed stream is
281- undefined. Implementations may raise IOError in this case.
281+ undefined. Implementations may raise OSError in this case.
282282
283283 IOBase (and its subclasses) support the iterator protocol, meaning
284284 that an IOBase object can be iterated over yielding the lines in a
@@ -294,7 +294,7 @@ class IOBase(metaclass=abc.ABCMeta):
294294 ### Internal ###
295295
296296 def _unsupported (self , name ):
297- """Internal: raise an IOError exception for unsupported operations."""
297+ """Internal: raise an OSError exception for unsupported operations."""
298298 raise UnsupportedOperation ("%s.%s() not supported" %
299299 (self .__class__ .__name__ , name ))
300300
@@ -441,7 +441,7 @@ def __exit__(self, *args):
441441 def fileno (self ):
442442 """Returns underlying file descriptor (an int) if one exists.
443443
444- An IOError is raised if the IO object does not use a file descriptor.
444+ An OSError is raised if the IO object does not use a file descriptor.
445445 """
446446 self ._unsupported ("fileno" )
447447
@@ -699,13 +699,13 @@ def __init__(self, raw):
699699 def seek (self , pos , whence = 0 ):
700700 new_position = self .raw .seek (pos , whence )
701701 if new_position < 0 :
702- raise IOError ("seek() returned an invalid position" )
702+ raise OSError ("seek() returned an invalid position" )
703703 return new_position
704704
705705 def tell (self ):
706706 pos = self .raw .tell ()
707707 if pos < 0 :
708- raise IOError ("tell() returned an invalid position" )
708+ raise OSError ("tell() returned an invalid position" )
709709 return pos
710710
711711 def truncate (self , pos = None ):
@@ -927,7 +927,7 @@ def __init__(self, raw, buffer_size=DEFAULT_BUFFER_SIZE):
927927 """Create a new buffered reader using the given readable raw IO object.
928928 """
929929 if not raw .readable ():
930- raise IOError ('"raw" argument must be readable.' )
930+ raise OSError ('"raw" argument must be readable.' )
931931
932932 _BufferedIOMixin .__init__ (self , raw )
933933 if buffer_size <= 0 :
@@ -1074,7 +1074,7 @@ class BufferedWriter(_BufferedIOMixin):
10741074
10751075 def __init__ (self , raw , buffer_size = DEFAULT_BUFFER_SIZE ):
10761076 if not raw .writable ():
1077- raise IOError ('"raw" argument must be writable.' )
1077+ raise OSError ('"raw" argument must be writable.' )
10781078
10791079 _BufferedIOMixin .__init__ (self , raw )
10801080 if buffer_size <= 0 :
@@ -1138,7 +1138,7 @@ def _flush_unlocked(self):
11381138 errno .EAGAIN ,
11391139 "write could not complete without blocking" , 0 )
11401140 if n > len (self ._write_buf ) or n < 0 :
1141- raise IOError ("write() returned incorrect number of bytes" )
1141+ raise OSError ("write() returned incorrect number of bytes" )
11421142 del self ._write_buf [:n ]
11431143
11441144 def tell (self ):
@@ -1174,10 +1174,10 @@ def __init__(self, reader, writer, buffer_size=DEFAULT_BUFFER_SIZE):
11741174 The arguments are two RawIO instances.
11751175 """
11761176 if not reader .readable ():
1177- raise IOError ('"reader" argument must be readable.' )
1177+ raise OSError ('"reader" argument must be readable.' )
11781178
11791179 if not writer .writable ():
1180- raise IOError ('"writer" argument must be writable.' )
1180+ raise OSError ('"writer" argument must be writable.' )
11811181
11821182 self .reader = BufferedReader (reader , buffer_size )
11831183 self .writer = BufferedWriter (writer , buffer_size )
@@ -1248,7 +1248,7 @@ def seek(self, pos, whence=0):
12481248 with self ._read_lock :
12491249 self ._reset_read_buf ()
12501250 if pos < 0 :
1251- raise IOError ("seek() returned invalid position" )
1251+ raise OSError ("seek() returned invalid position" )
12521252 return pos
12531253
12541254 def tell (self ):
@@ -1727,7 +1727,7 @@ def tell(self):
17271727 if not self ._seekable :
17281728 raise UnsupportedOperation ("underlying stream is not seekable" )
17291729 if not self ._telling :
1730- raise IOError ("telling position disabled by next() call" )
1730+ raise OSError ("telling position disabled by next() call" )
17311731 self .flush ()
17321732 position = self .buffer .tell ()
17331733 decoder = self ._decoder
@@ -1814,7 +1814,7 @@ def tell(self):
18141814 chars_decoded += len (decoder .decode (b'' , final = True ))
18151815 need_eof = 1
18161816 if chars_decoded < chars_to_skip :
1817- raise IOError ("can't reconstruct logical file position" )
1817+ raise OSError ("can't reconstruct logical file position" )
18181818
18191819 # The returned cookie corresponds to the last safe start point.
18201820 return self ._pack_cookie (
@@ -1891,7 +1891,7 @@ def seek(self, cookie, whence=0):
18911891
18921892 # Skip chars_to_skip of the decoded characters.
18931893 if len (self ._decoded_chars ) < chars_to_skip :
1894- raise IOError ("can't restore logical file position" )
1894+ raise OSError ("can't restore logical file position" )
18951895 self ._decoded_chars_used = chars_to_skip
18961896
18971897 # Finally, reset the encoder (merely useful for proper BOM handling)
0 commit comments