code: def seek(self, offset, whence=os.SEEK_SET):
      
      self._check_open()
  
      self._buffer.reset()
      self._buffer_future = None
  
      if whence == os.SEEK_SET:
        self._offset = offset
      elif whence == os.SEEK_CUR:
        self._offset += offset
      elif whence == os.SEEK_END:
        self._offset = self._file_size + offset
      else:
        raise ValueError('Whence mode %s is invalid.' % str(whence))
  
      self._offset = min(self._offset, self._file_size)
      self._offset = max(self._offset, 0)
      if self._remaining():
        self._request_next_buffer()
docs: Set the file's current offset.
  
      Note if the new offset is out of bound, it is adjusted to either 0 or EOF.
  
      Args:
        offset: seek offset as number.
        whence: seek mode. Supported modes are os.SEEK_SET (absolute seek),
          os.SEEK_CUR (seek relative to the current position), and os.SEEK_END
          (seek relative to the end, offset should be negative).
  
      Raises:
        IOError: When this buffer is closed.
        ValueError: When whence is invalid.