merging

Merging iterables

Functions to merge multiple iterables together into one.

class pythonic_fp.iterables.merging.MergeEnum

Bases: Enum

Iterable Blending Enums.

  • Concat: Concatenate first to last

  • Merge: Merge until one is exhausted

  • Exhaust: Merge until all are exhausted

pythonic_fp.iterables.merging.concat(*iterables: Iterable) Iterator

concatenate iterables

Sequentially concatenate multiple iterables.

param iterables:

Iterables to concatenate.

yields:

The concatenated items from all the iterables.

Warning

An infinite iterable will prevent subsequent iterables from yielding any items.

Note

Performant to the standard library’s itertools.chain.

pythonic_fp.iterables.merging.merge(*iterables: Iterable, yield_partials: bool = False) Iterator

merge iterables

Merge multiple iterables until one of them is exhausted.

param iterables:

Iterables to merge until one gets exhausted.

param yield_partials:

Yield any unpaired yielded items from other iterables.

yields:

Merged items from the iterables until one of the iterables is exhausted.

Note

When yield_partials is true, then any unmatched items from other iterables already yielded when the first iterable is exhausted are yielded.

This prevents data lose if any of the iterables are iterators with external references.

pythonic_fp.iterables.merging.exhaust(*iterables: Iterable) Iterator

exhaustively merge iterables

Merge multiple iterables until all of them are exhausted.

param iterables:

Iterables to exhaustively merge.

yields:

Merged items from the iterables until all of the iterables are exhausted.

pythonic_fp.iterables.merging.blend(*iterables: Iterable, merge_enum: MergeEnum = MergeEnum.Concat, yield_partials: bool = False) Iterator

merge iterables

Merge behavior based on value of merge_enum parameter.

  • Concat: Concatenate first to last

  • Merge: Merge until one is exhausted

  • Exhaust: Merge until all are exhausted

param iterables:

Iterables to blend together.

param merge_enum:

MergeEnum to determine merging behavior.

param yield_partials:

Yield unpaired items from other iterables.

yields:

Items from all iterables blended together.

raises ValueError:

When an unknown MergeEnum is given.