summaryrefslogtreecommitdiff
path: root/Lib/chunk.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/chunk.py')
-rw-r--r--Lib/chunk.py16
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)