'Preview the next item or `n` items of the iterator.
The iterator is not advanced when peek is called.
Returns
item or list of items
The next item or `n` items of the iterator. If `n` is None, the
item itself is returned. If `n` is an int, the items will be
returned in a list. If `n` is 0, an empty list is returned.
If the iterator is exhausted, `peek_iter.sentinel` is returned,
or placed as the last item in the returned list.
Note
Will never raise :exc:`StopIteration`.'

def peek(self, n=None):

    self._fillcache(n)
    if (n is None):
        result = self._cache[0]
    else:
        result = [self._cache[i] for i in range(n)]
    return result
