from itertools import islice | |
try: | |
# batched is in 3.12 | |
from itertools import batched | |
except ImportError: | |
def batched(iterable, n): | |
# batched('ABCDEFG', 3) --> ABC DEF G | |
if n < 1: | |
raise ValueError('n must be at least one') | |
it = iter(iterable) | |
while batch := tuple(islice(it, n)): | |
yield batch | |