strawberry-graphql 0.276.0.dev1750672223__py3-none-any.whl → 0.276.0.dev1752831589__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- strawberry/annotation.py +1 -1
- strawberry/experimental/pydantic/object_type.py +2 -2
- strawberry/extensions/directives.py +6 -2
- strawberry/extensions/mask_errors.py +23 -10
- strawberry/http/__init__.py +5 -0
- strawberry/http/async_base_view.py +19 -7
- strawberry/http/sync_base_view.py +16 -4
- strawberry/relay/types.py +1 -1
- strawberry/schema/_graphql_core.py +11 -4
- strawberry/schema/schema.py +13 -20
- strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +1 -1
- strawberry/subscriptions/protocols/graphql_ws/handlers.py +1 -1
- strawberry/types/arguments.py +51 -6
- strawberry/types/execution.py +1 -1
- {strawberry_graphql-0.276.0.dev1750672223.dist-info → strawberry_graphql-0.276.0.dev1752831589.dist-info}/METADATA +1 -1
- {strawberry_graphql-0.276.0.dev1750672223.dist-info → strawberry_graphql-0.276.0.dev1752831589.dist-info}/RECORD +19 -19
- {strawberry_graphql-0.276.0.dev1750672223.dist-info → strawberry_graphql-0.276.0.dev1752831589.dist-info}/LICENSE +0 -0
- {strawberry_graphql-0.276.0.dev1750672223.dist-info → strawberry_graphql-0.276.0.dev1752831589.dist-info}/WHEEL +0 -0
- {strawberry_graphql-0.276.0.dev1750672223.dist-info → strawberry_graphql-0.276.0.dev1752831589.dist-info}/entry_points.txt +0 -0
strawberry/annotation.py
CHANGED
@@ -145,7 +145,7 @@ class StrawberryAnnotation:
|
|
145
145
|
if self._is_lazy_type(evaled_type):
|
146
146
|
return evaled_type
|
147
147
|
if self._is_streamable(evaled_type, args):
|
148
|
-
return self.create_list(list[evaled_type])
|
148
|
+
return self.create_list(list[evaled_type]) # type: ignore[valid-type]
|
149
149
|
if self._is_list(evaled_type):
|
150
150
|
return self.create_list(evaled_type)
|
151
151
|
if self._is_maybe(evaled_type):
|
@@ -116,7 +116,7 @@ if TYPE_CHECKING:
|
|
116
116
|
)
|
117
117
|
|
118
118
|
|
119
|
-
def type(
|
119
|
+
def type(
|
120
120
|
model: builtins.type[PydanticModel],
|
121
121
|
*,
|
122
122
|
fields: Optional[list[str]] = None,
|
@@ -129,7 +129,7 @@ def type( # noqa: PLR0915
|
|
129
129
|
include_computed: bool = False,
|
130
130
|
use_pydantic_alias: bool = True,
|
131
131
|
) -> Callable[..., builtins.type[StrawberryTypeFromPydantic[PydanticModel]]]:
|
132
|
-
def wrap(cls: Any) -> builtins.type[StrawberryTypeFromPydantic[PydanticModel]]:
|
132
|
+
def wrap(cls: Any) -> builtins.type[StrawberryTypeFromPydantic[PydanticModel]]:
|
133
133
|
compat = PydanticCompat.from_model(model)
|
134
134
|
model_fields = compat.get_model_fields(model, include_computed=include_computed)
|
135
135
|
original_fields_set = set(fields) if fields else set()
|
@@ -29,7 +29,9 @@ class DirectivesExtension(SchemaExtension):
|
|
29
29
|
) -> AwaitableOrValue[Any]:
|
30
30
|
value = await await_maybe(_next(root, info, *args, **kwargs))
|
31
31
|
|
32
|
-
|
32
|
+
nodes = list(info.field_nodes)
|
33
|
+
|
34
|
+
for directive in nodes[0].directives:
|
33
35
|
if directive.name.value in SPECIFIED_DIRECTIVES:
|
34
36
|
continue
|
35
37
|
strawberry_directive, arguments = process_directive(directive, value, info)
|
@@ -49,7 +51,9 @@ class DirectivesExtensionSync(SchemaExtension):
|
|
49
51
|
) -> AwaitableOrValue[Any]:
|
50
52
|
value = _next(root, info, *args, **kwargs)
|
51
53
|
|
52
|
-
|
54
|
+
nodes = list(info.field_nodes)
|
55
|
+
|
56
|
+
for directive in nodes[0].directives:
|
53
57
|
if directive.name.value in SPECIFIED_DIRECTIVES:
|
54
58
|
continue
|
55
59
|
strawberry_directive, arguments = process_directive(directive, value, info)
|
@@ -1,7 +1,8 @@
|
|
1
1
|
from collections.abc import Iterator
|
2
|
-
from typing import Callable
|
2
|
+
from typing import Any, Callable
|
3
3
|
|
4
4
|
from graphql.error import GraphQLError
|
5
|
+
from graphql.execution import ExecutionResult
|
5
6
|
|
6
7
|
from strawberry.extensions.base_extension import SchemaExtension
|
7
8
|
|
@@ -33,18 +34,30 @@ class MaskErrors(SchemaExtension):
|
|
33
34
|
original_error=None,
|
34
35
|
)
|
35
36
|
|
37
|
+
# TODO: proper typing
|
38
|
+
def _process_result(self, result: Any) -> None:
|
39
|
+
if not result.errors:
|
40
|
+
return
|
41
|
+
|
42
|
+
processed_errors: list[GraphQLError] = []
|
43
|
+
|
44
|
+
for error in result.errors:
|
45
|
+
if self.should_mask_error(error):
|
46
|
+
processed_errors.append(self.anonymise_error(error))
|
47
|
+
else:
|
48
|
+
processed_errors.append(error)
|
49
|
+
|
50
|
+
result.errors = processed_errors
|
51
|
+
|
36
52
|
def on_operation(self) -> Iterator[None]:
|
37
53
|
yield
|
54
|
+
|
38
55
|
result = self.execution_context.result
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
else:
|
45
|
-
processed_errors.append(error)
|
46
|
-
|
47
|
-
result.errors = processed_errors
|
56
|
+
|
57
|
+
if isinstance(result, ExecutionResult):
|
58
|
+
self._process_result(result)
|
59
|
+
else:
|
60
|
+
self._process_result(result.initial_result)
|
48
61
|
|
49
62
|
|
50
63
|
__all__ = ["MaskErrors"]
|
strawberry/http/__init__.py
CHANGED
@@ -14,6 +14,11 @@ class GraphQLHTTPResponse(TypedDict, total=False):
|
|
14
14
|
data: Optional[dict[str, object]]
|
15
15
|
errors: Optional[list[object]]
|
16
16
|
extensions: Optional[dict[str, object]]
|
17
|
+
hasNext: Optional[bool]
|
18
|
+
completed: Optional[list[Any]]
|
19
|
+
pending: Optional[list[Any]]
|
20
|
+
initial: Optional[list[Any]]
|
21
|
+
incremental: Optional[list[Any]]
|
17
22
|
|
18
23
|
|
19
24
|
def process_result(result: ResultType) -> GraphQLHTTPResponse:
|
@@ -201,8 +201,6 @@ class AsyncBaseHTTPView(
|
|
201
201
|
if not self.allow_queries_via_get and request_adapter.method == "GET":
|
202
202
|
allowed_operation_types = allowed_operation_types - {OperationType.QUERY}
|
203
203
|
|
204
|
-
assert self.schema
|
205
|
-
|
206
204
|
if request_data.protocol == "multipart-subscription":
|
207
205
|
return await self.schema.subscribe(
|
208
206
|
request_data.query, # type: ignore
|
@@ -266,7 +264,7 @@ class AsyncBaseHTTPView(
|
|
266
264
|
root_value: Optional[RootValue] = UNSET,
|
267
265
|
) -> WebSocketResponse: ...
|
268
266
|
|
269
|
-
async def run(
|
267
|
+
async def run(
|
270
268
|
self,
|
271
269
|
request: Union[Request, WebSocketRequest],
|
272
270
|
context: Context = UNSET,
|
@@ -294,7 +292,7 @@ class AsyncBaseHTTPView(
|
|
294
292
|
view=self,
|
295
293
|
websocket=websocket,
|
296
294
|
context=context,
|
297
|
-
root_value=root_value,
|
295
|
+
root_value=root_value,
|
298
296
|
schema=self.schema,
|
299
297
|
debug=self.debug,
|
300
298
|
connection_init_wait_timeout=self.connection_init_wait_timeout,
|
@@ -304,7 +302,7 @@ class AsyncBaseHTTPView(
|
|
304
302
|
view=self,
|
305
303
|
websocket=websocket,
|
306
304
|
context=context,
|
307
|
-
root_value=root_value,
|
305
|
+
root_value=root_value,
|
308
306
|
schema=self.schema,
|
309
307
|
debug=self.debug,
|
310
308
|
keep_alive=self.keep_alive,
|
@@ -605,9 +603,23 @@ class AsyncBaseHTTPView(
|
|
605
603
|
else:
|
606
604
|
raise HTTPException(400, "Unsupported content type")
|
607
605
|
|
606
|
+
query = data.get("query")
|
607
|
+
if not isinstance(query, (str, type(None))):
|
608
|
+
raise HTTPException(
|
609
|
+
400,
|
610
|
+
"The GraphQL operation's `query` must be a string or null, if provided.",
|
611
|
+
)
|
612
|
+
|
613
|
+
variables = data.get("variables")
|
614
|
+
if not isinstance(variables, (dict, type(None))):
|
615
|
+
raise HTTPException(
|
616
|
+
400,
|
617
|
+
"The GraphQL operation's `variables` must be an object or null, if provided.",
|
618
|
+
)
|
619
|
+
|
608
620
|
return GraphQLRequestData(
|
609
|
-
query=
|
610
|
-
variables=
|
621
|
+
query=query,
|
622
|
+
variables=variables,
|
611
623
|
operation_name=data.get("operationName"),
|
612
624
|
extensions=data.get("extensions"),
|
613
625
|
protocol=protocol,
|
@@ -116,8 +116,6 @@ class SyncBaseHTTPView(
|
|
116
116
|
if not self.allow_queries_via_get and request_adapter.method == "GET":
|
117
117
|
allowed_operation_types = allowed_operation_types - {OperationType.QUERY}
|
118
118
|
|
119
|
-
assert self.schema
|
120
|
-
|
121
119
|
return self.schema.execute_sync(
|
122
120
|
request_data.query,
|
123
121
|
root_value=root_value,
|
@@ -154,9 +152,23 @@ class SyncBaseHTTPView(
|
|
154
152
|
else:
|
155
153
|
raise HTTPException(400, "Unsupported content type")
|
156
154
|
|
155
|
+
query = data.get("query")
|
156
|
+
if not isinstance(query, (str, type(None))):
|
157
|
+
raise HTTPException(
|
158
|
+
400,
|
159
|
+
"The GraphQL operation's `query` must be a string or null, if provided.",
|
160
|
+
)
|
161
|
+
|
162
|
+
variables = data.get("variables")
|
163
|
+
if not isinstance(variables, (dict, type(None))):
|
164
|
+
raise HTTPException(
|
165
|
+
400,
|
166
|
+
"The GraphQL operation's `variables` must be an object or null, if provided.",
|
167
|
+
)
|
168
|
+
|
157
169
|
return GraphQLRequestData(
|
158
|
-
query=
|
159
|
-
variables=
|
170
|
+
query=query,
|
171
|
+
variables=variables,
|
160
172
|
operation_name=data.get("operationName"),
|
161
173
|
extensions=data.get("extensions"),
|
162
174
|
)
|
strawberry/relay/types.py
CHANGED
@@ -7,11 +7,14 @@ from graphql.execution import execute, subscribe
|
|
7
7
|
from strawberry.types import ExecutionResult
|
8
8
|
|
9
9
|
try:
|
10
|
-
from graphql import (
|
10
|
+
from graphql import ( # type: ignore[attr-defined]
|
11
11
|
ExperimentalIncrementalExecutionResults as GraphQLIncrementalExecutionResults,
|
12
12
|
)
|
13
|
-
from graphql.execution import
|
14
|
-
|
13
|
+
from graphql.execution import ( # type: ignore[attr-defined]
|
14
|
+
InitialIncrementalExecutionResult,
|
15
|
+
experimental_execute_incrementally,
|
16
|
+
)
|
17
|
+
from graphql.type.directives import ( # type: ignore[attr-defined]
|
15
18
|
GraphQLDeferDirective,
|
16
19
|
GraphQLStreamDirective,
|
17
20
|
)
|
@@ -21,10 +24,14 @@ try:
|
|
21
24
|
GraphQLStreamDirective,
|
22
25
|
)
|
23
26
|
|
27
|
+
GraphQLExecutionResult = Union[
|
28
|
+
GraphQLExecutionResult, InitialIncrementalExecutionResult
|
29
|
+
]
|
30
|
+
|
24
31
|
except ImportError:
|
25
32
|
GraphQLIncrementalExecutionResults = type(None)
|
26
33
|
|
27
|
-
incremental_execution_directives =
|
34
|
+
incremental_execution_directives = () # type: ignore
|
28
35
|
experimental_execute_incrementally = None
|
29
36
|
|
30
37
|
|
strawberry/schema/schema.py
CHANGED
@@ -84,7 +84,6 @@ if TYPE_CHECKING:
|
|
84
84
|
from collections.abc import Iterable, Mapping
|
85
85
|
from typing_extensions import TypeAlias
|
86
86
|
|
87
|
-
from graphql.execution.collect_fields import FieldGroup # type: ignore
|
88
87
|
from graphql.language import DocumentNode
|
89
88
|
from graphql.pyutils import Path
|
90
89
|
from graphql.type import GraphQLResolveInfo
|
@@ -176,17 +175,18 @@ class StrawberryGraphQLCoreExecutionContext(GraphQLExecutionContext):
|
|
176
175
|
|
177
176
|
self.operation_extensions = operation_extensions
|
178
177
|
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
178
|
+
if IS_GQL_33:
|
179
|
+
|
180
|
+
def build_resolve_info(
|
181
|
+
self,
|
182
|
+
field_def: GraphQLField,
|
183
|
+
field_nodes: list[FieldNode],
|
184
|
+
parent_type: GraphQLObjectType,
|
185
|
+
path: Path,
|
186
|
+
) -> GraphQLResolveInfo:
|
187
187
|
return _OperationContextAwareGraphQLResolveInfo( # type: ignore
|
188
|
-
|
189
|
-
|
188
|
+
field_nodes[0].name.value,
|
189
|
+
field_nodes,
|
190
190
|
field_def.type,
|
191
191
|
parent_type,
|
192
192
|
path,
|
@@ -200,13 +200,6 @@ class StrawberryGraphQLCoreExecutionContext(GraphQLExecutionContext):
|
|
200
200
|
self.operation_extensions,
|
201
201
|
)
|
202
202
|
|
203
|
-
return super().build_resolve_info(
|
204
|
-
field_def,
|
205
|
-
field_group,
|
206
|
-
parent_type,
|
207
|
-
path,
|
208
|
-
)
|
209
|
-
|
210
203
|
|
211
204
|
class Schema(BaseSchema):
|
212
205
|
def __init__(
|
@@ -329,7 +322,7 @@ class Schema(BaseSchema):
|
|
329
322
|
graphql_types.append(graphql_type)
|
330
323
|
|
331
324
|
try:
|
332
|
-
directives = specified_directives + tuple(graphql_directives)
|
325
|
+
directives = specified_directives + tuple(graphql_directives) # type: ignore
|
333
326
|
|
334
327
|
if self.config.enable_experimental_incremental_execution:
|
335
328
|
directives = tuple(directives) + tuple(incremental_execution_directives)
|
@@ -338,7 +331,7 @@ class Schema(BaseSchema):
|
|
338
331
|
query=query_type,
|
339
332
|
mutation=mutation_type,
|
340
333
|
subscription=subscription_type if subscription else None,
|
341
|
-
directives=directives,
|
334
|
+
directives=directives, # type: ignore
|
342
335
|
types=graphql_types,
|
343
336
|
extensions={
|
344
337
|
GraphQLCoreConverter.DEFINITION_BACKREF: self,
|
@@ -53,7 +53,7 @@ class BaseGraphQLTransportWSHandler(Generic[Context, RootValue]):
|
|
53
53
|
view: AsyncBaseHTTPView[Any, Any, Any, Any, Any, Context, RootValue],
|
54
54
|
websocket: AsyncWebSocketAdapter,
|
55
55
|
context: Context,
|
56
|
-
root_value: RootValue,
|
56
|
+
root_value: Optional[RootValue],
|
57
57
|
schema: BaseSchema,
|
58
58
|
debug: bool,
|
59
59
|
connection_init_wait_timeout: timedelta,
|
@@ -42,7 +42,7 @@ class BaseGraphQLWSHandler(Generic[Context, RootValue]):
|
|
42
42
|
view: AsyncBaseHTTPView[Any, Any, Any, Any, Any, Context, RootValue],
|
43
43
|
websocket: AsyncWebSocketAdapter,
|
44
44
|
context: Context,
|
45
|
-
root_value: RootValue,
|
45
|
+
root_value: Optional[RootValue],
|
46
46
|
schema: BaseSchema,
|
47
47
|
debug: bool,
|
48
48
|
keep_alive: bool,
|
strawberry/types/arguments.py
CHANGED
@@ -144,12 +144,52 @@ class StrawberryArgument:
|
|
144
144
|
return isinstance(self.type, StrawberryMaybe)
|
145
145
|
|
146
146
|
|
147
|
+
def _is_leaf_type(
|
148
|
+
type_: Union[StrawberryType, type],
|
149
|
+
scalar_registry: Mapping[object, Union[ScalarWrapper, ScalarDefinition]],
|
150
|
+
skip_classes: tuple[type, ...] = (),
|
151
|
+
) -> bool:
|
152
|
+
if type_ in skip_classes:
|
153
|
+
return False
|
154
|
+
|
155
|
+
if is_scalar(type_, scalar_registry):
|
156
|
+
return True
|
157
|
+
|
158
|
+
if isinstance(type_, EnumDefinition):
|
159
|
+
return True
|
160
|
+
|
161
|
+
if isinstance(type_, LazyType):
|
162
|
+
return _is_leaf_type(type_.resolve_type(), scalar_registry)
|
163
|
+
|
164
|
+
if hasattr(type_, "_enum_definition"):
|
165
|
+
enum_definition: EnumDefinition = type_._enum_definition
|
166
|
+
return _is_leaf_type(enum_definition, scalar_registry)
|
167
|
+
|
168
|
+
return False
|
169
|
+
|
170
|
+
|
171
|
+
def _is_optional_leaf_type(
|
172
|
+
type_: Union[StrawberryType, type],
|
173
|
+
scalar_registry: Mapping[object, Union[ScalarWrapper, ScalarDefinition]],
|
174
|
+
skip_classes: tuple[type, ...] = (),
|
175
|
+
) -> bool:
|
176
|
+
if type_ in skip_classes:
|
177
|
+
return False
|
178
|
+
|
179
|
+
if isinstance(type_, StrawberryOptional):
|
180
|
+
return _is_leaf_type(type_.of_type, scalar_registry, skip_classes)
|
181
|
+
|
182
|
+
return False
|
183
|
+
|
184
|
+
|
147
185
|
def convert_argument(
|
148
186
|
value: object,
|
149
187
|
type_: Union[StrawberryType, type],
|
150
188
|
scalar_registry: Mapping[object, Union[ScalarWrapper, ScalarDefinition]],
|
151
189
|
config: StrawberryConfig,
|
152
190
|
) -> object:
|
191
|
+
from strawberry.relay.types import GlobalID
|
192
|
+
|
153
193
|
# TODO: move this somewhere else and make it first class
|
154
194
|
if isinstance(type_, StrawberryOptional):
|
155
195
|
res = convert_argument(value, type_.of_type, scalar_registry, config)
|
@@ -164,22 +204,27 @@ def convert_argument(
|
|
164
204
|
|
165
205
|
if isinstance(type_, StrawberryList):
|
166
206
|
value_list = cast("Iterable", value)
|
207
|
+
|
208
|
+
if _is_leaf_type(
|
209
|
+
type_.of_type, scalar_registry, skip_classes=(GlobalID,)
|
210
|
+
) or _is_optional_leaf_type(
|
211
|
+
type_.of_type, scalar_registry, skip_classes=(GlobalID,)
|
212
|
+
):
|
213
|
+
return value_list
|
214
|
+
|
215
|
+
value_list = cast("Iterable", value)
|
216
|
+
|
167
217
|
return [
|
168
218
|
convert_argument(x, type_.of_type, scalar_registry, config)
|
169
219
|
for x in value_list
|
170
220
|
]
|
171
221
|
|
172
|
-
if
|
173
|
-
from strawberry.relay.types import GlobalID
|
174
|
-
|
222
|
+
if _is_leaf_type(type_, scalar_registry):
|
175
223
|
if type_ is GlobalID:
|
176
224
|
return GlobalID.from_id(value) # type: ignore
|
177
225
|
|
178
226
|
return value
|
179
227
|
|
180
|
-
if isinstance(type_, EnumDefinition):
|
181
|
-
return value
|
182
|
-
|
183
228
|
if isinstance(type_, LazyType):
|
184
229
|
return convert_argument(value, type_.resolve_type(), scalar_registry, config)
|
185
230
|
|
strawberry/types/execution.py
CHANGED
@@ -18,11 +18,11 @@ if TYPE_CHECKING:
|
|
18
18
|
from typing_extensions import NotRequired
|
19
19
|
|
20
20
|
from graphql import ASTValidationRule
|
21
|
-
from graphql import ExecutionResult as GraphQLExecutionResult
|
22
21
|
from graphql.error.graphql_error import GraphQLError
|
23
22
|
from graphql.language import DocumentNode, OperationDefinitionNode
|
24
23
|
|
25
24
|
from strawberry.schema import Schema
|
25
|
+
from strawberry.schema._graphql_core import GraphQLExecutionResult
|
26
26
|
|
27
27
|
from .graphql import OperationType
|
28
28
|
|
@@ -4,7 +4,7 @@ strawberry/aiohttp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
|
|
4
4
|
strawberry/aiohttp/test/__init__.py,sha256=4xxdUZtIISSOwjrcnmox7AvT4WWjowCm5bUuPdQneMg,71
|
5
5
|
strawberry/aiohttp/test/client.py,sha256=8FKZTnvawxYpgEICOri-34O3wHRHLhRpjH_Ktp2EupQ,1801
|
6
6
|
strawberry/aiohttp/views.py,sha256=EhsaD0Ms7qhHxGyS0qDbRPKxz3VUaSdsbEZKTniIjaM,7962
|
7
|
-
strawberry/annotation.py,sha256=
|
7
|
+
strawberry/annotation.py,sha256=D_12gZSdyges7DMpzsqjGsAbex0M-zffyPa3NWt42bw,14180
|
8
8
|
strawberry/asgi/__init__.py,sha256=psdKl_52LGkxKKbzZlmwNGZ9jz2FLyLSC7fUhys4FqY,8169
|
9
9
|
strawberry/asgi/test/__init__.py,sha256=4xxdUZtIISSOwjrcnmox7AvT4WWjowCm5bUuPdQneMg,71
|
10
10
|
strawberry/asgi/test/client.py,sha256=kp2O5znHWuAB5VVYO8p4XPSTEDDXBSjNz5WHqW0r6GM,1473
|
@@ -81,7 +81,7 @@ strawberry/experimental/pydantic/conversion_types.py,sha256=jf7PR5Q7hgo4J_AuxBK-
|
|
81
81
|
strawberry/experimental/pydantic/error_type.py,sha256=RdmiUY4V0baXCAk80ST-XtCiZbndZaaUSEajQplDAzw,4557
|
82
82
|
strawberry/experimental/pydantic/exceptions.py,sha256=pDMPL94ojuSGHxk8H8mI2pfWReG8BhqZ5T2eSxfOi9w,1486
|
83
83
|
strawberry/experimental/pydantic/fields.py,sha256=NcB38JYk29fPwJWtoHkIvwTfqD2Ekf7fJ57GjvvK6mQ,2265
|
84
|
-
strawberry/experimental/pydantic/object_type.py,sha256=
|
84
|
+
strawberry/experimental/pydantic/object_type.py,sha256=qoTQXO4qdno0M2oQv0sll7lqeyul_WDNmoSZpm5V14s,12863
|
85
85
|
strawberry/experimental/pydantic/utils.py,sha256=URSzmcK2KzNGsLv4RyFdFfJnr-ARNLkkM0D4CjijVQU,4035
|
86
86
|
strawberry/ext/LICENSE,sha256=_oY0TZg0b_sW0--0T44aMTpy2e2zF1Kiyn8E1qDiivo,1249
|
87
87
|
strawberry/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -94,11 +94,11 @@ strawberry/extensions/__init__.py,sha256=2TXnEVXumViXzBe-9ppb0CX90Wbc6644IE7aJQA
|
|
94
94
|
strawberry/extensions/add_validation_rules.py,sha256=YwC_27jUpQ6DWcCB1RsuE1JD8R5rV7LAu5fVjdLchYs,1358
|
95
95
|
strawberry/extensions/base_extension.py,sha256=ihsbUrhYt-x4X1j5a34FASmNF661Xev-3w4Qc5gUbHw,2351
|
96
96
|
strawberry/extensions/context.py,sha256=9hTWNjxk-Kyr4RkpKE3BY05dkgS4WLRjJKj4tq28Lj8,7185
|
97
|
-
strawberry/extensions/directives.py,sha256=
|
97
|
+
strawberry/extensions/directives.py,sha256=MYAA6lhlmWZM5q8In6Os53LWAUVuVa7AuLtTXQaERgQ,3090
|
98
98
|
strawberry/extensions/disable_introspection.py,sha256=7FmktNvc9CzOJG9xf_nYG3LThs0cv-g2P-Kzlerna7w,717
|
99
99
|
strawberry/extensions/disable_validation.py,sha256=WaA7x6Q-K4IMnvx35OQ1UtokIKaxkWvO_OJO9fFM_vA,750
|
100
100
|
strawberry/extensions/field_extension.py,sha256=VUwUBbf57Vp_Ukc3Rh9eZDRuF2ubzRRipzsU-w5bAFc,5561
|
101
|
-
strawberry/extensions/mask_errors.py,sha256=
|
101
|
+
strawberry/extensions/mask_errors.py,sha256=wO1GR36L3Tm9fyPFvyp8gBHUPyL8jfw8LollKxFh2ME,1758
|
102
102
|
strawberry/extensions/max_aliases.py,sha256=qaV9rqHTqfhh7YdFnXVvjf14wmAiXBtKHGAxb1Yv4DQ,2547
|
103
103
|
strawberry/extensions/max_tokens.py,sha256=53Gb0tSj-G7so_vLokdmtUal4KCXQBYLJi1LSIvdkXE,1045
|
104
104
|
strawberry/extensions/parser_cache.py,sha256=oi6Svpy21_YP-d9G3nv_5HzJPw5FyBhWplCYnzcKwO8,1291
|
@@ -134,13 +134,13 @@ strawberry/file_uploads/scalars.py,sha256=NRDeB7j8aotqIkz9r62ISTf4DrxQxEZYUuHsX5
|
|
134
134
|
strawberry/file_uploads/utils.py,sha256=-c6TbqUI-Dkb96hWCrZabh6TL2OabBuQNkCarOqgDm4,1181
|
135
135
|
strawberry/flask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
136
136
|
strawberry/flask/views.py,sha256=MCvAsNgTZLU8RvTYKWfnLU2w7Wv1ZZpxW9W3TyTZuPY,6355
|
137
|
-
strawberry/http/__init__.py,sha256=
|
138
|
-
strawberry/http/async_base_view.py,sha256=
|
137
|
+
strawberry/http/__init__.py,sha256=8UWXKZ2IG6_nInp9liUj0qMquDNRR-9o--0EMBL-gnQ,1482
|
138
|
+
strawberry/http/async_base_view.py,sha256=1SnPLUy_uNhJkUh9QWNrzDjapB1OoRsvOIBK67V1_IM,23332
|
139
139
|
strawberry/http/base.py,sha256=MiX0-RqOkhRvlfpmuvgTHp4tygbUmG8fnLc0uCrOllU,2550
|
140
140
|
strawberry/http/exceptions.py,sha256=9E2dreS1crRoJVUEPuHyx23NcDELDHNzkAOa-rGv-8I,348
|
141
141
|
strawberry/http/ides.py,sha256=WjU0nsMDgr3Bd1ebWkUEkO2d1hk0dI16mLqXyCHqklA,613
|
142
142
|
strawberry/http/parse_content_type.py,sha256=CYHO8F9b9DP1gJ1xxPjc9L2GkBwsyC1O_GCEp1QOuG0,381
|
143
|
-
strawberry/http/sync_base_view.py,sha256=
|
143
|
+
strawberry/http/sync_base_view.py,sha256=j7lJIc6nbhwHx80evpLkR7m7i-uX9qNdgrL3CdpvEZg,7882
|
144
144
|
strawberry/http/temporal_response.py,sha256=HTt65g-YxqlPGxjqvH5bzGoU1b3CctVR-9cmCRo5dUo,196
|
145
145
|
strawberry/http/types.py,sha256=H0wGOdCO-5tNKZM_6cAtNRwZAjoEXnAC5N0Q7b70AtU,398
|
146
146
|
strawberry/http/typevars.py,sha256=Uu6NkKe3h7o29ZWwldq6sJy4ioSSeXODTCDRvY2hUpE,489
|
@@ -157,7 +157,7 @@ strawberry/quart/views.py,sha256=f41HWnkGPuhs1NkjwHOZ0DEVnlr5nMSMr9GCxNsBxCs,746
|
|
157
157
|
strawberry/relay/__init__.py,sha256=Vi4btvA_g6Cj9Tk_F9GCSegapIf2WqkOWV8y3P0cTCs,553
|
158
158
|
strawberry/relay/exceptions.py,sha256=Za0iXLBGZtd1HkesGm4xTr3QOeuyiCAe1hiCCQ2HHvE,4036
|
159
159
|
strawberry/relay/fields.py,sha256=wIwBTXsDimG6incMglEn7Gr7CO8H8AA25yhM8MT8I-0,18100
|
160
|
-
strawberry/relay/types.py,sha256=
|
160
|
+
strawberry/relay/types.py,sha256=rndxONPRkBZUE6u6aTDynL9Lm7Ahkr7jOPT6IIQSrVE,30460
|
161
161
|
strawberry/relay/utils.py,sha256=-QxroxkSYtFnMYsJyTyfIi0I1fLtjnt6siW0kLNiyfs,5908
|
162
162
|
strawberry/resolvers.py,sha256=Vdidc3YFc4-olSQZD_xQ1icyAFbyzqs_8I3eSpMFlA4,260
|
163
163
|
strawberry/sanic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -166,13 +166,13 @@ strawberry/sanic/utils.py,sha256=XjUVBFuBWfECBCZbx_YtrjQnFTUyIGTo7aISIeB22Gc,100
|
|
166
166
|
strawberry/sanic/views.py,sha256=F5ZrKt-R3135evKLfhQuPd1isOexI0Lrzevm_6Te4Eg,7069
|
167
167
|
strawberry/scalars.py,sha256=CGkG8CIfurXiYhidmW3qwy6M5BF_Mhih3wAEcWx_iBU,2278
|
168
168
|
strawberry/schema/__init__.py,sha256=u1QCyDVQExUVDA20kyosKPz3TS5HMCN2NrXclhiFAL4,92
|
169
|
-
strawberry/schema/_graphql_core.py,sha256=
|
169
|
+
strawberry/schema/_graphql_core.py,sha256=VV-6OIP5O-CUzmUT14fWpIwk81Y88rj7PLLNpmU68mk,1512
|
170
170
|
strawberry/schema/base.py,sha256=wqvEOQ_aVkfebk9SlG9zg1YXl3MlwxGZhxFRoIkAxu0,4053
|
171
171
|
strawberry/schema/compat.py,sha256=xNpOEDfi-MODpplMGaKuKeQIVcr-tcAaKaU3TlBc1Zs,1873
|
172
172
|
strawberry/schema/config.py,sha256=EQhyuKcQTOga_1Uw3nhu5SlS6lVbgsG1YZ3LOKqeztQ,1084
|
173
173
|
strawberry/schema/exceptions.py,sha256=8gsMxxFDynMvRkUDuVL9Wwxk_zsmo6QoJ2l4NPxd64M,1137
|
174
174
|
strawberry/schema/name_converter.py,sha256=xFOXEgqldFkxXRkIQvsJN1dPkWbEUaIrTYNOMYSEVwQ,6945
|
175
|
-
strawberry/schema/schema.py,sha256=
|
175
|
+
strawberry/schema/schema.py,sha256=LxekcO16k3nX4Cq5285lOEaVz8drnMKkAls0Rie-Td4,39268
|
176
176
|
strawberry/schema/schema_converter.py,sha256=nCQXylHCwWDXW3sRRlZrAaLyCna4iIj3GAy2sBp-VEA,39267
|
177
177
|
strawberry/schema/types/__init__.py,sha256=oHO3COWhL3L1KLYCJNY1XFf5xt2GGtHiMC-UaYbFfnA,68
|
178
178
|
strawberry/schema/types/base_scalars.py,sha256=JRUq0WjEkR9dFewstZnqnZKp0uOEipo4UXNF5dzRf4M,1971
|
@@ -190,10 +190,10 @@ strawberry/streamable.py,sha256=ylfMt5lfX7RRKGi86wWokvIgYQk5jZCvQVc3shK0epk,645
|
|
190
190
|
strawberry/subscriptions/__init__.py,sha256=1VGmiCzFepqRFyCikagkUoHHdoTG3XYlFu9GafoQMws,170
|
191
191
|
strawberry/subscriptions/protocols/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
192
192
|
strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py,sha256=wN6dkMu6WiaIZTE19PGoN9xXpIN_RdDE_q7F7ZgjCxk,138
|
193
|
-
strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py,sha256=
|
193
|
+
strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py,sha256=Uy7UWPAgbCEIZfMs1R6RDIStLkHCM33Zsc0sMpgDwrc,15485
|
194
194
|
strawberry/subscriptions/protocols/graphql_transport_ws/types.py,sha256=N9r2mXg5jmmjYoZV5rWf3lAzgylCOUrbKGmClXCoOso,2169
|
195
195
|
strawberry/subscriptions/protocols/graphql_ws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
196
|
-
strawberry/subscriptions/protocols/graphql_ws/handlers.py,sha256=
|
196
|
+
strawberry/subscriptions/protocols/graphql_ws/handlers.py,sha256=6Rz47q-VbzTVyL48hgHYoGpT1MRMytFi2SDGreD7axw,8668
|
197
197
|
strawberry/subscriptions/protocols/graphql_ws/types.py,sha256=Uumiz-1O5qQnx-ERBaQtaf7db5yx-V9LMypOn9oGKwM,2003
|
198
198
|
strawberry/test/__init__.py,sha256=lKVbKJDBnrYSPYHIKrg54UpaZcSoL93Z01zOpA1IzZM,115
|
199
199
|
strawberry/test/client.py,sha256=ILAttb6A3jplH5wJNMeyyT1u_Q8KnollfpYLP_BVZR4,6438
|
@@ -201,12 +201,12 @@ strawberry/tools/__init__.py,sha256=pdGpZx8wpq03VfUZJyF9JtYxZhGqzzxCiipsalWxJX4,
|
|
201
201
|
strawberry/tools/create_type.py,sha256=y10LgJnWDFtZB-xHLqpVg5ySqvz5KSFC6PNflogie1Q,2329
|
202
202
|
strawberry/tools/merge_types.py,sha256=hUMRRNM28FyPp70jRA3d4svv9WoEBjaNpihBt3DaY0I,1023
|
203
203
|
strawberry/types/__init__.py,sha256=baWEdDkkmCcITOhkg2hNUOenrNV1OYdxGE5qgvIRwwU,351
|
204
|
-
strawberry/types/arguments.py,sha256=
|
204
|
+
strawberry/types/arguments.py,sha256=Qe3bpKjJWsrN7Qh9kOr0ZjrwDVc_nb2VFWqL22XJ4II,11129
|
205
205
|
strawberry/types/auto.py,sha256=WZ2cQAI8nREUigBzpzFqIKGjJ_C2VqpAPNe8vPjTciM,3007
|
206
206
|
strawberry/types/base.py,sha256=Bfa-5Wen8qR7m6tlSMRRGlGE-chRGMHjQMopfNdbbrk,15197
|
207
207
|
strawberry/types/cast.py,sha256=fx86MkLW77GIximBAwUk5vZxSGwDqUA6XicXvz8EXwQ,916
|
208
208
|
strawberry/types/enum.py,sha256=7bK7YUzlG117_V9x-f9hx5vogcCRF6UBUFteeKhjDHg,6306
|
209
|
-
strawberry/types/execution.py,sha256=
|
209
|
+
strawberry/types/execution.py,sha256=ZLGUaHVf-35oxFnRgoiFgiXDmMBJ5CtcwYU6FvZNwyY,3825
|
210
210
|
strawberry/types/field.py,sha256=vxb7JvkHfRmDCYsjhDmVnO2lMbtSOteQm3jQUeSFu6g,21605
|
211
211
|
strawberry/types/fields/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
212
212
|
strawberry/types/fields/resolver.py,sha256=b6lxfw6AMOUFWm7vs7a9KzNkpR8b_S110DoIosrrWDQ,14679
|
@@ -236,8 +236,8 @@ strawberry/utils/logging.py,sha256=U1cseHGquN09YFhFmRkiphfASKCyK0HUZREImPgVb0c,7
|
|
236
236
|
strawberry/utils/operation.py,sha256=ZgVOw3K2jQuLjNOYUHauF7itJD0QDNoPw9PBi0IYf6k,1234
|
237
237
|
strawberry/utils/str_converters.py,sha256=-eH1Cl16IO_wrBlsGM-km4IY0IKsjhjnSNGRGOwQjVM,897
|
238
238
|
strawberry/utils/typing.py,sha256=SDvX-Du-9HAV3-XXjqi7Q5f5qPDDFd_gASIITiwBQT4,14073
|
239
|
-
strawberry_graphql-0.276.0.
|
240
|
-
strawberry_graphql-0.276.0.
|
241
|
-
strawberry_graphql-0.276.0.
|
242
|
-
strawberry_graphql-0.276.0.
|
243
|
-
strawberry_graphql-0.276.0.
|
239
|
+
strawberry_graphql-0.276.0.dev1752831589.dist-info/LICENSE,sha256=m-XnIVUKqlG_AWnfi9NReh9JfKhYOB-gJfKE45WM1W8,1072
|
240
|
+
strawberry_graphql-0.276.0.dev1752831589.dist-info/METADATA,sha256=O9-lI1OXOAMLVdiJ_mHz5d_S5rnQ-MkoWa0Te8OcJHA,7407
|
241
|
+
strawberry_graphql-0.276.0.dev1752831589.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
242
|
+
strawberry_graphql-0.276.0.dev1752831589.dist-info/entry_points.txt,sha256=Nk7-aT3_uEwCgyqtHESV9H6Mc31cK-VAvhnQNTzTb4k,49
|
243
|
+
strawberry_graphql-0.276.0.dev1752831589.dist-info/RECORD,,
|
File without changes
|
File without changes
|