pyiter.intersection

 1from typing import Iterable, Iterator, Set
 2from .transform import Transform, T
 3
 4
 5class IntersectionTransform(Transform[Iterable[T], T]):
 6    """A transform that yields the intersection of iterables."""
 7
 8    def __init__(self, iter: Iterable[Iterable[T]]):
 9        super().__init__(iter)
10
11    def __do_iter__(self) -> Iterator[T]:
12        from .sequence import it
13
14        iters = it(self.iter)
15        seen: Set[T] = set()
16        for v in iters.first():
17            if v not in seen and iters.all(lambda iter: v in iter):
18                yield v
19                seen.add(v)
class IntersectionTransform(pyiter.transform.Transform[typing.Iterable[~T], ~T]):
 6class IntersectionTransform(Transform[Iterable[T], T]):
 7    """A transform that yields the intersection of iterables."""
 8
 9    def __init__(self, iter: Iterable[Iterable[T]]):
10        super().__init__(iter)
11
12    def __do_iter__(self) -> Iterator[T]:
13        from .sequence import it
14
15        iters = it(self.iter)
16        seen: Set[T] = set()
17        for v in iters.first():
18            if v not in seen and iters.all(lambda iter: v in iter):
19                yield v
20                seen.add(v)

A transform that yields the intersection of iterables.