class documentation

An iterator object that supports peeking ahead.

peek_iter can operate as a drop in replacement for the built-in iter function.

Method __init__ No summary
Method __iter__ Undocumented
Method __next__ Undocumented
Method has_next Determine if iterator is exhausted.
Method next Get the next item or n items of the iterator.
Method peek Preview the next item or n items of the iterator. The iterator is not advanced when peek is called.
Instance Variable counter Store and increment line number to report correct lines!
Instance Variable sentinel The value used to indicate the iterator is exhausted. If sentinel was not given when the peek_iter was instantiated, then it will be set to a new object instance: object().
Method _fillcache Cache n items. If n is 0 or None, then 1 item is cached.
Instance Variable _cache Undocumented
Instance Variable _iterable Undocumented
def __init__(self, o: Callable[[], T] | Iterable[T], sentinel: T | None = None): (source)
Parameters
o:Iterable or Callableo is interpreted very differently depending on the presence of sentinel. If sentinel is not given, then o must be a collection object which supports either the iteration protocol or the sequence protocol. If sentinel is given, then o must be a callable object.
sentinel:object, optionalIf given, the iterator will call o with no arguments for each call to its next method; if the value returned is equal to sentinel, StopIteration will be raised, otherwise the value will be returned.
def __iter__(self) -> peek_iter[T]: (source)

Undocumented

def __next__(self) -> T: (source)

Undocumented

def has_next(self) -> bool: (source)

Determine if iterator is exhausted.

Note

Will never raise StopIteration.

Returns
boolTrue if iterator has more items, False otherwise.
@overload
def next(self, n: int) -> Sequence[T]:
@overload
def next(self) -> T:
(source)

Get the next item or n items of the iterator.

Parameters
n:int or NoneThe number of items to retrieve. Defaults to None.
Returns
Sequence[T] | TThe 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.
Raises
StopIterationRaised if the iterator is exhausted, even if n is 0.
@overload
def peek(self, n: int) -> Sequence[T]:
@overload
def peek(self) -> T:
(source)

Preview the next item or n items of the iterator. The iterator is not advanced when peek is called.

Note

Will never raise StopIteration.

Returns
Sequence[T] | TThe 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.

Store and increment line number to report correct lines!

sentinel = (source)

The value used to indicate the iterator is exhausted. If sentinel was not given when the peek_iter was instantiated, then it will be set to a new object instance: object().

def _fillcache(self, n: int | None): (source)

Cache n items. If n is 0 or None, then 1 item is cached.

Undocumented

Undocumented