Coverage for src/extratools_core/iter.py: 0%
7 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-04 05:48 -0700
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-04 05:48 -0700
1from collections.abc import Iterable, Sequence
2from itertools import chain, repeat
4from toolz.itertoolz import sliding_window
7def iter_to_grams[T](
8 _iter: Iterable[T],
9 *,
10 n: int,
11 pad: T | None = None,
12) -> Iterable[Sequence[T]]:
13 if pad is not None:
14 _iter = chain(
15 repeat(pad, n - 1),
16 _iter,
17 repeat(pad, n - 1),
18 )
20 return sliding_window(n, _iter)