code: def seek(self, offset, whence=START):
          
          logger.debug('seeking to offset: %r whence: %r', offset, whence)
          if whence not in WHENCE_CHOICES:
              raise ValueError('invalid whence, expected one of %r' % WHENCE_CHOICES)
  
          if whence == START:
              new_position = offset
          elif whence == CURRENT:
              new_position = self._current_pos + offset
          else:
              new_position = self._content_length + offset
          new_position = clamp(new_position, 0, self._content_length)
          self._current_pos = new_position
          self._raw_reader.seek(new_position)
          logger.debug('new_position: %r', self._current_pos)
  
          self._buffer.empty()
          self._eof = self._current_pos == self._content_length
          return self._current_pos
docs: Seek to the specified position.
  
          :param int offset: The offset in bytes.
          :param int whence: Where the offset is from.
  
          Returns the position after seeking.