code: def peek(self, default=_marker):
          
          if not self._cache:
              try:
                  self._cache.append(next(self._it))
              except StopIteration:
                  if default is _marker:
                      raise
                  return default
          return self._cache[0]
docs: Return the item that will be next returned from ``next()``.
  
          Return ``default`` if there are no items left. If ``default`` is not
          provided, raise ``StopIteration``.