Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from typing import TypeVar, Iterable, Iterator, Tuple
- from more_itertools import spy
- from itertools import chain, pairwise
- _T = TypeVar('_T')
- def give_chain_link_pairs(links: Iterable[_T], cycle_preview: int = 1) -> Iterator[Tuple[_T]]:
- first_values, new_iterator = spy(iter(links), n = cycle_preview)
- yield from pairwise(chain(new_iterator, reversed(first_values))) # loopback
Advertisement
Advertisement