pyiter.take_until
1from typing import Callable, Iterable, Iterator 2from .transform import Transform, T 3 4 5class TakeUntilTransform(Transform[T, T]): 6 """A transform that takes elements from an iterable until a predicate is true.""" 7 8 def __init__(self, iter: Iterable[T], predicate: Callable[[T], bool]): 9 super().__init__(iter) 10 self.predicate = predicate 11 12 def __do_iter__(self) -> Iterator[T]: 13 for e in self.iter: 14 if self.predicate(e): 15 break 16 yield e
6class TakeUntilTransform(Transform[T, T]): 7 """A transform that takes elements from an iterable until a predicate is true.""" 8 9 def __init__(self, iter: Iterable[T], predicate: Callable[[T], bool]): 10 super().__init__(iter) 11 self.predicate = predicate 12 13 def __do_iter__(self) -> Iterator[T]: 14 for e in self.iter: 15 if self.predicate(e): 16 break 17 yield e
A transform that takes elements from an iterable until a predicate is true.