Builtins don't have a peek, which is useful here.
| 733 | |
| 734 | |
| 735 | class PeekStack(Generic[U]): |
| 736 | """Builtins don't have a peek, which is useful here.""" |
| 737 | |
| 738 | def __init__(self, iterable: Iterator[U]): |
| 739 | self._iterable = iterable |
| 740 | self._next: U | None = None |
| 741 | self.last: U | None = None |
| 742 | |
| 743 | def __next__(self) -> U | None: |
| 744 | if self._next: |
| 745 | self.last = self._next |
| 746 | self._next = None |
| 747 | else: |
| 748 | try: |
| 749 | self.last = next(self._iterable) |
| 750 | except StopIteration: |
| 751 | self.last = None |
| 752 | return self.last |
| 753 | |
| 754 | def peek(self) -> U | None: |
| 755 | if self._next: |
| 756 | return self._next |
| 757 | try: |
| 758 | self._next = next(self._iterable) |
| 759 | except StopIteration: |
| 760 | self._next = None |
| 761 | return self._next |
| 762 | |
| 763 | |
| 764 | def _maybe_kwargs( |
no outgoing calls
no test coverage detected
searching dependent graphs…