diff options
Diffstat (limited to 'Lib/chunk.py')
| -rw-r--r-- | Lib/chunk.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/Lib/chunk.py b/Lib/chunk.py index 5863ed0846..d94dd39807 100644 --- a/Lib/chunk.py +++ b/Lib/chunk.py @@ -21,7 +21,7 @@ Usually an IFF-type file consists of one or more chunks. The proposed usage of the Chunk class defined here is to instantiate an instance at the start of each chunk and read from the instance until it reaches the end, after which a new instance can be instantiated. At the end -of the file, creating a new instance will fail with a EOFError +of the file, creating a new instance will fail with an EOFError exception. Usage: @@ -70,7 +70,7 @@ class Chunk: self.size_read = 0 try: self.offset = self.file.tell() - except (AttributeError, IOError): + except (AttributeError, OSError): self.seekable = False else: self.seekable = True @@ -85,8 +85,10 @@ class Chunk: def close(self): if not self.closed: - self.skip() - self.closed = True + try: + self.skip() + finally: + self.closed = True def isatty(self): if self.closed: @@ -102,7 +104,7 @@ class Chunk: if self.closed: raise ValueError("I/O operation on closed file") if not self.seekable: - raise IOError("cannot seek") + raise OSError("cannot seek") if whence == 1: pos = pos + self.size_read elif whence == 2: @@ -126,7 +128,7 @@ class Chunk: if self.closed: raise ValueError("I/O operation on closed file") if self.size_read >= self.chunksize: - return '' + return b'' if size < 0: size = self.chunksize - self.size_read if size > self.chunksize - self.size_read: @@ -158,7 +160,7 @@ class Chunk: self.file.seek(n, 1) self.size_read = self.size_read + n return - except IOError: + except OSError: pass while self.size_read < self.chunksize: n = min(8192, self.chunksize - self.size_read) |
