Iteration Utilities

Module: ppc_robot_lib.utils.iter

class ChunkedIterator(iterable, chunk_size, include_empty=True)[source]

Iterator that lazily splits passed iterator into smaller chunks with size specified in chunk_size arg and providing some statistics.

Parameters:

include_empty – if true then iterator always yields at least one chunk.

exception IterableTooLong[source]
chunked

alias of ChunkedIterator

chunks(iterable, chunk_size)[source]

Split the given sequence into multiple chunks.

Parameters:
  • iterable (Sequence[TypeVar(T)]) – Iterable sequence - must support len() and index access.

  • chunk_size (int) – Chunk size.

Return type:

Iterable[Sequence[TypeVar(T)]]

Returns:

Iterable over chunks of given size.

counted

alias of _Count

filter_not_none(iterable)[source]

Filter out all elements equal to None.

Parameters:

iterable (Iterable[TypeVar(T)]) – Iterable used to filter values.

Return type:

Iterable[TypeVar(T)]

Returns:

Generator of values not equal to None.

merged_generator(*generators)[source]

Merges multiple generators into one. Variation of itertools.chain, but for generators.

Parameters:

generators (Iterable[TypeVar(T)]) – Generators to merge.

Return type:

Iterable[TypeVar(T)]

Returns:

Iterable over

try_slice_iterable(iterable, max_size)[source]

Try lazily slice iterator or raise IterableTooLong if iterable exceeds max_size.

Equivalent to itertools.islice but raises IterableTooLong exception.

Return type:

Iterable[TypeVar(T)]

unique(iterable)[source]

List unique elements, preserving order. Remember all elements ever seen. :rtype: Iterable[TypeVar(T)]

Parameters:

iterable (Iterable[TypeVar(T)]) – Iterable used to filter values.

:return Generator of unique values.