Matthias Bisping 3b18fc6158 refactoring
2022-04-08 13:56:57 +02:00

15 lines
414 B
Python

from itertools import takewhile, starmap, islice, repeat
from operator import truth
from funcy import iterate
def chunk_iterable(iterable, chunk_size):
return takewhile(truth, map(tuple, starmap(islice, repeat((iter(iterable), chunk_size)))))
def until(cond, func, *args, **kwargs):
for a, b in chunk_iterable(iterate(func, *args, **kwargs), chunk_size=2):
if cond(a, b):
return a