| 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 | |