621,645d620 < def seekable(self): < return True < < def seek(self, offset, whence=0): < if whence: < if whence == 1: < offset = self._offset + offset < else: < raise ValueError('Seek from end not supported') < < < if offset < self._offset: < # for negative seek, rewind and do positive seek < self._fileobj.seek(0) < self._unconsumed = '' < self._readbuffer = '' < self._offset = 0 < self._running_crc = crc32(b'') & 0xffffffff < < count = offset - self._offset < for i in xrange(count // 1024): < self.read(1024) < self.read(count % 1024) < < return self._offset