diff options
author | Nadeem Vawda <nadeem.vawda@gmail.com> | 2012-02-12 01:51:38 +0200 |
---|---|---|
committer | Nadeem Vawda <nadeem.vawda@gmail.com> | 2012-02-12 01:51:38 +0200 |
commit | ae557d767fa0862188a17914eb07b74088ed4d29 (patch) | |
tree | acd9d5cb6fd49f4cb40399eec3b866d10e8f855a /Lib/bz2.py | |
parent | d7e5c6ed7f8402a3ce2e6acb0cc6253456878773 (diff) | |
download | cpython-git-ae557d767fa0862188a17914eb07b74088ed4d29.tar.gz |
Fix seekable() in BZ2File and LZMAFile to check whether the underlying file supports seek().
Diffstat (limited to 'Lib/bz2.py')
-rw-r--r-- | Lib/bz2.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Lib/bz2.py b/Lib/bz2.py index 7e1a7e29c6..51b9ac4388 100644 --- a/Lib/bz2.py +++ b/Lib/bz2.py @@ -138,7 +138,7 @@ class BZ2File(io.BufferedIOBase): def seekable(self): """Return whether the file supports seeking.""" - return self.readable() + return self.readable() and self._fp.seekable() def readable(self): """Return whether the file was opened for reading.""" @@ -165,9 +165,12 @@ class BZ2File(io.BufferedIOBase): raise io.UnsupportedOperation("File not open for writing") def _check_can_seek(self): - if not self.seekable(): + if not self.readable(): raise io.UnsupportedOperation("Seeking is only supported " "on files open for reading") + if not self._fp.seekable(): + raise io.UnsupportedOperation("The underlying file object " + "does not support seeking") # Fill the readahead buffer if it is empty. Returns False on EOF. def _fill_buffer(self): |