Source code for faust.utils.functional

"""Functional utilities."""
from itertools import groupby
from typing import Iterable, Iterator, Sequence

__all__ = ['consecutive_numbers']


[docs]def consecutive_numbers(it: Iterable[int]) -> Iterator[Sequence[int]]: """Find runs of consecutive numbers. Notes: See https://docs.python.org/2.6/library/itertools.html#examples """ for _, g in groupby(enumerate(it), lambda a: a[0] - a[1]): yield [a[1] for a in g]