def peek(self, default=_marker):
        """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``.

        """
        if not hasattr(self, '_peek'):
            try:
                self._peek = self._it.next()
            except __HOLE__:
                if default is _marker:
                    raise
                return default
        return self._peek
dataset/ETHPy150Open tanghaibao/jcvi/utils/iter.py/peekable.peek