iterables.merging¶
Merging Iterables¶
module pythonic_fp.iterables.merging
Functions to merge multiple iterables together into one.
- class pythonic_fp.iterables.merging.MergeEnum(*values)¶
Iterable Blending Enums.
MergeEnum.Concat: Concatenate first to last
MergeEnum.Merge: Merge until one is exhausted
MergeEnum.Exhaust: Merge until all are exhausted
- pythonic_fp.iterables.merging.concat(*iterables: Iterable) Iterator¶
Sequentially concatenate multiple iterables together.
Warning
An infinite iterable will prevent subsequent iterables from yielding any values.
Note
Performant to the standard library’s
itertools.chain.- Parameters:
iterables – Iterables to concatenate.
- Returns:
Iterator of concatenated values from the iterables.
- pythonic_fp.iterables.merging.merge(*iterables: Iterable, yield_partials: bool = False) Iterator¶
Merge together
iterablesuntil one is exhausted.Note
When
yield_partialsis true, then any unmatched values 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.- Parameters:
iterables – Iterables to merge until one gets exhausted.
yield_partials – Yield any unpaired yielded values from other iterables.
- Returns:
Iterator of merged values from the iterables until one is exhausted.
- pythonic_fp.iterables.merging.exhaust(*iterables: Iterable) Iterator¶
Merge together multiple iterables until all are exhausted.
- Parameters:
iterables – Iterables to exhaustively merge.
- Returns:
Iterator of merged values from the iterables until all are exhausted.
- pythonic_fp.iterables.merging.blend(*iterables: Iterable, merge_enum: MergeEnum = MergeEnum.Concat, yield_partials: bool = False) Iterator¶
Merge behavior based on value of merge_enum parameter.
- Parameters:
iterables – Iterables to blend together.
merge_enum –
MergeEnumto determine merging behavior.yield_partials – Yield unpaired values from other iterables.
- Returns:
An iterator of type
D.- Raises:
ValueError – When an unknown
MergeEnumis given.