Skip to content

Commit fccb0bb

Browse files
committed
incrementalDelivery: refactoring and streamlining
Replicates graphql/graphql-js@80325b5
1 parent cf79552 commit fccb0bb

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

src/graphql/execution/execute.py

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1207,7 +1207,7 @@ async def complete_async_iterator_value(
12071207
)
12081208
break
12091209

1210-
field_path = path.add_key(index, None)
1210+
item_path = path.add_key(index, None)
12111211
try:
12121212
try:
12131213
value = await anext(iterator)
@@ -1218,7 +1218,7 @@ async def complete_async_iterator_value(
12181218
item_type,
12191219
field_nodes,
12201220
info,
1221-
field_path,
1221+
item_path,
12221222
value,
12231223
async_payload_record,
12241224
)
@@ -1237,19 +1237,18 @@ async def catch_error(
12371237
handle_field_error(error, item_type, errors)
12381238
return None
12391239

1240-
append_result(catch_error(completed_item, field_path))
1240+
append_result(catch_error(completed_item, item_path))
12411241
append_awaitable(index)
12421242
else:
12431243
append_result(completed_item)
12441244
except Exception as raw_error:
12451245
append_result(None)
1246-
error = located_error(raw_error, field_nodes, field_path.as_list())
1247-
self.filter_subsequent_payloads(field_path)
1246+
error = located_error(raw_error, field_nodes, item_path.as_list())
1247+
self.filter_subsequent_payloads(item_path)
12481248
handle_field_error(error, item_type, errors)
12491249
except Exception as raw_error:
12501250
append_result(None)
1251-
error = located_error(raw_error, field_nodes, field_path.as_list())
1252-
self.filter_subsequent_payloads(field_path)
1251+
error = located_error(raw_error, field_nodes, item_path.as_list())
12531252
handle_field_error(error, item_type, errors)
12541253
break
12551254
index += 1
@@ -1316,7 +1315,6 @@ def complete_list_value(
13161315
# No need to modify the info object containing the path, since from here on
13171316
# it is not ever accessed by resolver functions.
13181317
item_path = path.add_key(index, None)
1319-
completed_item: AwaitableOrValue[Any]
13201318

13211319
if (
13221320
stream
@@ -1334,6 +1332,9 @@ def complete_list_value(
13341332
previous_async_payload_record,
13351333
)
13361334
continue
1335+
1336+
completed_item: AwaitableOrValue[Any]
1337+
13371338
if is_awaitable(item):
13381339
# noinspection PyShadowingNames
13391340
async def await_completed(item: Any, item_path: Path) -> Any:
@@ -1828,15 +1829,15 @@ async def execute_stream_iterator_item(
18281829
info: GraphQLResolveInfo,
18291830
item_type: GraphQLOutputType,
18301831
async_payload_record: StreamRecord,
1831-
field_path: Path,
1832+
item_path: Path,
18321833
) -> Any:
18331834
"""Execute stream iterator item."""
18341835
if iterator in self._canceled_iterators:
18351836
raise StopAsyncIteration
18361837
try:
18371838
item = await anext(iterator)
18381839
completed_item = self.complete_value(
1839-
item_type, field_nodes, info, field_path, item, async_payload_record
1840+
item_type, field_nodes, info, item_path, item, async_payload_record
18401841
)
18411842

18421843
return (
@@ -1850,9 +1851,9 @@ async def execute_stream_iterator_item(
18501851
raise StopAsyncIteration from raw_error
18511852

18521853
except Exception as raw_error:
1853-
error = located_error(raw_error, field_nodes, field_path.as_list())
1854+
error = located_error(raw_error, field_nodes, item_path.as_list())
18541855
handle_field_error(error, item_type, async_payload_record.errors)
1855-
self.filter_subsequent_payloads(field_path, async_payload_record)
1856+
self.filter_subsequent_payloads(item_path, async_payload_record)
18561857

18571858
async def execute_stream_iterator(
18581859
self,
@@ -1870,13 +1871,13 @@ async def execute_stream_iterator(
18701871
previous_async_payload_record = parent_context
18711872

18721873
while True:
1873-
field_path = Path(path, index, None)
1874+
item_path = Path(path, index, None)
18741875
async_payload_record = StreamRecord(
1875-
label, field_path, iterator, previous_async_payload_record, self
1876+
label, item_path, iterator, previous_async_payload_record, self
18761877
)
18771878

18781879
awaitable_data = self.execute_stream_iterator_item(
1879-
iterator, field_modes, info, item_type, async_payload_record, field_path
1880+
iterator, field_modes, info, item_type, async_payload_record, item_path
18801881
)
18811882

18821883
try:

0 commit comments

Comments
 (0)