diff options
Diffstat (limited to 'Lib/lzma.py')
-rw-r--r-- | Lib/lzma.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Lib/lzma.py b/Lib/lzma.py index 780c666..3786993 100644 --- a/Lib/lzma.py +++ b/Lib/lzma.py @@ -165,7 +165,7 @@ class LZMAFile(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.""" @@ -192,9 +192,12 @@ class LZMAFile(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): |