Skip to content

Commit 8d6fd0b

Browse files
committed
refactor: extract execution types to separate file
Replicates graphql/graphql-js@06bb157
1 parent 8580c4e commit 8d6fd0b

File tree

11 files changed

+1041
-969
lines changed

11 files changed

+1041
-969
lines changed

docs/conf.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -200,25 +200,25 @@
200200
"graphql.execution.execute.StreamArguments",
201201
"graphql.execution.execute.SubFieldPlan",
202202
"graphql.execution.execute.StreamUsage",
203-
"graphql.execution.map_async_iterable.map_async_iterable",
204-
"graphql.execution.incremental_publisher.BareDeferredGroupedFieldSetResult",
205-
"graphql.execution.incremental_publisher.BareStreamItemsResult",
206-
"graphql.execution.incremental_publisher.CancellableStreamRecord",
207-
"graphql.execution.incremental_publisher.CompletedResult",
208-
"graphql.execution.incremental_publisher.DeferredFragmentRecord",
209-
"graphql.execution.incremental_publisher.DeferredGroupedFieldSetRecord",
210-
"graphql.execution.incremental_publisher.FormattedCompletedResult",
211-
"graphql.execution.incremental_publisher.FormattedPendingResult",
212203
"graphql.execution.incremental_publisher.IncrementalPublisher",
213204
"graphql.execution.incremental_publisher.IncrementalPublisherContext",
214-
"graphql.execution.incremental_publisher.NonReconcilableStreamItemsResult",
215-
"graphql.execution.incremental_publisher.PendingResult",
216-
"graphql.execution.incremental_publisher.ReconcilableStreamItemsResult",
217-
"graphql.execution.incremental_publisher.StreamItemsRecord",
218-
"graphql.execution.incremental_publisher.StreamRecord",
219-
"graphql.execution.incremental_publisher.SubsequentResultRecord",
220-
"graphql.execution.incremental_publisher.TerminatingStreamItemsResult",
205+
"graphql.execution.map_async_iterable.map_async_iterable",
221206
"graphql.execution.Middleware",
207+
"graphql.execution.types.BareDeferredGroupedFieldSetResult",
208+
"graphql.execution.types.BareStreamItemsResult",
209+
"graphql.execution.types.CancellableStreamRecord",
210+
"graphql.execution.types.CompletedResult",
211+
"graphql.execution.types.DeferredFragmentRecord",
212+
"graphql.execution.types.DeferredGroupedFieldSetRecord",
213+
"graphql.execution.types.FormattedCompletedResult",
214+
"graphql.execution.types.FormattedPendingResult",
215+
"graphql.execution.types.NonReconcilableStreamItemsResult",
216+
"graphql.execution.types.PendingResult",
217+
"graphql.execution.types.ReconcilableStreamItemsResult",
218+
"graphql.execution.types.StreamItemsRecord",
219+
"graphql.execution.types.StreamRecord",
220+
"graphql.execution.types.SubsequentResultRecord",
221+
"graphql.execution.types.TerminatingStreamItemsResult",
222222
"graphql.language.lexer.EscapeSequence",
223223
"graphql.language.visitor.EnterLeaveVisitor",
224224
"graphql.pyutils.ref_map.K",

