Skip to content

Commit d06251d

Browse files
chore(internal): base client updates (#178)
1 parent ee5340a commit d06251d

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/finch/_streaming.py

+12-2
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,15 @@ def __stream__(self) -> Iterator[ResponseT]:
4545
cast_to = self._cast_to
4646
response = self.response
4747
process_data = self._client._process_response_data
48+
iterator = self._iter_events()
4849

49-
for sse in self._iter_events():
50+
for sse in iterator:
5051
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
5152

53+
# Ensure the entire stream is consumed
54+
for sse in iterator:
55+
...
56+
5257

5358
class AsyncStream(Generic[ResponseT]):
5459
"""Provides the core interface to iterate over an asynchronous stream response."""
@@ -83,10 +88,15 @@ async def __stream__(self) -> AsyncIterator[ResponseT]:
8388
cast_to = self._cast_to
8489
response = self.response
8590
process_data = self._client._process_response_data
91+
iterator = self._iter_events()
8692

87-
async for sse in self._iter_events():
93+
async for sse in iterator:
8894
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
8995

96+
# Ensure the entire stream is consumed
97+
async for sse in iterator:
98+
...
99+
90100

91101
class ServerSentEvent:
92102
def __init__(

0 commit comments

Comments
 (0)