Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit b4f8261

Browse files
committedAug 11, 2024
Support the older Python versions
1 parent bb50a3f commit b4f8261

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed
 

‎src/graphql/execution/incremental_publisher.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -364,12 +364,13 @@ class IncrementalPublisher:
364364
_initial_result: InitialResult
365365
_released: dict[IncrementalDataRecord, None]
366366
_pending: dict[IncrementalDataRecord, None]
367+
_resolve: Event | None
367368

368369
def __init__(self) -> None:
369370
self._initial_result = InitialResult({}, False)
370371
self._released = {}
371372
self._pending = {}
372-
self._resolve = Event()
373+
self._resolve = None # lazy initialization
373374
self._tasks: set[Awaitable] = set()
374375

375376
def has_next(self) -> bool:
@@ -399,7 +400,10 @@ async def subscribe(
399400
if result is not None:
400401
yield result
401402
else:
402-
await self._resolve.wait()
403+
resolve = self._resolve
404+
if resolve is None:
405+
self._resolve = resolve = Event()
406+
await resolve.wait()
403407
finally:
404408
close_async_iterators = []
405409
for incremental_data_record in pending:
@@ -511,7 +515,9 @@ def filter(
511515

512516
def _trigger(self) -> None:
513517
"""Trigger the resolve event."""
514-
self._resolve.set()
518+
resolve = self._resolve
519+
if resolve is not None:
520+
resolve.set()
515521
self._resolve = Event()
516522

517523
def _introduce(self, item: IncrementalDataRecord) -> None:

‎tests/execution/test_stream.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1387,7 +1387,7 @@ async def get_friend(i):
13871387
return {"nonNullName": throw() if i < 0 else friends[i].name}
13881388

13891389
async def get_friends(_info):
1390-
for i in 0, -1, 1:
1390+
for i in 0, -1, 1: # pragma: no cover exit
13911391
yield await get_friend(i)
13921392

13931393
result = await complete(

0 commit comments

Comments
 (0)
Please sign in to comment.