pyiter.drop_while
1from typing import Callable, Iterable, Iterator 2from .transform import Transform, T 3 4 5class DropWhileTransform(Transform[T, T]): 6 """A transform that drops elements from an iterable while 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 and self.predicate(e): 16 continue 17 else: 18 is_dropping = False 19 yield e
6class DropWhileTransform(Transform[T, T]): 7 """A transform that drops elements from an iterable while 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 and self.predicate(e): 17 continue 18 else: 19 is_dropping = False 20 yield e
A transform that drops elements from an iterable while a predicate is true.