Skip to content

Commit 0c7e0dd

Browse files
tees share their buffer
1 parent 28797c1 commit 0c7e0dd

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

asyncstdlib/itertools.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -457,9 +457,16 @@ def __init__(
457457
*,
458458
lock: Optional[AsyncContextManager[Any]] = None,
459459
):
460-
iterator = aiter(iterable)
461-
buffer: _TeeNode[T] = []
462-
peers: set[int] = set()
460+
buffer: _TeeNode[T]
461+
peers: set[int]
462+
if not isinstance(iterable, TeePeer):
463+
iterator = aiter(iterable)
464+
buffer = []
465+
peers = set()
466+
else:
467+
iterator = iterable._iterator # pyright: ignore[reportPrivateUsage]
468+
buffer = iterable._buffer # pyright: ignore[reportPrivateUsage]
469+
peers = iterable._tee_peers # pyright: ignore[reportPrivateUsage]
463470
self._children = tuple(
464471
TeePeer(
465472
iterator,

0 commit comments

Comments
 (0)