@@ -104,9 +104,7 @@ async def anext(iterator: AsyncIterator) -> Any:
104104 "StreamRecord" ,
105105 "ExecutionResult" ,
106106 "ExecutionContext" ,
107- "ExperimentalExecuteIncrementallyResults" ,
108- "ExperimentalExecuteMultipleResults" ,
109- "ExperimentalExecuteSingleResult" ,
107+ "ExperimentalIncrementalExecutionResults" ,
110108 "FormattedExecutionResult" ,
111109 "FormattedIncrementalDeferResult" ,
112110 "FormattedIncrementalResult" ,
@@ -600,24 +598,13 @@ class StreamArguments(NamedTuple):
600598 label : Optional [str ]
601599
602600
603- class ExperimentalExecuteSingleResult (NamedTuple ):
604- """Execution result when retrieved at once."""
605-
606- single_result : ExecutionResult
607-
608-
609- class ExperimentalExecuteMultipleResults (NamedTuple ):
601+ class ExperimentalIncrementalExecutionResults (NamedTuple ):
610602 """Execution results when retrieved incrementally."""
611603
612604 initial_result : InitialIncrementalExecutionResult
613605 subsequent_results : AsyncGenerator [SubsequentIncrementalExecutionResult , None ]
614606
615607
616- ExperimentalExecuteIncrementallyResults = Union [
617- ExperimentalExecuteSingleResult , ExperimentalExecuteMultipleResults
618- ]
619-
620-
621608Middleware : TypeAlias = Optional [Union [Tuple , List , MiddlewareManager ]]
622609
623610
@@ -2012,15 +1999,15 @@ def execute(
20121999 execution_context_class ,
20132000 is_awaitable ,
20142001 )
2015- if isinstance (result , ExperimentalExecuteSingleResult ):
2016- return result . single_result
2017- if isinstance (result , ExperimentalExecuteMultipleResults ):
2002+ if isinstance (result , ExecutionResult ):
2003+ return result
2004+ if isinstance (result , ExperimentalIncrementalExecutionResults ):
20182005 raise GraphQLError (UNEXPECTED_MULTIPLE_PAYLOADS )
20192006
20202007 async def await_result () -> Any :
20212008 awaited_result = await result # type: ignore
2022- if isinstance (awaited_result , ExperimentalExecuteSingleResult ):
2023- return awaited_result . single_result
2009+ if isinstance (awaited_result , ExecutionResult ):
2010+ return awaited_result
20242011 return ExecutionResult (
20252012 None , errors = [GraphQLError (UNEXPECTED_MULTIPLE_PAYLOADS )]
20262013 )
@@ -2041,16 +2028,16 @@ def experimental_execute_incrementally(
20412028 middleware : Optional [Middleware ] = None ,
20422029 execution_context_class : Optional [Type [ExecutionContext ]] = None ,
20432030 is_awaitable : Optional [Callable [[Any ], bool ]] = None ,
2044- ) -> AwaitableOrValue [ExperimentalExecuteIncrementallyResults ]:
2031+ ) -> AwaitableOrValue [Union [ ExecutionResult , ExperimentalIncrementalExecutionResults ] ]:
20452032 """Execute GraphQL operation incrementally (internal implementation).
20462033
20472034 Implements the "Executing requests" section of the GraphQL specification,
20482035 including `@defer` and `@stream` as proposed in
20492036 https://github.com/graphql/graphql-spec/pull/742
20502037
2051- This function returns an awaitable of an ExperimentalExecuteIncrementallyResults
2052- object. This object either contains a single ExecutionResult as
2053- `single_result`, or an `initial_result` and a stream of `subsequent_results`.
2038+ This function returns an awaitable that is either a single ExecutionResult or
2039+ an ExperimentalIncrementalExecutionResults object, containing an `initialResult`
2040+ and a stream of `subsequent_results`.
20542041 """
20552042 if execution_context_class is None :
20562043 execution_context_class = ExecutionContext
@@ -2073,16 +2060,14 @@ def experimental_execute_incrementally(
20732060
20742061 # Return early errors if execution context failed.
20752062 if isinstance (context , list ):
2076- return ExperimentalExecuteSingleResult (
2077- single_result = ExecutionResult (None , errors = context )
2078- )
2063+ return ExecutionResult (None , errors = context )
20792064
20802065 return execute_impl (context )
20812066
20822067
20832068def execute_impl (
20842069 context : ExecutionContext ,
2085- ) -> AwaitableOrValue [ExperimentalExecuteIncrementallyResults ]:
2070+ ) -> AwaitableOrValue [Union [ ExecutionResult , ExperimentalIncrementalExecutionResults ] ]:
20862071 """Execute GraphQL operation (internal implementation)."""
20872072 # Return a possible coroutine object that will eventually yield the data described
20882073 # by the "Response" section of the GraphQL specification.
@@ -2108,39 +2093,35 @@ async def await_result() -> Any:
21082093 await result , errors # type: ignore
21092094 )
21102095 if context .subsequent_payloads :
2111- return ExperimentalExecuteMultipleResults (
2096+ return ExperimentalIncrementalExecutionResults (
21122097 initial_result = InitialIncrementalExecutionResult (
21132098 initial_result .data ,
21142099 initial_result .errors ,
21152100 has_next = True ,
21162101 ),
21172102 subsequent_results = context .yield_subsequent_payloads (),
21182103 )
2119- return ExperimentalExecuteSingleResult ( single_result = initial_result )
2104+ return initial_result
21202105 except GraphQLError as error :
21212106 errors .append (error )
2122- return ExperimentalExecuteSingleResult (
2123- single_result = build_response (None , errors )
2124- )
2107+ return build_response (None , errors )
21252108
21262109 return await_result ()
21272110
21282111 initial_result = build_response (result , errors ) # type: ignore
21292112 if context .subsequent_payloads :
2130- return ExperimentalExecuteMultipleResults (
2113+ return ExperimentalIncrementalExecutionResults (
21312114 initial_result = InitialIncrementalExecutionResult (
21322115 initial_result .data ,
21332116 initial_result .errors ,
21342117 has_next = True ,
21352118 ),
21362119 subsequent_results = context .yield_subsequent_payloads (),
21372120 )
2138- return ExperimentalExecuteSingleResult ( single_result = initial_result )
2121+ return initial_result
21392122 except GraphQLError as error :
21402123 errors .append (error )
2141- return ExperimentalExecuteSingleResult (
2142- single_result = build_response (None , errors )
2143- )
2124+ return build_response (None , errors )
21442125
21452126
21462127def assume_not_awaitable (_value : Any ) -> bool :
@@ -2192,12 +2173,14 @@ def execute_sync(
21922173 )
21932174
21942175 # Assert that the execution was synchronous.
2195- if isawaitable (result ) or isinstance (result , ExperimentalExecuteMultipleResults ):
2176+ if isawaitable (result ) or isinstance (
2177+ result , ExperimentalIncrementalExecutionResults
2178+ ):
21962179 if isawaitable (result ):
21972180 ensure_future (cast (Awaitable [ExecutionResult ], result )).cancel ()
21982181 raise RuntimeError ("GraphQL execution failed to complete synchronously." )
21992182
2200- return cast (ExperimentalExecuteSingleResult , result ). single_result
2183+ return cast (ExecutionResult , result )
22012184
22022185
22032186def handle_field_error (
@@ -2489,7 +2472,9 @@ async def await_result() -> Any:
24892472
24902473
24912474async def ensure_async_iterable (
2492- some_execution_result : ExperimentalExecuteIncrementallyResults ,
2475+ some_execution_result : Union [
2476+ ExecutionResult , ExperimentalIncrementalExecutionResults
2477+ ],
24932478) -> AsyncGenerator [
24942479 Union [
24952480 ExecutionResult ,
@@ -2498,8 +2483,8 @@ async def ensure_async_iterable(
24982483 ],
24992484 None ,
25002485]:
2501- if isinstance (some_execution_result , ExperimentalExecuteSingleResult ):
2502- yield some_execution_result . single_result
2486+ if isinstance (some_execution_result , ExecutionResult ):
2487+ yield some_execution_result
25032488 else :
25042489 yield some_execution_result .initial_result
25052490 async for result in some_execution_result .subsequent_results :
0 commit comments