strawberry-graphql 0.265.1__py3-none-any.whl → 0.266.0.dev1744797470__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/__init__.py +2 -0
- strawberry/annotation.py +7 -0
- strawberry/http/__init__.py +14 -9
- strawberry/http/async_base_view.py +81 -5
- strawberry/printer/printer.py +2 -2
- strawberry/schema/_graphql_core.py +46 -0
- strawberry/schema/config.py +1 -0
- strawberry/schema/schema.py +47 -7
- strawberry/static/graphiql.html +5 -5
- strawberry/streamable.py +36 -0
- {strawberry_graphql-0.265.1.dist-info → strawberry_graphql-0.266.0.dev1744797470.dist-info}/METADATA +1 -1
- {strawberry_graphql-0.265.1.dist-info → strawberry_graphql-0.266.0.dev1744797470.dist-info}/RECORD +15 -13
- {strawberry_graphql-0.265.1.dist-info → strawberry_graphql-0.266.0.dev1744797470.dist-info}/LICENSE +0 -0
- {strawberry_graphql-0.265.1.dist-info → strawberry_graphql-0.266.0.dev1744797470.dist-info}/WHEEL +0 -0
- {strawberry_graphql-0.265.1.dist-info → strawberry_graphql-0.266.0.dev1744797470.dist-info}/entry_points.txt +0 -0
strawberry/__init__.py
CHANGED
@@ -11,6 +11,7 @@ from .permission import BasePermission
|
|
11
11
|
from .scalars import ID
|
12
12
|
from .schema import Schema
|
13
13
|
from .schema_directive import schema_directive
|
14
|
+
from .streamable import Streamable
|
14
15
|
from .types.arguments import argument
|
15
16
|
from .types.auto import auto
|
16
17
|
from .types.cast import cast
|
@@ -34,6 +35,7 @@ __all__ = [
|
|
34
35
|
"Parent",
|
35
36
|
"Private",
|
36
37
|
"Schema",
|
38
|
+
"Streamable",
|
37
39
|
"argument",
|
38
40
|
"asdict",
|
39
41
|
"auto",
|
strawberry/annotation.py
CHANGED
@@ -17,6 +17,7 @@ from typing import (
|
|
17
17
|
)
|
18
18
|
from typing_extensions import Self, get_args, get_origin
|
19
19
|
|
20
|
+
from strawberry.streamable import StrawberryStreamable
|
20
21
|
from strawberry.types.base import (
|
21
22
|
StrawberryList,
|
22
23
|
StrawberryObjectDefinition,
|
@@ -141,6 +142,8 @@ class StrawberryAnnotation:
|
|
141
142
|
|
142
143
|
if self._is_lazy_type(evaled_type):
|
143
144
|
return evaled_type
|
145
|
+
if self._is_streamable(evaled_type, args):
|
146
|
+
return self.create_list(list[evaled_type])
|
144
147
|
if self._is_list(evaled_type):
|
145
148
|
return self.create_list(evaled_type)
|
146
149
|
|
@@ -313,6 +316,10 @@ class StrawberryAnnotation:
|
|
313
316
|
or is_list
|
314
317
|
)
|
315
318
|
|
319
|
+
@classmethod
|
320
|
+
def _is_streamable(cls, annotation: Any, args: list[Any]) -> bool:
|
321
|
+
return any(isinstance(arg, StrawberryStreamable) for arg in args)
|
322
|
+
|
316
323
|
@classmethod
|
317
324
|
def _is_strawberry_type(cls, evaled_type: Any) -> bool:
|
318
325
|
# Prevent import cycles
|
strawberry/http/__init__.py
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
from dataclasses import dataclass
|
4
|
-
from typing import
|
4
|
+
from typing import Any, Optional
|
5
5
|
from typing_extensions import Literal, TypedDict
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
from strawberry.schema._graphql_core import (
|
8
|
+
GraphQLIncrementalExecutionResults,
|
9
|
+
ResultType,
|
10
|
+
)
|
9
11
|
|
10
12
|
|
11
13
|
class GraphQLHTTPResponse(TypedDict, total=False):
|
@@ -14,13 +16,16 @@ class GraphQLHTTPResponse(TypedDict, total=False):
|
|
14
16
|
extensions: Optional[dict[str, object]]
|
15
17
|
|
16
18
|
|
17
|
-
def process_result(result:
|
18
|
-
|
19
|
+
def process_result(result: ResultType) -> GraphQLHTTPResponse:
|
20
|
+
if isinstance(result, GraphQLIncrementalExecutionResults):
|
21
|
+
return result
|
19
22
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
23
|
+
errors, extensions = result.errors, result.extensions
|
24
|
+
data: GraphQLHTTPResponse = {
|
25
|
+
"data": result.data,
|
26
|
+
**({"errors": [err.formatted for err in errors]} if errors else {}),
|
27
|
+
**({"extensions": extensions} if extensions else {}),
|
28
|
+
}
|
24
29
|
|
25
30
|
return data
|
26
31
|
|
@@ -25,6 +25,9 @@ from strawberry.http import (
|
|
25
25
|
process_result,
|
26
26
|
)
|
27
27
|
from strawberry.http.ides import GraphQL_IDE
|
28
|
+
from strawberry.schema._graphql_core import (
|
29
|
+
GraphQLIncrementalExecutionResults,
|
30
|
+
)
|
28
31
|
from strawberry.schema.base import BaseSchema
|
29
32
|
from strawberry.schema.exceptions import InvalidOperationTypeError
|
30
33
|
from strawberry.subscriptions import GRAPHQL_TRANSPORT_WS_PROTOCOL, GRAPHQL_WS_PROTOCOL
|
@@ -258,7 +261,7 @@ class AsyncBaseHTTPView(
|
|
258
261
|
root_value: Optional[RootValue] = UNSET,
|
259
262
|
) -> WebSocketResponse: ...
|
260
263
|
|
261
|
-
async def run(
|
264
|
+
async def run( # noqa: PLR0915
|
262
265
|
self,
|
263
266
|
request: Union[Request, WebSocketRequest],
|
264
267
|
context: Optional[Context] = UNSET,
|
@@ -349,6 +352,75 @@ class AsyncBaseHTTPView(
|
|
349
352
|
"Content-Type": "multipart/mixed;boundary=graphql;subscriptionSpec=1.0,application/json",
|
350
353
|
},
|
351
354
|
)
|
355
|
+
if isinstance(result, GraphQLIncrementalExecutionResults):
|
356
|
+
|
357
|
+
async def stream() -> AsyncGenerator[str, None]:
|
358
|
+
yield "---"
|
359
|
+
|
360
|
+
response = await self.process_result(request, result.initial_result)
|
361
|
+
|
362
|
+
response["hasNext"] = result.initial_result.has_next
|
363
|
+
response["pending"] = [
|
364
|
+
p.formatted for p in result.initial_result.pending
|
365
|
+
]
|
366
|
+
response["extensions"] = result.initial_result.extensions
|
367
|
+
|
368
|
+
yield self.encode_multipart_data(response, "-")
|
369
|
+
|
370
|
+
all_pending = result.initial_result.pending
|
371
|
+
|
372
|
+
async for value in result.subsequent_results:
|
373
|
+
response = {
|
374
|
+
"hasNext": value.has_next,
|
375
|
+
"extensions": value.extensions,
|
376
|
+
}
|
377
|
+
|
378
|
+
if value.pending:
|
379
|
+
response["pending"] = [p.formatted for p in value.pending]
|
380
|
+
|
381
|
+
if value.completed:
|
382
|
+
response["completed"] = [p.formatted for p in value.completed]
|
383
|
+
|
384
|
+
if value.incremental:
|
385
|
+
incremental = []
|
386
|
+
|
387
|
+
all_pending.extend(value.pending)
|
388
|
+
|
389
|
+
for incremental_value in value.incremental:
|
390
|
+
pending_value = next(
|
391
|
+
(
|
392
|
+
v
|
393
|
+
for v in all_pending
|
394
|
+
if v.id == incremental_value.id
|
395
|
+
),
|
396
|
+
None,
|
397
|
+
)
|
398
|
+
|
399
|
+
assert pending_value
|
400
|
+
|
401
|
+
incremental.append(
|
402
|
+
{
|
403
|
+
**incremental_value.formatted,
|
404
|
+
"path": pending_value.path,
|
405
|
+
"label": pending_value.label,
|
406
|
+
}
|
407
|
+
)
|
408
|
+
|
409
|
+
response["incremental"] = incremental
|
410
|
+
|
411
|
+
yield self.encode_multipart_data(response, "-")
|
412
|
+
|
413
|
+
yield "--\r\n"
|
414
|
+
|
415
|
+
return await self.create_streaming_response(
|
416
|
+
request,
|
417
|
+
stream,
|
418
|
+
sub_response,
|
419
|
+
headers={
|
420
|
+
"Transfer-Encoding": "chunked",
|
421
|
+
"Content-Type": 'multipart/mixed; boundary="-"',
|
422
|
+
},
|
423
|
+
)
|
352
424
|
|
353
425
|
response_data = await self.process_result(request=request, result=result)
|
354
426
|
|
@@ -360,12 +432,16 @@ class AsyncBaseHTTPView(
|
|
360
432
|
)
|
361
433
|
|
362
434
|
def encode_multipart_data(self, data: Any, separator: str) -> str:
|
435
|
+
encoded_data = self.encode_json(data)
|
436
|
+
|
363
437
|
return "".join(
|
364
438
|
[
|
365
|
-
|
366
|
-
"Content-Type: application/json\r\n
|
367
|
-
|
368
|
-
"\n",
|
439
|
+
"\r\n",
|
440
|
+
"Content-Type: application/json; charset=utf-8\r\n",
|
441
|
+
"Content-Length: " + str(len(encoded_data)) + "\r\n",
|
442
|
+
"\r\n",
|
443
|
+
encoded_data,
|
444
|
+
f"\r\n--{separator}",
|
369
445
|
]
|
370
446
|
)
|
371
447
|
|
strawberry/printer/printer.py
CHANGED
@@ -561,9 +561,9 @@ def print_schema_definition(
|
|
561
561
|
def print_directive(
|
562
562
|
directive: GraphQLDirective, *, schema: BaseSchema
|
563
563
|
) -> Optional[str]:
|
564
|
-
strawberry_directive = directive.extensions
|
564
|
+
strawberry_directive = directive.extensions.get("strawberry-definition")
|
565
565
|
|
566
|
-
if (
|
566
|
+
if strawberry_directive is None or (
|
567
567
|
isinstance(strawberry_directive, StrawberrySchemaDirective)
|
568
568
|
and not strawberry_directive.print_definition
|
569
569
|
):
|
@@ -0,0 +1,46 @@
|
|
1
|
+
from typing import Union
|
2
|
+
|
3
|
+
from graphql.execution import ExecutionContext as GraphQLExecutionContext
|
4
|
+
from graphql.execution import ExecutionResult as GraphQLExecutionResult
|
5
|
+
from graphql.execution import execute, subscribe
|
6
|
+
|
7
|
+
from strawberry.types import ExecutionResult
|
8
|
+
|
9
|
+
try:
|
10
|
+
from graphql import (
|
11
|
+
ExperimentalIncrementalExecutionResults as GraphQLIncrementalExecutionResults,
|
12
|
+
)
|
13
|
+
from graphql.execution import experimental_execute_incrementally
|
14
|
+
from graphql.type.directives import (
|
15
|
+
GraphQLDeferDirective,
|
16
|
+
GraphQLStreamDirective,
|
17
|
+
)
|
18
|
+
|
19
|
+
incremental_execution_directives = (
|
20
|
+
GraphQLDeferDirective,
|
21
|
+
GraphQLStreamDirective,
|
22
|
+
)
|
23
|
+
|
24
|
+
except ImportError:
|
25
|
+
GraphQLIncrementalExecutionResults = type(None)
|
26
|
+
|
27
|
+
incremental_execution_directives = []
|
28
|
+
experimental_execute_incrementally = None
|
29
|
+
|
30
|
+
|
31
|
+
# TODO: give this a better name, maybe also a better place
|
32
|
+
ResultType = Union[
|
33
|
+
GraphQLExecutionResult,
|
34
|
+
GraphQLIncrementalExecutionResults,
|
35
|
+
ExecutionResult,
|
36
|
+
]
|
37
|
+
|
38
|
+
__all__ = [
|
39
|
+
"GraphQLExecutionContext",
|
40
|
+
"GraphQLIncrementalExecutionResults",
|
41
|
+
"ResultType",
|
42
|
+
"execute",
|
43
|
+
"experimental_execute_incrementally",
|
44
|
+
"incremental_execution_directives",
|
45
|
+
"subscribe",
|
46
|
+
]
|
strawberry/schema/config.py
CHANGED
strawberry/schema/schema.py
CHANGED
@@ -29,8 +29,6 @@ from graphql import (
|
|
29
29
|
parse,
|
30
30
|
validate_schema,
|
31
31
|
)
|
32
|
-
from graphql.execution import ExecutionContext as GraphQLExecutionContext
|
33
|
-
from graphql.execution import execute, subscribe
|
34
32
|
from graphql.execution.middleware import MiddlewareManager
|
35
33
|
from graphql.type.directives import specified_directives
|
36
34
|
from graphql.validation import validate
|
@@ -64,6 +62,15 @@ from strawberry.utils.aio import aclosing
|
|
64
62
|
from strawberry.utils.await_maybe import await_maybe
|
65
63
|
|
66
64
|
from . import compat
|
65
|
+
from ._graphql_core import (
|
66
|
+
GraphQLExecutionContext,
|
67
|
+
GraphQLIncrementalExecutionResults,
|
68
|
+
ResultType,
|
69
|
+
execute,
|
70
|
+
experimental_execute_incrementally,
|
71
|
+
incremental_execution_directives,
|
72
|
+
subscribe,
|
73
|
+
)
|
67
74
|
from .base import BaseSchema
|
68
75
|
from .config import StrawberryConfig
|
69
76
|
from .exceptions import InvalidOperationTypeError
|
@@ -92,6 +99,7 @@ OriginSubscriptionResult = Union[
|
|
92
99
|
AsyncIterator[OriginalExecutionResult],
|
93
100
|
]
|
94
101
|
|
102
|
+
|
95
103
|
DEFAULT_ALLOWED_OPERATION_TYPES = {
|
96
104
|
OperationType.QUERY,
|
97
105
|
OperationType.MUTATION,
|
@@ -262,11 +270,16 @@ class Schema(BaseSchema):
|
|
262
270
|
graphql_types.append(graphql_type)
|
263
271
|
|
264
272
|
try:
|
273
|
+
directives = specified_directives + tuple(graphql_directives)
|
274
|
+
|
275
|
+
if self.config.enable_experimental_incremental_execution:
|
276
|
+
directives = tuple(directives) + tuple(incremental_execution_directives)
|
277
|
+
|
265
278
|
self._schema = GraphQLSchema(
|
266
279
|
query=query_type,
|
267
280
|
mutation=mutation_type,
|
268
281
|
subscription=subscription_type if subscription else None,
|
269
|
-
directives=
|
282
|
+
directives=directives,
|
270
283
|
types=graphql_types,
|
271
284
|
extensions={
|
272
285
|
GraphQLCoreConverter.DEFINITION_BACKREF: self,
|
@@ -444,12 +457,16 @@ class Schema(BaseSchema):
|
|
444
457
|
async def _handle_execution_result(
|
445
458
|
self,
|
446
459
|
context: ExecutionContext,
|
447
|
-
result:
|
460
|
+
result: ResultType,
|
448
461
|
extensions_runner: SchemaExtensionsRunner,
|
449
462
|
*,
|
450
463
|
# TODO: can we remove this somehow, see comment in execute
|
451
464
|
skip_process_errors: bool = False,
|
452
465
|
) -> ExecutionResult:
|
466
|
+
# TODO: handle this, also, why do we have both GraphQLExecutionResult and ExecutionResult?
|
467
|
+
if isinstance(result, GraphQLIncrementalExecutionResults):
|
468
|
+
return result
|
469
|
+
|
453
470
|
# Set errors on the context so that it's easier
|
454
471
|
# to access in extensions
|
455
472
|
if result.errors:
|
@@ -490,6 +507,17 @@ class Schema(BaseSchema):
|
|
490
507
|
extensions_runner = self.create_extensions_runner(execution_context, extensions)
|
491
508
|
middleware_manager = self._get_middleware_manager(extensions)
|
492
509
|
|
510
|
+
execute_function = execute
|
511
|
+
|
512
|
+
if self.config.enable_experimental_incremental_execution:
|
513
|
+
execute_function = experimental_execute_incrementally
|
514
|
+
|
515
|
+
if execute_function is None:
|
516
|
+
raise RuntimeError(
|
517
|
+
"Incremental execution is enabled but experimental_execute_incrementally is not available, "
|
518
|
+
"please install graphql-core>=3.3.0"
|
519
|
+
)
|
520
|
+
|
493
521
|
try:
|
494
522
|
async with extensions_runner.operation():
|
495
523
|
# Note: In graphql-core the schema would be validated here but in
|
@@ -508,7 +536,7 @@ class Schema(BaseSchema):
|
|
508
536
|
async with extensions_runner.executing():
|
509
537
|
if not execution_context.result:
|
510
538
|
result = await await_maybe(
|
511
|
-
|
539
|
+
execute_function(
|
512
540
|
self._schema,
|
513
541
|
execution_context.graphql_document,
|
514
542
|
root_value=execution_context.root_value,
|
@@ -524,7 +552,9 @@ class Schema(BaseSchema):
|
|
524
552
|
result = execution_context.result
|
525
553
|
# Also set errors on the execution_context so that it's easier
|
526
554
|
# to access in extensions
|
527
|
-
|
555
|
+
|
556
|
+
# TODO: maybe here use the first result from incremental execution if it exists
|
557
|
+
if isinstance(result, GraphQLExecutionResult) and result.errors:
|
528
558
|
execution_context.errors = result.errors
|
529
559
|
|
530
560
|
# Run the `Schema.process_errors` function here before
|
@@ -574,6 +604,16 @@ class Schema(BaseSchema):
|
|
574
604
|
extensions_runner = self.create_extensions_runner(execution_context, extensions)
|
575
605
|
middleware_manager = self._get_middleware_manager(extensions)
|
576
606
|
|
607
|
+
execute_function = execute
|
608
|
+
|
609
|
+
if self.config.enable_experimental_incremental_execution:
|
610
|
+
execute_function = experimental_execute_incrementally
|
611
|
+
|
612
|
+
if execute_function is None:
|
613
|
+
raise RuntimeError(
|
614
|
+
"Incremental execution is enabled but experimental_execute_incrementally is not available, "
|
615
|
+
"please install graphql-core>=3.3.0"
|
616
|
+
)
|
577
617
|
try:
|
578
618
|
with extensions_runner.operation():
|
579
619
|
# Note: In graphql-core the schema would be validated here but in
|
@@ -615,7 +655,7 @@ class Schema(BaseSchema):
|
|
615
655
|
|
616
656
|
with extensions_runner.executing():
|
617
657
|
if not execution_context.result:
|
618
|
-
result =
|
658
|
+
result = execute_function(
|
619
659
|
self._schema,
|
620
660
|
execution_context.graphql_document,
|
621
661
|
root_value=execution_context.root_value,
|
strawberry/static/graphiql.html
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
<!
|
1
|
+
<!doctype html>
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>Strawberry GraphiQL</title>
|
@@ -61,8 +61,8 @@
|
|
61
61
|
<link
|
62
62
|
crossorigin
|
63
63
|
rel="stylesheet"
|
64
|
-
href="https://unpkg.com/graphiql@3.
|
65
|
-
integrity="sha384-
|
64
|
+
href="https://unpkg.com/graphiql@3.8.3/graphiql.min.css"
|
65
|
+
integrity="sha384-Mq3vbRBY71jfjQAt/DcjxUIYY33ksal4cgdRt9U/hNPvHBCaT2JfJ/PTRiPKf0aM"
|
66
66
|
/>
|
67
67
|
|
68
68
|
<link
|
@@ -77,8 +77,8 @@
|
|
77
77
|
<div id="graphiql" class="graphiql-container">Loading...</div>
|
78
78
|
<script
|
79
79
|
crossorigin
|
80
|
-
src="https://unpkg.com/graphiql@3.
|
81
|
-
integrity="sha384-
|
80
|
+
src="https://unpkg.com/graphiql@3.8.3/graphiql.min.js"
|
81
|
+
integrity="sha384-HbRVEFG0JGJZeAHCJ9Xm2+tpknBQ7QZmNlO/DgZtkZ0aJSypT96YYGRNod99l9Ie"
|
82
82
|
></script>
|
83
83
|
<script
|
84
84
|
crossorigin
|
strawberry/streamable.py
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
from collections.abc import AsyncGenerator
|
2
|
+
from typing import Annotated, TypeVar
|
3
|
+
|
4
|
+
|
5
|
+
class StrawberryStreamable: ...
|
6
|
+
|
7
|
+
|
8
|
+
T = TypeVar("T")
|
9
|
+
|
10
|
+
Streamable = Annotated[AsyncGenerator[T, None], StrawberryStreamable()]
|
11
|
+
"""Represents a list that can be streamed using @stream.
|
12
|
+
|
13
|
+
Example:
|
14
|
+
|
15
|
+
```python
|
16
|
+
import strawberry
|
17
|
+
from dataclasses import dataclass
|
18
|
+
|
19
|
+
|
20
|
+
@strawberry.type
|
21
|
+
class Comment:
|
22
|
+
id: strawberry.ID
|
23
|
+
content: str
|
24
|
+
|
25
|
+
|
26
|
+
@strawberry.type
|
27
|
+
class Article:
|
28
|
+
@strawberry.field
|
29
|
+
@staticmethod
|
30
|
+
async def comments() -> strawberry.Streamable[Comment]:
|
31
|
+
for comment in fetch_comments():
|
32
|
+
yield comment
|
33
|
+
```
|
34
|
+
"""
|
35
|
+
|
36
|
+
__all__ = ["Streamable"]
|
{strawberry_graphql-0.265.1.dist-info → strawberry_graphql-0.266.0.dev1744797470.dist-info}/RECORD
RENAMED
@@ -1,10 +1,10 @@
|
|
1
|
-
strawberry/__init__.py,sha256=
|
1
|
+
strawberry/__init__.py,sha256=HqViVAW5hyZLiG0CvWgLvdBotbbDAimuGgKSzevP-O8,1482
|
2
2
|
strawberry/__main__.py,sha256=3U77Eu21mJ-LY27RG-JEnpbh6Z63wGOom4i-EoLtUcY,59
|
3
3
|
strawberry/aiohttp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
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=AQVBbZTBa127TbQRwoBelTHrVdZnJeGdMYcTfNmoaSc,7887
|
7
|
-
strawberry/annotation.py,sha256=
|
7
|
+
strawberry/annotation.py,sha256=XjsP7g40_BwxNoBEUtj8Y9g_i_c09d24ux70Lc5tfIg,13440
|
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
|
@@ -130,8 +130,8 @@ strawberry/file_uploads/scalars.py,sha256=NRDeB7j8aotqIkz9r62ISTf4DrxQxEZYUuHsX5
|
|
130
130
|
strawberry/file_uploads/utils.py,sha256=-c6TbqUI-Dkb96hWCrZabh6TL2OabBuQNkCarOqgDm4,1181
|
131
131
|
strawberry/flask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
132
132
|
strawberry/flask/views.py,sha256=MCvAsNgTZLU8RvTYKWfnLU2w7Wv1ZZpxW9W3TyTZuPY,6355
|
133
|
-
strawberry/http/__init__.py,sha256=
|
134
|
-
strawberry/http/async_base_view.py,sha256=
|
133
|
+
strawberry/http/__init__.py,sha256=nvy1c7CGHMJlOE9rSiTl6D7eiqWixC1G6x4evgIEKgk,1275
|
134
|
+
strawberry/http/async_base_view.py,sha256=hDHVAS9ZVsY0apn109oMX-HLNbMiQinPrp8iYYf6rBQ,19151
|
135
135
|
strawberry/http/base.py,sha256=Lz-u5SWg2uQp3l5GMKZDPQuJOR42LXHgjV1PZHwiapE,2373
|
136
136
|
strawberry/http/exceptions.py,sha256=9E2dreS1crRoJVUEPuHyx23NcDELDHNzkAOa-rGv-8I,348
|
137
137
|
strawberry/http/ides.py,sha256=WjU0nsMDgr3Bd1ebWkUEkO2d1hk0dI16mLqXyCHqklA,613
|
@@ -146,7 +146,7 @@ strawberry/parent.py,sha256=wViSVYl5ADuyy2EGaS98by_iT1ep9xTP2od8NB_EIuw,742
|
|
146
146
|
strawberry/permission.py,sha256=dSRJMjSCmTlXfvfC24kCSrAk0txTjYKTJ5ZVU5IW91Y,7537
|
147
147
|
strawberry/printer/__init__.py,sha256=DmepjmgtkdF5RxK_7yC6qUyRWn56U-9qeZMbkztYB9w,62
|
148
148
|
strawberry/printer/ast_from_value.py,sha256=Tkme60qlykbN2m3dNPNMOe65X-wj6EmcDQwgQv7gUkc,4987
|
149
|
-
strawberry/printer/printer.py,sha256=
|
149
|
+
strawberry/printer/printer.py,sha256=b5swhNmgSLkOmyXZGMosIVmtKEmiBtKQTHyJ9HJs2VE,18850
|
150
150
|
strawberry/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
151
151
|
strawberry/quart/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
152
152
|
strawberry/quart/views.py,sha256=Hjm93A9j9fy--DQVhsPQ_PakqYtajyWeuH7wUnSLYoA,4449
|
@@ -162,12 +162,13 @@ strawberry/sanic/utils.py,sha256=XjUVBFuBWfECBCZbx_YtrjQnFTUyIGTo7aISIeB22Gc,100
|
|
162
162
|
strawberry/sanic/views.py,sha256=F5ZrKt-R3135evKLfhQuPd1isOexI0Lrzevm_6Te4Eg,7069
|
163
163
|
strawberry/scalars.py,sha256=FcFTbu-yKbBfPCuAfXNa6DbTbEzF3eiQHs5nlt6GJdM,2234
|
164
164
|
strawberry/schema/__init__.py,sha256=u1QCyDVQExUVDA20kyosKPz3TS5HMCN2NrXclhiFAL4,92
|
165
|
+
strawberry/schema/_graphql_core.py,sha256=XHsNZLkCyiH55jANK4XJIjq6VCMhN_MgZBEFWEYj5Jc,1237
|
165
166
|
strawberry/schema/base.py,sha256=q5UAw6do4Ele5Cf8dNAouiPjNmZoCBNFqh5Vl05caCI,3864
|
166
167
|
strawberry/schema/compat.py,sha256=9qJ0lhYJeaN43ayFgVz708ZMvedBhofiTSw9kpFqmjU,1830
|
167
|
-
strawberry/schema/config.py,sha256=
|
168
|
+
strawberry/schema/config.py,sha256=Nl-CWXlKyzcC0ZHoeJmGMXT5jPieC87NU7OqUltbAIk,984
|
168
169
|
strawberry/schema/exceptions.py,sha256=rqVNb_oYrKM0dHPgvAemqCG6Um282LPPu4zwQ5cZqs4,584
|
169
170
|
strawberry/schema/name_converter.py,sha256=xFOXEgqldFkxXRkIQvsJN1dPkWbEUaIrTYNOMYSEVwQ,6945
|
170
|
-
strawberry/schema/schema.py,sha256=
|
171
|
+
strawberry/schema/schema.py,sha256=Jcdwv8M0HZD7T0T7XkaeI5l2WmqttPFmXMZaRXAyu-Y,36055
|
171
172
|
strawberry/schema/schema_converter.py,sha256=OkJaYrWKGqcxdhoTeuf0aGqiTnWtDuZwYddY5uBlf8Q,37521
|
172
173
|
strawberry/schema/types/__init__.py,sha256=oHO3COWhL3L1KLYCJNY1XFf5xt2GGtHiMC-UaYbFfnA,68
|
173
174
|
strawberry/schema/types/base_scalars.py,sha256=JRUq0WjEkR9dFewstZnqnZKp0uOEipo4UXNF5dzRf4M,1971
|
@@ -179,8 +180,9 @@ strawberry/schema_codegen/__init__.py,sha256=mN4Qmu5Iakht6nHpRpt9hCs8e--oTPlVtDJ
|
|
179
180
|
strawberry/schema_directive.py,sha256=CbjdX54EIeWGkJu4SgiLR8mph5_8wyNsgJk2oLoQK_0,2023
|
180
181
|
strawberry/schema_directives.py,sha256=KGKFWCODjm1Ah9qNV_bBwbic7Mld4qLWnWQkev-PG8A,175
|
181
182
|
strawberry/static/apollo-sandbox.html,sha256=2XzkbE0dqsFHqehE-jul9_J9TFOpwA6Ylrlo0Kdx_9w,973
|
182
|
-
strawberry/static/graphiql.html,sha256=
|
183
|
+
strawberry/static/graphiql.html,sha256=0e3pvTnAet-lNEqA_pgJ8Ak2CdMt34zPKMMMzpAkEVU,4257
|
183
184
|
strawberry/static/pathfinder.html,sha256=0DPx9AmJ2C_sJstFXnWOz9k5tVQHeHaK7qdVY4lAlmk,1547
|
185
|
+
strawberry/streamable.py,sha256=ylfMt5lfX7RRKGi86wWokvIgYQk5jZCvQVc3shK0epk,645
|
184
186
|
strawberry/subscriptions/__init__.py,sha256=1VGmiCzFepqRFyCikagkUoHHdoTG3XYlFu9GafoQMws,170
|
185
187
|
strawberry/subscriptions/protocols/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
186
188
|
strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py,sha256=wN6dkMu6WiaIZTE19PGoN9xXpIN_RdDE_q7F7ZgjCxk,138
|
@@ -228,8 +230,8 @@ strawberry/utils/logging.py,sha256=U1cseHGquN09YFhFmRkiphfASKCyK0HUZREImPgVb0c,7
|
|
228
230
|
strawberry/utils/operation.py,sha256=s7ajvLg_q6v2mg47kEMQPjO_J-XluMKTCwo4d47mGvE,1195
|
229
231
|
strawberry/utils/str_converters.py,sha256=-eH1Cl16IO_wrBlsGM-km4IY0IKsjhjnSNGRGOwQjVM,897
|
230
232
|
strawberry/utils/typing.py,sha256=Xmnhwvnw8RIQVIc5D5iI4_9qM4Thpk7tWx8xf-RW_So,13383
|
231
|
-
strawberry_graphql-0.
|
232
|
-
strawberry_graphql-0.
|
233
|
-
strawberry_graphql-0.
|
234
|
-
strawberry_graphql-0.
|
235
|
-
strawberry_graphql-0.
|
233
|
+
strawberry_graphql-0.266.0.dev1744797470.dist-info/LICENSE,sha256=m-XnIVUKqlG_AWnfi9NReh9JfKhYOB-gJfKE45WM1W8,1072
|
234
|
+
strawberry_graphql-0.266.0.dev1744797470.dist-info/METADATA,sha256=qYlyY3P9sps8QGvKZoGGO-8meZWobdRFgqzNCrde3Fc,7693
|
235
|
+
strawberry_graphql-0.266.0.dev1744797470.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
236
|
+
strawberry_graphql-0.266.0.dev1744797470.dist-info/entry_points.txt,sha256=Nk7-aT3_uEwCgyqtHESV9H6Mc31cK-VAvhnQNTzTb4k,49
|
237
|
+
strawberry_graphql-0.266.0.dev1744797470.dist-info/RECORD,,
|
{strawberry_graphql-0.265.1.dist-info → strawberry_graphql-0.266.0.dev1744797470.dist-info}/LICENSE
RENAMED
File without changes
|
{strawberry_graphql-0.265.1.dist-info → strawberry_graphql-0.266.0.dev1744797470.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|