strawberry-graphql 0.227.7__py3-none-any.whl → 0.228.0.dev1713643365__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/experimental/pydantic/error_type.py +1 -1
- strawberry/experimental/pydantic/object_type.py +1 -1
- strawberry/extensions/tracing/datadog.py +7 -16
- strawberry/federation/schema_directive.py +1 -1
- strawberry/object_type.py +3 -26
- strawberry/relay/types.py +1 -12
- strawberry/relay/utils.py +1 -42
- strawberry/schema/schema_converter.py +24 -3
- strawberry/schema_directive.py +1 -1
- strawberry/starlite/controller.py +0 -9
- strawberry/types/type_resolver.py +2 -9
- strawberry/types/types.py +31 -8
- strawberry/union.py +3 -8
- {strawberry_graphql-0.227.7.dist-info → strawberry_graphql-0.228.0.dev1713643365.dist-info}/METADATA +1 -1
- {strawberry_graphql-0.227.7.dist-info → strawberry_graphql-0.228.0.dev1713643365.dist-info}/RECORD +18 -18
- {strawberry_graphql-0.227.7.dist-info → strawberry_graphql-0.228.0.dev1713643365.dist-info}/LICENSE +0 -0
- {strawberry_graphql-0.227.7.dist-info → strawberry_graphql-0.228.0.dev1713643365.dist-info}/WHEEL +0 -0
- {strawberry_graphql-0.227.7.dist-info → strawberry_graphql-0.228.0.dev1713643365.dist-info}/entry_points.txt +0 -0
@@ -114,7 +114,7 @@ def error_type(
|
|
114
114
|
]
|
115
115
|
|
116
116
|
wrapped = _wrap_dataclass(cls)
|
117
|
-
extra_fields = cast(List[dataclasses.Field], _get_fields(wrapped
|
117
|
+
extra_fields = cast(List[dataclasses.Field], _get_fields(wrapped))
|
118
118
|
private_fields = get_private_fields(wrapped)
|
119
119
|
|
120
120
|
all_model_fields.extend(
|
@@ -177,7 +177,7 @@ def type(
|
|
177
177
|
)
|
178
178
|
|
179
179
|
wrapped = _wrap_dataclass(cls)
|
180
|
-
extra_strawberry_fields = _get_fields(wrapped
|
180
|
+
extra_strawberry_fields = _get_fields(wrapped)
|
181
181
|
extra_fields = cast(List[dataclasses.Field], extra_strawberry_fields)
|
182
182
|
private_fields = get_private_fields(wrapped)
|
183
183
|
|
@@ -27,8 +27,7 @@ class DatadogTracingExtension(SchemaExtension):
|
|
27
27
|
|
28
28
|
@cached_property
|
29
29
|
def _resource_name(self) -> str:
|
30
|
-
|
31
|
-
return "query_missing"
|
30
|
+
assert self.execution_context.query
|
32
31
|
|
33
32
|
query_hash = self.hash_query(self.execution_context.query)
|
34
33
|
|
@@ -79,23 +78,15 @@ class DatadogTracingExtension(SchemaExtension):
|
|
79
78
|
)
|
80
79
|
self.request_span.set_tag("graphql.operation_name", self._operation_name)
|
81
80
|
|
82
|
-
|
83
|
-
|
84
|
-
if query is not None:
|
85
|
-
query = query.strip()
|
86
|
-
operation_type = "query"
|
87
|
-
|
88
|
-
if query.startswith("mutation"):
|
89
|
-
operation_type = "mutation"
|
90
|
-
elif query.startswith("subscription"): # pragma: no cover
|
91
|
-
operation_type = "subscription"
|
92
|
-
else:
|
93
|
-
operation_type = "query_missing"
|
81
|
+
assert self.execution_context.query
|
94
82
|
|
83
|
+
operation_type = "query"
|
84
|
+
if self.execution_context.query.strip().startswith("mutation"):
|
85
|
+
operation_type = "mutation"
|
86
|
+
elif self.execution_context.query.strip().startswith("subscription"):
|
87
|
+
operation_type = "subscription"
|
95
88
|
self.request_span.set_tag("graphql.operation_type", operation_type)
|
96
|
-
|
97
89
|
yield
|
98
|
-
|
99
90
|
self.request_span.finish()
|
100
91
|
|
101
92
|
def on_validate(self) -> Generator[None, None, None]:
|
@@ -39,7 +39,7 @@ def schema_directive(
|
|
39
39
|
) -> Callable[..., T]:
|
40
40
|
def _wrap(cls: T) -> T:
|
41
41
|
cls = _wrap_dataclass(cls)
|
42
|
-
fields = _get_fields(cls
|
42
|
+
fields = _get_fields(cls)
|
43
43
|
|
44
44
|
cls.__strawberry_directive__ = StrawberryFederationSchemaDirective(
|
45
45
|
python_name=cls.__name__,
|
strawberry/object_type.py
CHANGED
@@ -67,8 +67,7 @@ def _check_field_annotations(cls: Type[Any]):
|
|
67
67
|
# If the field has a type override then use that instead of using
|
68
68
|
# the class annotations or resolver annotation
|
69
69
|
if field_.type_annotation is not None:
|
70
|
-
|
71
|
-
cls_annotations[field_name] = field_.type_annotation.annotation
|
70
|
+
cls_annotations[field_name] = field_.type_annotation.annotation
|
72
71
|
continue
|
73
72
|
|
74
73
|
# Make sure the cls has an annotation
|
@@ -86,8 +85,7 @@ def _check_field_annotations(cls: Type[Any]):
|
|
86
85
|
field_name, resolver=field_.base_resolver
|
87
86
|
)
|
88
87
|
|
89
|
-
|
90
|
-
cls_annotations[field_name] = field_.base_resolver.type_annotation
|
88
|
+
cls_annotations[field_name] = field_.base_resolver.type_annotation
|
91
89
|
|
92
90
|
# TODO: Make sure the cls annotation agrees with the field's type
|
93
91
|
# >>> if cls_annotations[field_name] != field.base_resolver.type:
|
@@ -135,13 +133,11 @@ def _process_type(
|
|
135
133
|
description: Optional[str] = None,
|
136
134
|
directives: Optional[Sequence[object]] = (),
|
137
135
|
extend: bool = False,
|
138
|
-
original_type_annotations: Optional[Dict[str, Any]] = None,
|
139
136
|
) -> T:
|
140
137
|
name = name or to_camel_case(cls.__name__)
|
141
|
-
original_type_annotations = original_type_annotations or {}
|
142
138
|
|
143
139
|
interfaces = _get_interfaces(cls)
|
144
|
-
fields = _get_fields(cls
|
140
|
+
fields = _get_fields(cls)
|
145
141
|
is_type_of = getattr(cls, "is_type_of", None)
|
146
142
|
resolve_type = getattr(cls, "resolve_type", None)
|
147
143
|
|
@@ -249,25 +245,7 @@ def type(
|
|
249
245
|
exc = ObjectIsNotClassError.type
|
250
246
|
raise exc(cls)
|
251
247
|
|
252
|
-
# when running `_wrap_dataclass` we lose some of the information about the
|
253
|
-
# the passed types, especially the type_annotation inside the StrawberryField
|
254
|
-
# this makes it impossible to customise the field type, like this:
|
255
|
-
# >>> @strawberry.type
|
256
|
-
# >>> class Query:
|
257
|
-
# >>> a: int = strawberry.field(graphql_type=str)
|
258
|
-
# so we need to extract the information before running `_wrap_dataclass`
|
259
|
-
original_type_annotations: Dict[str, Any] = {}
|
260
|
-
|
261
|
-
annotations = getattr(cls, "__annotations__", {})
|
262
|
-
|
263
|
-
for field_name in annotations:
|
264
|
-
field = getattr(cls, field_name, None)
|
265
|
-
|
266
|
-
if field and isinstance(field, StrawberryField) and field.type_annotation:
|
267
|
-
original_type_annotations[field_name] = field.type_annotation.annotation
|
268
|
-
|
269
248
|
wrapped = _wrap_dataclass(cls)
|
270
|
-
|
271
249
|
return _process_type(
|
272
250
|
wrapped,
|
273
251
|
name=name,
|
@@ -276,7 +254,6 @@ def type(
|
|
276
254
|
description=description,
|
277
255
|
directives=directives,
|
278
256
|
extend=extend,
|
279
|
-
original_type_annotations=original_type_annotations,
|
280
257
|
)
|
281
258
|
|
282
259
|
if cls is None:
|
strawberry/relay/types.py
CHANGED
@@ -38,7 +38,7 @@ from strawberry.utils.aio import aenumerate, aislice, resolve_awaitable
|
|
38
38
|
from strawberry.utils.inspect import in_async_context
|
39
39
|
from strawberry.utils.typing import eval_type, is_classvar
|
40
40
|
|
41
|
-
from .utils import from_base64,
|
41
|
+
from .utils import from_base64, to_base64
|
42
42
|
|
43
43
|
if TYPE_CHECKING:
|
44
44
|
from strawberry.scalars import ID
|
@@ -933,17 +933,6 @@ class ListConnection(Connection[NodeType]):
|
|
933
933
|
overfetch,
|
934
934
|
)
|
935
935
|
|
936
|
-
if not should_resolve_list_connection_edges(info):
|
937
|
-
return cls(
|
938
|
-
edges=[],
|
939
|
-
page_info=PageInfo(
|
940
|
-
start_cursor=None,
|
941
|
-
end_cursor=None,
|
942
|
-
has_previous_page=False,
|
943
|
-
has_next_page=False,
|
944
|
-
),
|
945
|
-
)
|
946
|
-
|
947
936
|
edges = [
|
948
937
|
edge_class.resolve_edge(
|
949
938
|
cls.resolve_node(v, info=info, **kwargs),
|
strawberry/relay/utils.py
CHANGED
@@ -2,8 +2,6 @@ import base64
|
|
2
2
|
from typing import Any, Tuple, Union
|
3
3
|
from typing_extensions import assert_never
|
4
4
|
|
5
|
-
from strawberry.types.info import Info
|
6
|
-
from strawberry.types.nodes import InlineFragment, Selection
|
7
5
|
from strawberry.types.types import StrawberryObjectDefinition
|
8
6
|
|
9
7
|
|
@@ -43,7 +41,7 @@ def to_base64(type_: Union[str, type, StrawberryObjectDefinition], node_id: Any)
|
|
43
41
|
The node id itself
|
44
42
|
|
45
43
|
Returns:
|
46
|
-
A
|
44
|
+
A tuple of (TypeName, NodeID).
|
47
45
|
|
48
46
|
Raises:
|
49
47
|
ValueError:
|
@@ -63,42 +61,3 @@ def to_base64(type_: Union[str, type, StrawberryObjectDefinition], node_id: Any)
|
|
63
61
|
raise ValueError(f"{type_} is not a valid GraphQL type or name") from e
|
64
62
|
|
65
63
|
return base64.b64encode(f"{type_name}:{node_id}".encode()).decode()
|
66
|
-
|
67
|
-
|
68
|
-
def should_resolve_list_connection_edges(info: Info) -> bool:
|
69
|
-
"""Check if the user requested to resolve the `edges` field of a connection.
|
70
|
-
|
71
|
-
Args:
|
72
|
-
info:
|
73
|
-
The strawberry execution info resolve the type name from
|
74
|
-
|
75
|
-
Returns:
|
76
|
-
True if the user requested to resolve the `edges` field of a connection, False otherwise.
|
77
|
-
|
78
|
-
"""
|
79
|
-
resolve_for_field_names = {"edges", "pageInfo"}
|
80
|
-
|
81
|
-
def _check_selection(selection: Selection) -> bool:
|
82
|
-
"""Recursively inspect the selection to check if the user requested to resolve the `edges` field.
|
83
|
-
Args:
|
84
|
-
selection (Selection): The selection to check.
|
85
|
-
|
86
|
-
Returns:
|
87
|
-
bool: True if the user requested to resolve the `edges` field of a connection, False otherwise.
|
88
|
-
"""
|
89
|
-
if (
|
90
|
-
not isinstance(selection, InlineFragment)
|
91
|
-
and selection.name in resolve_for_field_names
|
92
|
-
):
|
93
|
-
return True
|
94
|
-
if selection.selections:
|
95
|
-
return any(
|
96
|
-
_check_selection(selection) for selection in selection.selections
|
97
|
-
)
|
98
|
-
return False
|
99
|
-
|
100
|
-
for selection_field in info.selected_fields:
|
101
|
-
for selection in selection_field.selections:
|
102
|
-
if _check_selection(selection):
|
103
|
-
return True
|
104
|
-
return False
|
@@ -33,6 +33,7 @@ from graphql import (
|
|
33
33
|
GraphQLList,
|
34
34
|
GraphQLNonNull,
|
35
35
|
GraphQLObjectType,
|
36
|
+
GraphQLType,
|
36
37
|
GraphQLUnionType,
|
37
38
|
Undefined,
|
38
39
|
ValueNode,
|
@@ -429,7 +430,7 @@ class GraphQLCoreConverter:
|
|
429
430
|
) -> GraphQLInterfaceType:
|
430
431
|
interface_name = self.config.name_converter.from_type(interface)
|
431
432
|
|
432
|
-
# Don't
|
433
|
+
# Don't re-evaluate known types
|
433
434
|
cached_type = self.type_map.get(interface_name, None)
|
434
435
|
if cached_type:
|
435
436
|
self.validate_same_type_definition(interface_name, interface, cached_type)
|
@@ -450,7 +451,27 @@ class GraphQLCoreConverter:
|
|
450
451
|
# TODO: we should find the correct type here from the
|
451
452
|
# generic
|
452
453
|
if not type_definition.is_graphql_generic:
|
453
|
-
return
|
454
|
+
return type_definition.name
|
455
|
+
|
456
|
+
# here we don't all the implementations of the generic
|
457
|
+
# we need to find a way to find them, for now maybe
|
458
|
+
# we can follow the union's approach and iterate over
|
459
|
+
# all the types in the schema, but we should probably
|
460
|
+
# optimize this
|
461
|
+
|
462
|
+
return_type: Optional[GraphQLType] = None
|
463
|
+
|
464
|
+
for possible_concrete_type in self.type_map.values():
|
465
|
+
possible_type = possible_concrete_type.definition
|
466
|
+
|
467
|
+
if not isinstance(possible_type, StrawberryObjectDefinition):
|
468
|
+
continue
|
469
|
+
if possible_type.is_implemented_by(obj):
|
470
|
+
return_type = possible_concrete_type.implementation
|
471
|
+
break
|
472
|
+
|
473
|
+
if return_type:
|
474
|
+
return return_type.name
|
454
475
|
|
455
476
|
# Revert to calling is_type_of for cases where a direct subclass
|
456
477
|
# of the interface is not returned (i.e. an ORM object)
|
@@ -794,7 +815,7 @@ class GraphQLCoreConverter:
|
|
794
815
|
if not StrawberryUnion.is_valid_union_type(type_):
|
795
816
|
raise InvalidUnionTypeError(union_name, type_, union_definition=union)
|
796
817
|
|
797
|
-
# Don't
|
818
|
+
# Don't re-evaluate known types
|
798
819
|
if union_name in self.type_map:
|
799
820
|
graphql_union = self.type_map[union_name].implementation
|
800
821
|
assert isinstance(graphql_union, GraphQLUnionType) # For mypy
|
strawberry/schema_directive.py
CHANGED
@@ -6,7 +6,6 @@ import warnings
|
|
6
6
|
from dataclasses import dataclass
|
7
7
|
from datetime import timedelta
|
8
8
|
from typing import TYPE_CHECKING, Any, Dict, Mapping, Optional, Tuple, Union, cast
|
9
|
-
from typing_extensions import deprecated
|
10
9
|
|
11
10
|
from starlite import (
|
12
11
|
BackgroundTasks,
|
@@ -119,10 +118,6 @@ class GraphQLTransportWSHandler(BaseGraphQLTransportWSHandler):
|
|
119
118
|
return await self._get_root_value()
|
120
119
|
|
121
120
|
|
122
|
-
@deprecated(
|
123
|
-
"The `starlite` integration is deprecated in favor of `litestar` integration",
|
124
|
-
stacklevel=2,
|
125
|
-
)
|
126
121
|
class StarliteRequestAdapter(AsyncHTTPRequestAdapter):
|
127
122
|
def __init__(self, request: Request[Any, Any]) -> None:
|
128
123
|
self.request = request
|
@@ -158,10 +153,6 @@ class BaseContext:
|
|
158
153
|
self.response: Optional[Response] = None
|
159
154
|
|
160
155
|
|
161
|
-
@deprecated(
|
162
|
-
"The `starlite` integration is deprecated in favor of `litestar` integration",
|
163
|
-
stacklevel=2,
|
164
|
-
)
|
165
156
|
def make_graphql_controller(
|
166
157
|
schema: BaseSchema,
|
167
158
|
path: str = "",
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
import dataclasses
|
4
4
|
import sys
|
5
|
-
from typing import
|
5
|
+
from typing import Dict, List, Type
|
6
6
|
|
7
7
|
from strawberry.annotation import StrawberryAnnotation
|
8
8
|
from strawberry.exceptions import (
|
@@ -16,9 +16,7 @@ from strawberry.type import has_object_definition
|
|
16
16
|
from strawberry.unset import UNSET
|
17
17
|
|
18
18
|
|
19
|
-
def _get_fields(
|
20
|
-
cls: Type[Any], original_type_annotations: Dict[str, Type[Any]]
|
21
|
-
) -> List[StrawberryField]:
|
19
|
+
def _get_fields(cls: Type) -> List[StrawberryField]:
|
22
20
|
"""Get all the strawberry fields off a strawberry.type cls
|
23
21
|
|
24
22
|
This function returns a list of StrawberryFields (one for each field item), while
|
@@ -51,7 +49,6 @@ def _get_fields(
|
|
51
49
|
passing a named function (i.e. not an anonymous lambda) to strawberry.field
|
52
50
|
(typically as a decorator).
|
53
51
|
"""
|
54
|
-
|
55
52
|
fields: Dict[str, StrawberryField] = {}
|
56
53
|
|
57
54
|
# before trying to find any fields, let's first add the fields defined in
|
@@ -155,10 +152,6 @@ def _get_fields(
|
|
155
152
|
assert_message = "Field must have a name by the time the schema is generated"
|
156
153
|
assert field_name is not None, assert_message
|
157
154
|
|
158
|
-
if field.name in original_type_annotations:
|
159
|
-
field.type = original_type_annotations[field.name]
|
160
|
-
field.type_annotation = StrawberryAnnotation(annotation=field.type)
|
161
|
-
|
162
155
|
# TODO: Raise exception if field_name already in fields
|
163
156
|
fields[field_name] = field
|
164
157
|
|
strawberry/types/types.py
CHANGED
@@ -17,6 +17,7 @@ from typing import (
|
|
17
17
|
from typing_extensions import Self, deprecated
|
18
18
|
|
19
19
|
from strawberry.type import (
|
20
|
+
StrawberryList,
|
20
21
|
StrawberryType,
|
21
22
|
StrawberryTypeVar,
|
22
23
|
WithStrawberryObjectDefinition,
|
@@ -169,21 +170,43 @@ class StrawberryObjectDefinition(StrawberryType):
|
|
169
170
|
return False
|
170
171
|
|
171
172
|
# Check the mapping of all fields' TypeVars
|
172
|
-
for
|
173
|
-
|
174
|
-
|
173
|
+
for field in type_definition.fields:
|
174
|
+
if not field.is_graphql_generic:
|
175
|
+
continue
|
176
|
+
|
177
|
+
value = getattr(root, field.name)
|
178
|
+
generic_field_type = field.type
|
179
|
+
|
180
|
+
while isinstance(generic_field_type, StrawberryList):
|
181
|
+
generic_field_type = generic_field_type.of_type
|
182
|
+
|
183
|
+
assert isinstance(value, (list, tuple))
|
184
|
+
|
185
|
+
if len(value) == 0:
|
186
|
+
# We can't infer the type of an empty list, so we just
|
187
|
+
# return the first one we find
|
188
|
+
return True
|
189
|
+
|
190
|
+
value = value[0]
|
191
|
+
|
192
|
+
if isinstance(generic_field_type, StrawberryTypeVar):
|
193
|
+
type_var = generic_field_type.type_var
|
194
|
+
# TODO: I don't think we support nested types properly
|
195
|
+
# if there's a union that has two nested types that
|
196
|
+
# are have the same field with different types, we might
|
197
|
+
# not be able to differentiate them
|
198
|
+
else:
|
175
199
|
continue
|
176
200
|
|
177
201
|
# For each TypeVar found, get the expected type from the copy's type map
|
178
|
-
expected_concrete_type = self.type_var_map.get(
|
179
|
-
|
180
|
-
|
202
|
+
expected_concrete_type = self.type_var_map.get(type_var.__name__)
|
203
|
+
|
204
|
+
# this shouldn't happen, but we do a defensive check just in case
|
181
205
|
if expected_concrete_type is None:
|
182
|
-
# TODO: Should this return False?
|
183
206
|
continue
|
184
207
|
|
185
208
|
# Check if the expected type matches the type found on the type_map
|
186
|
-
real_concrete_type = type(
|
209
|
+
real_concrete_type = type(value)
|
187
210
|
|
188
211
|
# TODO: uniform type var map, at the moment we map object types
|
189
212
|
# to their class (not to TypeDefinition) while we map enum to
|
strawberry/union.py
CHANGED
@@ -194,7 +194,6 @@ class StrawberryUnion(StrawberryType):
|
|
194
194
|
# Union in case a nested generic object matches against more than one type.
|
195
195
|
concrete_types_for_union = (type_map[x.name] for x in type_.types)
|
196
196
|
|
197
|
-
# TODO: do we still need to iterate over all types in `type_map`?
|
198
197
|
for possible_concrete_type in chain(
|
199
198
|
concrete_types_for_union, type_map.values()
|
200
199
|
):
|
@@ -213,13 +212,9 @@ class StrawberryUnion(StrawberryType):
|
|
213
212
|
info.field_name, str(type(root)), set(type_.types)
|
214
213
|
)
|
215
214
|
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
return return_type.name
|
220
|
-
else:
|
221
|
-
# TODO: check if this is correct
|
222
|
-
return return_type.__name__ # type: ignore
|
215
|
+
assert isinstance(return_type, GraphQLNamedType)
|
216
|
+
|
217
|
+
return return_type.name
|
223
218
|
|
224
219
|
return _resolve_union_type
|
225
220
|
|
{strawberry_graphql-0.227.7.dist-info → strawberry_graphql-0.228.0.dev1713643365.dist-info}/RECORD
RENAMED
@@ -86,10 +86,10 @@ strawberry/experimental/pydantic/__init__.py,sha256=jlsYH1j_9W4ieRpUKgt5zQPERDL7
|
|
86
86
|
strawberry/experimental/pydantic/_compat.py,sha256=Qnuxy6d0cq5agd8SBlJWqvCPrH3wzMa3gm5Wtzmh0cM,8147
|
87
87
|
strawberry/experimental/pydantic/conversion.py,sha256=_YMz4cYCwLUazkT2oCQ4B1gusksnXDHdFm1DldIrU7Q,4213
|
88
88
|
strawberry/experimental/pydantic/conversion_types.py,sha256=VuuBULz2v6cz_N1fa51ayJMA5_bQkqZmxaCumDsTGRM,931
|
89
|
-
strawberry/experimental/pydantic/error_type.py,sha256=
|
89
|
+
strawberry/experimental/pydantic/error_type.py,sha256=s8v0weIVM-9c0e3zqySaaa3pGZan7RvKTGuTtXLGPmE,4366
|
90
90
|
strawberry/experimental/pydantic/exceptions.py,sha256=Q8Deq3bNkMgc8fwvIYdcfxHSONXVMu-ZB6jcsh1NQYo,1498
|
91
91
|
strawberry/experimental/pydantic/fields.py,sha256=QP5vYb8vKf7vOC69cjUPGOdlO_j4kZRdxalWgeqJ5Hk,2588
|
92
|
-
strawberry/experimental/pydantic/object_type.py,sha256=
|
92
|
+
strawberry/experimental/pydantic/object_type.py,sha256=gZ_-SJoH4ZG6CIVa2BBInzW9TIXeTw_0-q74a-x1EuI,12372
|
93
93
|
strawberry/experimental/pydantic/utils.py,sha256=9m_oKyz0K1rTmh1ZrYtbFfyUNsiV11RiEb7bLrZuOXs,3770
|
94
94
|
strawberry/ext/LICENSE,sha256=_oY0TZg0b_sW0--0T44aMTpy2e2zF1Kiyn8E1qDiivo,1249
|
95
95
|
strawberry/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -113,7 +113,7 @@ strawberry/extensions/query_depth_limiter.py,sha256=lm9KTQOCTTGzXvMWyafROhQ3MhZX
|
|
113
113
|
strawberry/extensions/runner.py,sha256=HNi0haRUbd_eGlDG-zByR5KmOylDQPCqMUsLZnzLzWo,2696
|
114
114
|
strawberry/extensions/tracing/__init__.py,sha256=wx8_EAroGhNrP4HiGYMgKo8jnCsfde5ib6lO4OvcLV0,1400
|
115
115
|
strawberry/extensions/tracing/apollo.py,sha256=ZdxxFEQi1lCpCWfCETOfcK_-Ivw-jUSg-rIKOYlm_i4,5811
|
116
|
-
strawberry/extensions/tracing/datadog.py,sha256=
|
116
|
+
strawberry/extensions/tracing/datadog.py,sha256=McoCKGUEmLc3oCS2dXd9hdVVVtydRL0odNTOGY0r3Kg,5302
|
117
117
|
strawberry/extensions/tracing/opentelemetry.py,sha256=vuC8IKevMP_Vt0Q-tcHM3UkWasU4S0NhgsAHCNr3j3s,7212
|
118
118
|
strawberry/extensions/tracing/sentry.py,sha256=XxXtJ6sPVbc2ucZo_p1HroTOn2N9Dl_uUfZNAWut_XM,4954
|
119
119
|
strawberry/extensions/tracing/utils.py,sha256=O3-XJ25TqJJ9X1wHi0-0iX4U_3uv2YiB6TJfxGqtnek,618
|
@@ -133,7 +133,7 @@ strawberry/federation/mutation.py,sha256=0lV5HJwgw4HYR_59pwxWqnPs342HwakTNMc98w5
|
|
133
133
|
strawberry/federation/object_type.py,sha256=0ZzOavBSh8ZPORd70RmsfMYo2cVg6gfZPwaIziDO58o,9005
|
134
134
|
strawberry/federation/scalar.py,sha256=_dwlQyiDGQQF-Qz-ACSOT-LikxjXgIVz9i0HWlUjTSc,3799
|
135
135
|
strawberry/federation/schema.py,sha256=9g7jp6eUTTP3atW81dLMtaqeY0tQB4YGdR8beKZ-JX8,13715
|
136
|
-
strawberry/federation/schema_directive.py,sha256=
|
136
|
+
strawberry/federation/schema_directive.py,sha256=TpqoVeN3-iE-acndIRAVyU4LIXh6FTHz-Pv2kI8zGu0,1719
|
137
137
|
strawberry/federation/schema_directives.py,sha256=Awb-BqICDptYtDNRF3BUNnbNcrsSTDN8AWAwKxVZ3UQ,6139
|
138
138
|
strawberry/federation/types.py,sha256=mM70g1aLgjplOc3SdtuJjy7NAKFLv35Z4BDC4s_j5us,301
|
139
139
|
strawberry/federation/union.py,sha256=QXeh-nhApqFtXa3To9MX_IwvtwErZBhWYnssUK7JB2E,1005
|
@@ -160,7 +160,7 @@ strawberry/litestar/controller.py,sha256=BCntaDTmQNoBRHINi8TztuF7G4-FiED-KxEPTZ6
|
|
160
160
|
strawberry/litestar/handlers/graphql_transport_ws_handler.py,sha256=q_erlgzPsxarohRQXGp1yK0mjKyS8vsWntMYEmrQx4s,2008
|
161
161
|
strawberry/litestar/handlers/graphql_ws_handler.py,sha256=vVpjd5rJOldF8aQWEGjmmNd60WE1p6q6hFmB_DtCzDU,2250
|
162
162
|
strawberry/mutation.py,sha256=NROPvHJU1BBxZB7Wj4Okxw4hDIYM59MCpukAGEmSNYA,255
|
163
|
-
strawberry/object_type.py,sha256=
|
163
|
+
strawberry/object_type.py,sha256=oClGE0Dd10cOla6WHdUYaUdJk5koZrIikgHb8o8QFA4,11374
|
164
164
|
strawberry/parent.py,sha256=rmedKjN4zdg4KTnNV8DENrzgNYVL67rXpHjHoBofMS4,825
|
165
165
|
strawberry/permission.py,sha256=dcKx4Zlg4ZhcxEDBOSWzz0CUN4WPkcc_kJUVuvLLs6w,5925
|
166
166
|
strawberry/printer/__init__.py,sha256=DmepjmgtkdF5RxK_7yC6qUyRWn56U-9qeZMbkztYB9w,62
|
@@ -173,8 +173,8 @@ strawberry/quart/views.py,sha256=SDUaDX7bPKsv8PziMPb0C3nH6vre-Q3bhzSQp4uPjbY,340
|
|
173
173
|
strawberry/relay/__init__.py,sha256=Vi4btvA_g6Cj9Tk_F9GCSegapIf2WqkOWV8y3P0cTCs,553
|
174
174
|
strawberry/relay/exceptions.py,sha256=b7sU2MhHVWJOfq27lvqdFcqBZ5P_JWk41JWRjtP-AOI,3916
|
175
175
|
strawberry/relay/fields.py,sha256=0A96V4mQzFJwP9g68tM3zKmbPxnfU2Ix6kbMI-x11LQ,15550
|
176
|
-
strawberry/relay/types.py,sha256=
|
177
|
-
strawberry/relay/utils.py,sha256=
|
176
|
+
strawberry/relay/types.py,sha256=tazLGFC92vVbsoMTFTqOX4QCrgrxSgsDotgkhjFpl7w,30331
|
177
|
+
strawberry/relay/utils.py,sha256=l-fZHydLEKovwP98UwZz2ZALzMSxIjvn-yi7O8P5rJI,1697
|
178
178
|
strawberry/resolvers.py,sha256=g7_g3jmXszziGydY1UG6IItf9s6B1lGLUCnwW1kb8U0,224
|
179
179
|
strawberry/sanic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
180
180
|
strawberry/sanic/context.py,sha256=qfoj8QMaAiWbCQFAdm2KPPJGNc7ilXeKAl5z0XJ2nzo,805
|
@@ -189,15 +189,15 @@ strawberry/schema/exceptions.py,sha256=T-DsvBtjx9svkegIm1YrVPGPswpVEpMTFc0_7flLE
|
|
189
189
|
strawberry/schema/execute.py,sha256=6OE7_5v4G3t_wxp1_mfwu8TTiIkTJNBQaeGCVAljUYw,10982
|
190
190
|
strawberry/schema/name_converter.py,sha256=UdNyd-QtqF2HsDCQK-nsOcLGxDTj4hJwYFNvMtZnpq4,6533
|
191
191
|
strawberry/schema/schema.py,sha256=MOC8k6NHolFGrCyqrungv0ciCImLdXTlbmo7y7rLRas,13734
|
192
|
-
strawberry/schema/schema_converter.py,sha256=
|
192
|
+
strawberry/schema/schema_converter.py,sha256=cZmcNPqjwpMC9Q9mUZU7wydfu_dmpkcvAfz7GKbK4CY,35714
|
193
193
|
strawberry/schema/types/__init__.py,sha256=oHO3COWhL3L1KLYCJNY1XFf5xt2GGtHiMC-UaYbFfnA,68
|
194
194
|
strawberry/schema/types/base_scalars.py,sha256=Z_BmgwLicNexLipGyw6MmZ7OBnkGJU3ySgaY9SwBWrw,1837
|
195
195
|
strawberry/schema/types/concrete_type.py,sha256=HB30G1hMUuuvjAvfSe6ADS35iI_T_wKO-EprVOWTMSs,746
|
196
196
|
strawberry/schema/types/scalar.py,sha256=SVJ8HiKncCvOw2xwABI5xYaHcC7KkGHG-tx2WDtSoCA,2802
|
197
197
|
strawberry/schema_codegen/__init__.py,sha256=PcCVXjS0Y5Buxadm07YAZOVunkQ_DmmwsBrgsH1T4ds,24375
|
198
|
-
strawberry/schema_directive.py,sha256=
|
198
|
+
strawberry/schema_directive.py,sha256=GxiOedFB-RJAflpQNUZv00C5Z6gavR-AYdsvoCA_0jc,1963
|
199
199
|
strawberry/starlite/__init__.py,sha256=v209swT8H9MljVL-npvANhEO1zz3__PSfxb_Ix-NoeE,134
|
200
|
-
strawberry/starlite/controller.py,sha256=
|
200
|
+
strawberry/starlite/controller.py,sha256=QTlvDuCCOwZSbqq5MrGikrI9JXsBHmVuDuP2_lgQk5Y,11918
|
201
201
|
strawberry/starlite/handlers/graphql_transport_ws_handler.py,sha256=WhfFVWdjRSk4A48MaBLGWqZdi2OnHajxdQlA_Gc4XBE,1981
|
202
202
|
strawberry/starlite/handlers/graphql_ws_handler.py,sha256=v1RxhvahVazKUg-KXosAcZfv5ap1rEp1A3726d5LkiU,2223
|
203
203
|
strawberry/static/apollo-sandbox.html,sha256=2XzkbE0dqsFHqehE-jul9_J9TFOpwA6Ylrlo0Kdx_9w,973
|
@@ -224,9 +224,9 @@ strawberry/types/fields/resolver.py,sha256=F_E8bmvYM-3hjkTMMtI1a0qs8raMOpYidh27u
|
|
224
224
|
strawberry/types/graphql.py,sha256=3SWZEsa0Zy1eVW6vy75BnB7t9_lJVi6TBV3_1j3RNBs,687
|
225
225
|
strawberry/types/info.py,sha256=b1ZWW_wUop6XrGNcGHKBQeUYjlX-y8u3s2Wm_XhKPYI,3412
|
226
226
|
strawberry/types/nodes.py,sha256=5tTYmxGpVDshbydicHTTBWEiUe8A7p7mdiaSV8Ry80Y,5027
|
227
|
-
strawberry/types/type_resolver.py,sha256=
|
228
|
-
strawberry/types/types.py,sha256=
|
229
|
-
strawberry/union.py,sha256=
|
227
|
+
strawberry/types/type_resolver.py,sha256=F0z_geS4VEun8EhD571LaTgI8ypjCeLfp910gF0Q3MY,6280
|
228
|
+
strawberry/types/types.py,sha256=X6XwzDoboQkJjCfzi85Lw-pjTRzEYWi-uAUR8yDkstA,7947
|
229
|
+
strawberry/union.py,sha256=bQ3QBOLLugGvN434vHTZRuelgJdblfy8aJMrUpLgG_g,9585
|
230
230
|
strawberry/unset.py,sha256=4zYRN8vUD7lHQLLpulBFqEPfyvzpx8fl7ZDBUyfMqqk,1112
|
231
231
|
strawberry/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
232
232
|
strawberry/utils/aio.py,sha256=nRu0VYg9RLpkY90t6UfUlCJhIS1qpmqLdQHlwTOK89g,1608
|
@@ -241,8 +241,8 @@ strawberry/utils/logging.py,sha256=flS7hV0JiIOEdXcrIjda4WyIWix86cpHHFNJL8gl1y4,7
|
|
241
241
|
strawberry/utils/operation.py,sha256=Um-tBCPl3_bVFN2Ph7o1mnrxfxBes4HFCj6T0x4kZxE,1135
|
242
242
|
strawberry/utils/str_converters.py,sha256=avIgPVLg98vZH9mA2lhzVdyyjqzLsK2NdBw9mJQ02Xk,813
|
243
243
|
strawberry/utils/typing.py,sha256=SQVOw1nuFZk2Pe3iz0o8ebzpoyvBVoGSQZVZj6-8k7I,13483
|
244
|
-
strawberry_graphql-0.
|
245
|
-
strawberry_graphql-0.
|
246
|
-
strawberry_graphql-0.
|
247
|
-
strawberry_graphql-0.
|
248
|
-
strawberry_graphql-0.
|
244
|
+
strawberry_graphql-0.228.0.dev1713643365.dist-info/LICENSE,sha256=m-XnIVUKqlG_AWnfi9NReh9JfKhYOB-gJfKE45WM1W8,1072
|
245
|
+
strawberry_graphql-0.228.0.dev1713643365.dist-info/METADATA,sha256=N18Z9s1fBEG9Vk4YJrTS7mGcNS-zLeWSemzyVvQcs-w,7835
|
246
|
+
strawberry_graphql-0.228.0.dev1713643365.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
247
|
+
strawberry_graphql-0.228.0.dev1713643365.dist-info/entry_points.txt,sha256=Nk7-aT3_uEwCgyqtHESV9H6Mc31cK-VAvhnQNTzTb4k,49
|
248
|
+
strawberry_graphql-0.228.0.dev1713643365.dist-info/RECORD,,
|
{strawberry_graphql-0.227.7.dist-info → strawberry_graphql-0.228.0.dev1713643365.dist-info}/LICENSE
RENAMED
File without changes
|
{strawberry_graphql-0.227.7.dist-info → strawberry_graphql-0.228.0.dev1713643365.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|