iterables.merging¶
Module pythonic_fp.iterables.merging
- 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.blend(*iterables: Iterable, merge_enum: MergeEnum = MergeEnum.Concat, yield_partials: bool = False) Iterator ¶
Base merge behavior on name only parameters.
- Parameters:
iterables – iterables to blend together
merge_enum – MergeEnum to determine merging behavior
yield_partials – yield yielded unpaired values from other iterables
- Returns:
an iterator of type D
- Raises:
ValueError – when an unknown MergeEnum is given
- 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.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.merge(*iterables: Iterable, yield_partials: bool = False) Iterator ¶
Merge together
iterables
until one is exhausted.Note
When
yield_partials
is 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