src/graphql/execution/__init__.py

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,10 @@
44
fulfilling a GraphQL request.
55
"""
66

7-
from .execute import (
8-
create_source_event_stream,
9-
execute,
10-
experimental_execute_incrementally,
11-
execute_sync,
12-
default_field_resolver,
13-
default_type_resolver,
14-
subscribe,
15-
ExecutionContext,
16-
GraphQLWrappedResult,
17-
Middleware,
18-
)
19-
from .incremental_publisher import (
7+
from .async_iterables import map_async_iterable
8+
from .types import (
9+
CompletedResult,
10+
DeferredFragmentRecord,
2011
ExecutionResult,
2112
ExperimentalIncrementalExecutionResults,
2213
FormattedSubsequentIncrementalExecutionResult,
@@ -25,17 +16,32 @@
2516
FormattedIncrementalStreamResult,
2617
FormattedExecutionResult,
2718
FormattedInitialIncrementalExecutionResult,
19+
FormattedPendingResult,
2820
IncrementalDeferResult,
2921
IncrementalResult,
3022
IncrementalStreamResult,
3123
InitialIncrementalExecutionResult,
24+
PendingResult,
3225
SubsequentIncrementalExecutionResult,
3326
)
34-
from .async_iterables import map_async_iterable
3527
from .middleware import MiddlewareManager
3628
from .values import get_argument_values, get_directive_values, get_variable_values
29+
from .execute import (
30+
create_source_event_stream,
31+
execute,
32+
experimental_execute_incrementally,
33+
execute_sync,
34+
default_field_resolver,
35+
default_type_resolver,
36+
subscribe,
37+
ExecutionContext,
38+
GraphQLWrappedResult,
39+
Middleware,
40+
)
3741

3842
__all__ = [
43+
"CompletedResult",
44+
"DeferredFragmentRecord",
3945
"ExecutionContext",
4046
"ExecutionResult",
4147
"ExperimentalIncrementalExecutionResults",
@@ -44,6 +50,7 @@
4450
"FormattedIncrementalResult",
4551
"FormattedIncrementalStreamResult",
4652
"FormattedInitialIncrementalExecutionResult",
53+
"FormattedPendingResult",
4754
"FormattedSubsequentIncrementalExecutionResult",
4855
"GraphQLWrappedResult",
4956
"IncrementalDeferResult",
@@ -52,6 +59,7 @@
5259
"InitialIncrementalExecutionResult",
5360
"Middleware",
5461
"MiddlewareManager",
62+
"PendingResult",
5563
"SubsequentIncrementalExecutionResult",
5664
"create_source_event_stream",
5765
"default_field_resolver",

src/graphql/execution/execute.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
inspect,
4949
is_iterable,
5050
)
51-
from ..pyutils import is_awaitable as default_is_awaitable
51+
from ..pyutils.is_awaitable import is_awaitable as default_is_awaitable
5252
from ..type import (
5353
GraphQLAbstractType,
5454
GraphQLField,
@@ -84,6 +84,11 @@
8484
collect_subfields,
8585
)
8686
from .incremental_publisher import (
87+
IncrementalPublisherContext,
88+
build_incremental_response,
89+
)
90+
from .middleware import MiddlewareManager
91+
from .types import (
8792
BareDeferredGroupedFieldSetResult,
8893
BareStreamItemsResult,
8994
CancellableStreamRecord,
@@ -93,7 +98,6 @@
9398
ExecutionResult,
9499
ExperimentalIncrementalExecutionResults,
95100
IncrementalDataRecord,
96-
IncrementalPublisherContext,
97101
NonReconcilableDeferredGroupedFieldSetResult,
98102
NonReconcilableStreamItemsResult,
99103
ReconcilableDeferredGroupedFieldSetResult,
@@ -102,10 +106,8 @@
102106
StreamItemsResult,
103107
SubsequentResultRecord,
104108
TerminatingStreamItemsResult,
105-
build_incremental_response,
106109
is_reconcilable_stream_items_result,
107110
)
108-
from .middleware import MiddlewareManager
109111
from .values import get_argument_values, get_directive_values, get_variable_values
110112

111113
if TYPE_CHECKING:
@@ -119,6 +121,7 @@
119121
try: # pragma: no cover
120122
anext # noqa: B018 # pyright: ignore
121123
except NameError: # pragma: no cover (Python < 3.10)
124+
122125
async def anext(iterator: AsyncIterator) -> Any:
123126
"""Return the next item from an async iterator."""
124127
return await iterator.__anext__()
@@ -644,6 +647,7 @@ def execute_field(
644647
defer_map,
645648
)
646649
if self.is_awaitable(completed):
650+
647651
async def await_completed() -> Any:
648652
try:
649653
return await completed
@@ -1211,6 +1215,7 @@ def complete_list_item_value(
12111215
)
12121216

12131217
if is_awaitable(completed_item):
1218+
12141219
async def await_completed() -> Any:
12151220
try:
12161221
resolved = await completed_item # type: ignore
@@ -2667,6 +2672,7 @@ def execute_subscription(
26672672

26682673
result = resolve_fn(context.root_value, info, **args)
26692674
if context.is_awaitable(result):
2675+
26702676
async def await_result() -> AsyncIterable[Any]:
26712677
try:
26722678
return assert_event_stream(await result)

0 commit comments

Comments
 (0)