"""Misc helper functions.""" import itertools def grouper(n, iterable): """Split iterable into n-sized iterable chunks. Args: n (int): chunk size iterable (iter): iterable sequence to split Yields: iterable chunk of size "n" """ it = iter(iterable) while True: chunk_it = itertools.islice(it, n) try: first_el = next(chunk_it) except StopIteration: return yield itertools.chain((first_el,), chunk_it)