pyiter.type_guard
1from typing import Callable, Iterable, Iterator 2import sys 3from .transform import Transform, T, U 4 5if sys.version_info < (3, 10): 6 from typing_extensions import TypeGuard 7else: 8 from typing import TypeGuard 9 10 11class TypeGuardTransform(Transform[T, U]): 12 """A transform that applies type guard to each item of the iterable.""" 13 14 def __init__(self, iter: Iterable[T], type_guard: Callable[[T], TypeGuard[U]]): 15 super().__init__(iter) 16 self.type_guard = type_guard 17 18 def __do_iter__(self) -> Iterator[U]: 19 for i in self.iter: 20 if self.type_guard(i): 21 yield i
12class TypeGuardTransform(Transform[T, U]): 13 """A transform that applies type guard to each item of the iterable.""" 14 15 def __init__(self, iter: Iterable[T], type_guard: Callable[[T], TypeGuard[U]]): 16 super().__init__(iter) 17 self.type_guard = type_guard 18 19 def __do_iter__(self) -> Iterator[U]: 20 for i in self.iter: 21 if self.type_guard(i): 22 yield i
A transform that applies type guard to each item of the iterable.