pyiter.drop_until
1from typing import Callable, Iterable, Iterator 2from .transform import Transform, T 3 4 5class DropUntilTransform(Transform[T, T]): 6 """A transform that drops 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 is_dropping = True 14 for e in self.iter: 15 if is_dropping: 16 if self.predicate(e): 17 is_dropping = False 18 else: 19 continue 20 yield e
6class DropUntilTransform(Transform[T, T]): 7 """A transform that drops 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 is_dropping = True 15 for e in self.iter: 16 if is_dropping: 17 if self.predicate(e): 18 is_dropping = False 19 else: 20 continue 21 yield e
A transform that drops elements from an iterable until a predicate is true.