code: def peek(self, n):
          
          pos = self._read_pos
          end = pos + n
          return self.raw[pos:end]
docs: Returns buffered bytes without advancing the position.
          The argument indicates a desired minimal number of bytes; we
          do at most one raw read to satisfy it.  We never return more
          than self.buffer_size.