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
class DropUntilTransform(pyiter.transform.Transform[~T, ~T]):
 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.

predicate