strawberry-graphql 0.279.0.dev1754138688__tar.gz → 0.284.3__tar.gz
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_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/PKG-INFO +14 -8
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/README.md +5 -5
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/pyproject.toml +96 -79
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/__init__.py +1 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/aiohttp/test/client.py +8 -15
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/aiohttp/views.py +13 -64
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/annotation.py +19 -23
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/asgi/__init__.py +20 -56
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/asgi/test/client.py +6 -6
- strawberry_graphql-0.284.3/strawberry/chalice/views.py +88 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/handlers/base.py +7 -8
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/handlers/http_handler.py +48 -26
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/handlers/ws_handler.py +10 -14
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/router.py +3 -4
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/testing.py +7 -9
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/__init__.py +1 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/codegen.py +7 -7
- strawberry_graphql-0.284.3/strawberry/cli/commands/dev.py +72 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/schema_codegen.py +1 -2
- strawberry_graphql-0.284.3/strawberry/cli/commands/server.py +41 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/upgrade/__init__.py +3 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/upgrade/_run_codemod.py +2 -2
- strawberry_graphql-0.284.3/strawberry/cli/constants.py +1 -0
- strawberry_graphql-0.279.0.dev1754138688/strawberry/cli/debug_server.py → strawberry_graphql-0.284.3/strawberry/cli/dev_server.py +3 -7
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/plugins/print_operation.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/plugins/python.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/query_codegen.py +20 -30
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/types.py +32 -32
- strawberry_graphql-0.284.3/strawberry/codemods/__init__.py +9 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codemods/annotated_unions.py +2 -2
- strawberry_graphql-0.284.3/strawberry/codemods/maybe_optional.py +118 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/dataloader.py +28 -24
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/directive.py +6 -7
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/django/test/client.py +3 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/django/views.py +19 -91
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/__init__.py +4 -4
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/conflicting_arguments.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/duplicated_type_name.py +4 -4
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/exception.py +3 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/handler.py +8 -7
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/invalid_argument_type.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/invalid_superclass_interface.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/invalid_union_type.py +4 -4
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/missing_arguments_annotations.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/missing_dependencies.py +2 -4
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/missing_field_annotation.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/missing_return_annotation.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/object_is_not_a_class.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/object_is_not_an_enum.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/permission_fail_silently_requires_optional.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/private_strawberry_field.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/scalar_already_registered.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/syntax.py +3 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/unresolved_field_type.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/utils/source_finder.py +25 -25
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/_compat.py +9 -7
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/conversion.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/conversion_types.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/error_type.py +11 -12
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/fields.py +10 -15
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/object_type.py +15 -23
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/utils.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/ext/mypy_plugin.py +12 -14
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/base_extension.py +2 -1
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/context.py +13 -18
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/directives.py +3 -1
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/field_extension.py +4 -4
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/mask_errors.py +5 -7
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/max_aliases.py +1 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/parser_cache.py +1 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/query_depth_limiter.py +18 -14
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/runner.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/tracing/apollo.py +3 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/tracing/datadog.py +3 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/tracing/opentelemetry.py +6 -8
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/tracing/utils.py +3 -1
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/utils.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/validation_cache.py +1 -2
- strawberry_graphql-0.284.3/strawberry/fastapi/context.py +23 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/fastapi/router.py +41 -42
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/argument.py +4 -5
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/enum.py +18 -21
- strawberry_graphql-0.284.3/strawberry/federation/field.py +272 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/object_type.py +56 -58
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/scalar.py +27 -35
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/schema.py +15 -16
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/schema_directive.py +7 -6
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/schema_directives.py +11 -11
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/union.py +4 -4
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/flask/views.py +14 -85
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/__init__.py +14 -14
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/async_base_view.py +28 -62
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/base.py +13 -13
- strawberry_graphql-0.284.3/strawberry/http/exceptions.py +17 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/ides.py +2 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/sync_base_view.py +12 -47
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/types.py +3 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/litestar/controller.py +41 -77
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/permission.py +4 -6
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/printer/ast_from_value.py +3 -5
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/printer/printer.py +8 -13
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/quart/views.py +13 -47
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/relay/exceptions.py +4 -4
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/relay/fields.py +33 -32
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/relay/types.py +31 -34
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/relay/utils.py +11 -23
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/resolvers.py +2 -1
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/sanic/context.py +1 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/sanic/utils.py +3 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/sanic/views.py +13 -55
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/scalars.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/_graphql_core.py +5 -5
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/base.py +32 -33
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/compat.py +9 -9
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/config.py +5 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/exceptions.py +1 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/name_converter.py +6 -6
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/schema.py +57 -60
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/schema_converter.py +34 -22
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/types/base_scalars.py +1 -1
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/types/concrete_type.py +5 -5
- strawberry_graphql-0.284.3/strawberry/schema/validation_rules/maybe_null.py +136 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema_codegen/__init__.py +3 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema_directive.py +7 -6
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +5 -16
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +20 -20
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +5 -12
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/subscriptions/protocols/graphql_ws/types.py +14 -14
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/test/client.py +18 -18
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/tools/create_type.py +2 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/arguments.py +41 -28
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/auto.py +3 -4
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/base.py +25 -27
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/enum.py +22 -25
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/execution.py +14 -15
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/field.py +108 -108
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/fields/resolver.py +19 -21
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/info.py +5 -11
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/lazy_type.py +2 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/maybe.py +12 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/mutation.py +115 -118
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/nodes.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/object_type.py +43 -63
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/scalar.py +37 -43
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/union.py +12 -14
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/aio.py +12 -9
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/await_maybe.py +3 -3
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/deprecations.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/importer.py +1 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/inspect.py +4 -6
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/logging.py +2 -2
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/operation.py +4 -4
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/typing.py +18 -83
- strawberry_graphql-0.279.0.dev1754138688/strawberry/chalice/views.py +0 -156
- strawberry_graphql-0.279.0.dev1754138688/strawberry/cli/commands/server.py +0 -82
- strawberry_graphql-0.279.0.dev1754138688/strawberry/cli/constants.py +0 -2
- strawberry_graphql-0.279.0.dev1754138688/strawberry/fastapi/context.py +0 -23
- strawberry_graphql-0.279.0.dev1754138688/strawberry/federation/field.py +0 -275
- strawberry_graphql-0.279.0.dev1754138688/strawberry/http/exceptions.py +0 -19
- strawberry_graphql-0.279.0.dev1754138688/strawberry/pydantic/__init__.py +0 -21
- strawberry_graphql-0.279.0.dev1754138688/strawberry/pydantic/fields.py +0 -202
- strawberry_graphql-0.279.0.dev1754138688/strawberry/pydantic/object_type.py +0 -348
- strawberry_graphql-0.279.0.dev1754138688/strawberry/types/fields/__init__.py +0 -0
- strawberry_graphql-0.279.0.dev1754138688/strawberry/utils/dataclasses.py +0 -37
- strawberry_graphql-0.279.0.dev1754138688/strawberry/utils/debug.py +0 -46
- strawberry_graphql-0.279.0.dev1754138688/strawberry/utils/graphql_lexer.py +0 -35
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/LICENSE +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/__main__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/aiohttp/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/aiohttp/test/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/asgi/test/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/chalice/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/handlers/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/app.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/export_schema.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/locate_definition.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/utils/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/utils/load_schema.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/exceptions.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/plugins/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/plugins/typescript.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codemods/update_imports.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/django/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/django/apps.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/django/context.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/django/test/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/exception_source.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688/strawberry/codemods → strawberry_graphql-0.284.3/strawberry/exceptions/utils}/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/exceptions.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/ext/LICENSE +0 -0
- {strawberry_graphql-0.279.0.dev1754138688/strawberry/exceptions/utils → strawberry_graphql-0.284.3/strawberry/ext}/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/ext/dataclasses/LICENSE +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/ext/dataclasses/README.md +0 -0
- {strawberry_graphql-0.279.0.dev1754138688/strawberry/ext → strawberry_graphql-0.284.3/strawberry/ext/dataclasses}/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/ext/dataclasses/dataclasses.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/add_validation_rules.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/disable_introspection.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/disable_validation.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/max_tokens.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/pyinstrument.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/tracing/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/fastapi/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/mutation.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/types.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/field_extensions/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/field_extensions/input_mutation.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/file_uploads/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/file_uploads/scalars.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/file_uploads/utils.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688/strawberry/ext/dataclasses → strawberry_graphql-0.284.3/strawberry/flask}/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/parse_content_type.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/temporal_response.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/typevars.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/litestar/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/parent.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/printer/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/py.typed +0 -0
- {strawberry_graphql-0.279.0.dev1754138688/strawberry/flask → strawberry_graphql-0.284.3/strawberry/quart}/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/relay/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688/strawberry/quart → strawberry_graphql-0.284.3/strawberry/sanic}/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/types/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/types/scalar.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688/strawberry/sanic → strawberry_graphql-0.284.3/strawberry/schema/validation_rules}/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/validation_rules/one_of.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema_directives.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/static/apollo-sandbox.html +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/static/graphiql.html +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/static/pathfinder.html +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/streamable.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/subscriptions/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688/strawberry/schema/validation_rules → strawberry_graphql-0.284.3/strawberry/subscriptions/protocols}/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688/strawberry/subscriptions/protocols → strawberry_graphql-0.284.3/strawberry/subscriptions/protocols/graphql_ws}/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/test/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/tools/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/tools/merge_types.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/cast.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688/strawberry/subscriptions/protocols/graphql_ws → strawberry_graphql-0.284.3/strawberry/types/fields}/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/graphql.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/private.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/type_resolver.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/unset.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/__init__.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/locate_definition.py +0 -0
- {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/str_converters.py +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: strawberry-graphql
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.284.3
|
|
4
4
|
Summary: A library for creating GraphQL APIs
|
|
5
5
|
License: MIT
|
|
6
|
+
License-File: LICENSE
|
|
6
7
|
Keywords: graphql,api,rest,starlette,async
|
|
7
8
|
Author: Patrick Arminio
|
|
8
9
|
Author-email: patrick.arminio@gmail.com
|
|
9
|
-
Requires-Python: >=3.
|
|
10
|
+
Requires-Python: >=3.10,<4.0
|
|
10
11
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
12
|
Classifier: Intended Audience :: Developers
|
|
12
13
|
Classifier: Topic :: Software Development :: Libraries
|
|
@@ -37,6 +38,7 @@ Requires-Dist: channels (>=3.0.5) ; extra == "channels"
|
|
|
37
38
|
Requires-Dist: fastapi (>=0.65.2) ; extra == "fastapi"
|
|
38
39
|
Requires-Dist: flask (>=1.1) ; extra == "flask"
|
|
39
40
|
Requires-Dist: graphql-core (>=3.2.0,<3.4.0)
|
|
41
|
+
Requires-Dist: lia-web (>=0.2.1)
|
|
40
42
|
Requires-Dist: libcst ; extra == "cli"
|
|
41
43
|
Requires-Dist: libcst ; extra == "debug"
|
|
42
44
|
Requires-Dist: libcst ; extra == "debug-server"
|
|
@@ -50,6 +52,7 @@ Requires-Dist: pygments (>=2.3,<3.0) ; extra == "debug-server"
|
|
|
50
52
|
Requires-Dist: pyinstrument (>=4.0.0) ; extra == "pyinstrument"
|
|
51
53
|
Requires-Dist: python-dateutil (>=2.7,<3.0)
|
|
52
54
|
Requires-Dist: python-multipart (>=0.0.7) ; extra == "asgi"
|
|
55
|
+
Requires-Dist: python-multipart (>=0.0.7) ; extra == "cli"
|
|
53
56
|
Requires-Dist: python-multipart (>=0.0.7) ; extra == "debug-server"
|
|
54
57
|
Requires-Dist: python-multipart (>=0.0.7) ; extra == "fastapi"
|
|
55
58
|
Requires-Dist: quart (>=0.19.3) ; extra == "quart"
|
|
@@ -58,11 +61,14 @@ Requires-Dist: rich (>=12.0.0) ; extra == "debug"
|
|
|
58
61
|
Requires-Dist: rich (>=12.0.0) ; extra == "debug-server"
|
|
59
62
|
Requires-Dist: sanic (>=20.12.2) ; extra == "sanic"
|
|
60
63
|
Requires-Dist: starlette (>=0.18.0) ; extra == "asgi"
|
|
64
|
+
Requires-Dist: starlette (>=0.18.0) ; extra == "cli"
|
|
61
65
|
Requires-Dist: starlette (>=0.18.0) ; extra == "debug-server"
|
|
62
66
|
Requires-Dist: typer (>=0.7.0) ; extra == "cli"
|
|
63
67
|
Requires-Dist: typer (>=0.7.0) ; extra == "debug-server"
|
|
64
68
|
Requires-Dist: typing-extensions (>=4.5.0)
|
|
69
|
+
Requires-Dist: uvicorn (>=0.11.6) ; extra == "cli"
|
|
65
70
|
Requires-Dist: uvicorn (>=0.11.6) ; extra == "debug-server"
|
|
71
|
+
Requires-Dist: websockets (>=15.0.1,<16) ; extra == "cli"
|
|
66
72
|
Requires-Dist: websockets (>=15.0.1,<16) ; extra == "debug-server"
|
|
67
73
|
Project-URL: Changelog, https://strawberry.rocks/changelog
|
|
68
74
|
Project-URL: Documentation, https://strawberry.rocks/
|
|
@@ -91,7 +97,7 @@ The quick start method provides a server and CLI to get going quickly. Install
|
|
|
91
97
|
with:
|
|
92
98
|
|
|
93
99
|
```shell
|
|
94
|
-
pip install "strawberry-graphql[
|
|
100
|
+
pip install "strawberry-graphql[cli]"
|
|
95
101
|
```
|
|
96
102
|
|
|
97
103
|
## Getting Started
|
|
@@ -121,13 +127,13 @@ schema = strawberry.Schema(query=Query)
|
|
|
121
127
|
This will create a GraphQL schema defining a `User` type and a single query
|
|
122
128
|
field `user` that will return a hardcoded user.
|
|
123
129
|
|
|
124
|
-
To
|
|
130
|
+
To serve the schema using the dev server run the following command:
|
|
125
131
|
|
|
126
132
|
```shell
|
|
127
|
-
strawberry
|
|
133
|
+
strawberry dev app
|
|
128
134
|
```
|
|
129
135
|
|
|
130
|
-
Open the
|
|
136
|
+
Open the dev server by clicking on the following link:
|
|
131
137
|
[http://0.0.0.0:8000/graphql](http://0.0.0.0:8000/graphql)
|
|
132
138
|
|
|
133
139
|
This will open GraphiQL where you can test the API.
|
|
@@ -184,7 +190,7 @@ get started follow these steps:
|
|
|
184
190
|
```shell
|
|
185
191
|
git clone https://github.com/strawberry-graphql/strawberry
|
|
186
192
|
cd strawberry
|
|
187
|
-
poetry install
|
|
193
|
+
poetry install
|
|
188
194
|
poetry run pytest
|
|
189
195
|
```
|
|
190
196
|
|
|
@@ -14,7 +14,7 @@ The quick start method provides a server and CLI to get going quickly. Install
|
|
|
14
14
|
with:
|
|
15
15
|
|
|
16
16
|
```shell
|
|
17
|
-
pip install "strawberry-graphql[
|
|
17
|
+
pip install "strawberry-graphql[cli]"
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
## Getting Started
|
|
@@ -44,13 +44,13 @@ schema = strawberry.Schema(query=Query)
|
|
|
44
44
|
This will create a GraphQL schema defining a `User` type and a single query
|
|
45
45
|
field `user` that will return a hardcoded user.
|
|
46
46
|
|
|
47
|
-
To
|
|
47
|
+
To serve the schema using the dev server run the following command:
|
|
48
48
|
|
|
49
49
|
```shell
|
|
50
|
-
strawberry
|
|
50
|
+
strawberry dev app
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
Open the
|
|
53
|
+
Open the dev server by clicking on the following link:
|
|
54
54
|
[http://0.0.0.0:8000/graphql](http://0.0.0.0:8000/graphql)
|
|
55
55
|
|
|
56
56
|
This will open GraphiQL where you can test the API.
|
|
@@ -107,7 +107,7 @@ get started follow these steps:
|
|
|
107
107
|
```shell
|
|
108
108
|
git clone https://github.com/strawberry-graphql/strawberry
|
|
109
109
|
cd strawberry
|
|
110
|
-
poetry install
|
|
110
|
+
poetry install
|
|
111
111
|
poetry run pytest
|
|
112
112
|
```
|
|
113
113
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "strawberry-graphql"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.284.3"
|
|
4
4
|
description = "A library for creating GraphQL APIs"
|
|
5
5
|
authors = [{ name = "Patrick Arminio", email = "patrick.arminio@gmail.com" }]
|
|
6
6
|
license = { text = "MIT" }
|
|
@@ -13,12 +13,13 @@ classifiers = [
|
|
|
13
13
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
14
14
|
"License :: OSI Approved :: MIT License",
|
|
15
15
|
]
|
|
16
|
-
requires-python = ">=3.
|
|
16
|
+
requires-python = ">=3.10,<4.0"
|
|
17
17
|
dependencies = [
|
|
18
18
|
"graphql-core>=3.2.0,<3.4.0",
|
|
19
19
|
"typing-extensions>=4.5.0",
|
|
20
20
|
"python-dateutil~=2.7",
|
|
21
21
|
"packaging>=23",
|
|
22
|
+
"lia-web (>=0.2.1)",
|
|
22
23
|
]
|
|
23
24
|
|
|
24
25
|
[project.urls]
|
|
@@ -58,79 +59,88 @@ pydantic = ["pydantic>1.6.1"]
|
|
|
58
59
|
sanic = ["sanic>=20.12.2"]
|
|
59
60
|
fastapi = ["fastapi>=0.65.2", "python-multipart>=0.0.7"]
|
|
60
61
|
chalice = ["chalice~=1.22"]
|
|
61
|
-
cli = [
|
|
62
|
+
cli = [
|
|
63
|
+
"typer>=0.7.0",
|
|
64
|
+
"pygments~=2.3",
|
|
65
|
+
"rich>=12.0.0",
|
|
66
|
+
"libcst",
|
|
67
|
+
"starlette>=0.18.0",
|
|
68
|
+
"uvicorn>=0.11.6",
|
|
69
|
+
"websockets>=15.0.1,<16",
|
|
70
|
+
"python-multipart>=0.0.7",
|
|
71
|
+
]
|
|
62
72
|
litestar = ["litestar>=2; python_version~='3.10'"]
|
|
63
73
|
pyinstrument = ["pyinstrument>=4.0.0"]
|
|
64
74
|
|
|
75
|
+
[dependency-groups]
|
|
76
|
+
dev = [
|
|
77
|
+
"ruff (>=0.14.1,<0.15.0)",
|
|
78
|
+
"asgiref (>=3.2,<4.0)",
|
|
79
|
+
"email-validator (>=1.1.3,<3.0.0)",
|
|
80
|
+
"freezegun (>=1.2.1,<2.0.0)",
|
|
81
|
+
"libcst (>=1.8.2,<2.0.0)",
|
|
82
|
+
"markupsafe (==2.1.3)",
|
|
83
|
+
"nox (>=2024.4.15,<2025.0.0)",
|
|
84
|
+
"nox-poetry (>=1.0.3,<2.0.0)",
|
|
85
|
+
"opentelemetry-api (<2)",
|
|
86
|
+
"opentelemetry-sdk (<2)",
|
|
87
|
+
"pygments (>=2.3,<3.0)",
|
|
88
|
+
"pyinstrument (>=4.0.0)",
|
|
89
|
+
"pytest (>=7.2,<8.0)",
|
|
90
|
+
"pytest-asyncio (>=0.20.3)",
|
|
91
|
+
"pytest-codspeed (>=3.0.0)",
|
|
92
|
+
"pytest-cov (>=4.0.0,<5.0.0)",
|
|
93
|
+
"pytest-emoji (>=0.2.0,<0.3.0)",
|
|
94
|
+
"pytest-mock (>=3.10,<4.0)",
|
|
95
|
+
"pytest-snapshot (>=0.9.0,<0.10.0)",
|
|
96
|
+
"pytest-xdist[psutil] (>=3.1.0,<4.0.0)",
|
|
97
|
+
"python-multipart (>=0.0.7)",
|
|
98
|
+
"rich (>=12.5.1)",
|
|
99
|
+
"sanic-testing (>=22.9,<24.0)",
|
|
100
|
+
"typer (>=0.7.0)",
|
|
101
|
+
"types-aiofiles (>=24.1.0.20250326,<25.0.0.0)",
|
|
102
|
+
"types-certifi (>=2021.10.8,<2022.0.0)",
|
|
103
|
+
"types-chardet (>=5.0.4,<6.0.0)",
|
|
104
|
+
"types-freezegun (>=1.1.9,<2.0.0)",
|
|
105
|
+
"types-python-dateutil (>=2.8.19,<3.0.0)",
|
|
106
|
+
"types-toml (>=0.10.8,<0.11.0)",
|
|
107
|
+
"types-typed-ast (>=1.5.8,<2.0.0)",
|
|
108
|
+
"types-ujson (>=5.10.0.20250326,<6.0.0.0)",
|
|
109
|
+
"types-protobuf (>=5.29.1.20250403,<6.0.0.0)",
|
|
110
|
+
"poetry-plugin-export (>=1.6.0,<2.0.0)",
|
|
111
|
+
# another bug in poetry
|
|
112
|
+
"urllib3 (<2)",
|
|
113
|
+
"inline-snapshot (>=0.10.1,<0.11.0)",
|
|
114
|
+
"types-deprecated (>=1.2.15.20241117,<2.0.0.0)",
|
|
115
|
+
"types-six (>=1.17.0.20250403,<2.0.0.0)",
|
|
116
|
+
"types-pyyaml (>=6.0.12.20240917,<7.0.0.0)",
|
|
117
|
+
"mypy (>=1.15.0,<2.0.0)",
|
|
118
|
+
"pyright (==1.1.401)",
|
|
119
|
+
"codeflash (>=0.9.2)",
|
|
120
|
+
"pre-commit",
|
|
121
|
+
]
|
|
122
|
+
integrations = [
|
|
123
|
+
"aiohttp (>=3.7.4.post0,<4.0.0)",
|
|
124
|
+
"chalice (>=1.22,<2.0)",
|
|
125
|
+
"channels (>=3.0.5,<5.0.0)",
|
|
126
|
+
"django (>=3.2)",
|
|
127
|
+
"fastapi (>=0.65.0)",
|
|
128
|
+
"flask (>=1.1)",
|
|
129
|
+
"quart (>=0.19.3)",
|
|
130
|
+
"pydantic (>=2.0)",
|
|
131
|
+
"pytest-aiohttp (>=1.0.3,<2.0.0)",
|
|
132
|
+
"pytest-django (>=4.5,<5.0)",
|
|
133
|
+
"sanic (>=20.12.2)",
|
|
134
|
+
"starlette (>=0.13.6)",
|
|
135
|
+
"litestar (>=2) ; python_version >= \"3.10\"",
|
|
136
|
+
"uvicorn (>=0.11.6)",
|
|
137
|
+
"daphne (>=4.0.0,<5.0.0)",
|
|
138
|
+
]
|
|
139
|
+
|
|
65
140
|
[tool.poetry]
|
|
66
141
|
packages = [{ include = "strawberry" }]
|
|
67
142
|
include = ["strawberry/py.typed"]
|
|
68
143
|
|
|
69
|
-
[tool.poetry.group.dev.dependencies]
|
|
70
|
-
ruff = "^0.12.3"
|
|
71
|
-
asgiref = "^3.2"
|
|
72
|
-
email-validator = { version = ">=1.1.3,<3.0.0", optional = false }
|
|
73
|
-
freezegun = "^1.2.1"
|
|
74
|
-
libcst = { version = "^1.8.2", optional = false }
|
|
75
|
-
MarkupSafe = "2.1.3"
|
|
76
|
-
nox = "^2024.4.15"
|
|
77
|
-
nox-poetry = "^1.0.3"
|
|
78
|
-
opentelemetry-api = "<2"
|
|
79
|
-
opentelemetry-sdk = "<2"
|
|
80
|
-
pygments = "^2.3"
|
|
81
|
-
pyinstrument = { version = ">=4.0.0", optional = false }
|
|
82
|
-
pytest = "^7.2"
|
|
83
|
-
pytest-asyncio = ">=0.20.3"
|
|
84
|
-
pytest-codspeed = { version = ">=3.0.0", python = ">=3.9" }
|
|
85
|
-
pytest-cov = "^4.0.0"
|
|
86
|
-
pytest-emoji = "^0.2.0"
|
|
87
|
-
pytest-mock = "^3.10"
|
|
88
|
-
pytest-snapshot = "^0.9.0"
|
|
89
|
-
pytest-xdist = { extras = ["psutil"], version = "^3.1.0" }
|
|
90
|
-
python-multipart = ">=0.0.7"
|
|
91
|
-
rich = { version = ">=12.5.1", optional = false }
|
|
92
|
-
sanic-testing = ">=22.9,<24.0"
|
|
93
|
-
typer = { version = ">=0.7.0", optional = false }
|
|
94
|
-
types-aiofiles = "^24.1.0.20250326"
|
|
95
|
-
types-certifi = "^2021.10.8"
|
|
96
|
-
types-chardet = "^5.0.4"
|
|
97
|
-
types-freezegun = "^1.1.9"
|
|
98
|
-
types-python-dateutil = "^2.8.19"
|
|
99
|
-
types-toml = "^0.10.8"
|
|
100
|
-
types-typed-ast = "^1.5.8"
|
|
101
|
-
types-ujson = "^5.10.0.20250326"
|
|
102
|
-
types-protobuf = "^5.29.1.20250403"
|
|
103
|
-
poetry-plugin-export = { version = "^1.6.0", python = "<4.0", optional = false }
|
|
104
|
-
# another bug in poetry
|
|
105
|
-
urllib3 = "<2"
|
|
106
|
-
inline-snapshot = "^0.10.1"
|
|
107
|
-
types-deprecated = "^1.2.15.20241117"
|
|
108
|
-
types-six = "^1.17.0.20250403"
|
|
109
|
-
types-pyyaml = "^6.0.12.20240917"
|
|
110
|
-
mypy = "^1.15.0"
|
|
111
|
-
pyright = "1.1.401"
|
|
112
|
-
codeflash = ">=0.9.2"
|
|
113
|
-
|
|
114
|
-
[tool.poetry.group.integrations]
|
|
115
|
-
optional = true
|
|
116
|
-
|
|
117
|
-
[tool.poetry.group.integrations.dependencies]
|
|
118
|
-
aiohttp = "^3.7.4.post0"
|
|
119
|
-
chalice = { version = "^1.22" }
|
|
120
|
-
channels = ">=3.0.5,<5.0.0"
|
|
121
|
-
Django = ">=3.2"
|
|
122
|
-
fastapi = { version = ">=0.65.0", optional = false }
|
|
123
|
-
flask = ">=1.1"
|
|
124
|
-
quart = ">=0.19.3"
|
|
125
|
-
pydantic = { version = ">=2.0", optional = false }
|
|
126
|
-
pytest-aiohttp = "^1.0.3"
|
|
127
|
-
pytest-django = { version = "^4.5" }
|
|
128
|
-
sanic = ">=20.12.2"
|
|
129
|
-
starlette = ">=0.13.6"
|
|
130
|
-
litestar = { version = ">=2", python = ">=3.10,<4.0", optional = false }
|
|
131
|
-
uvicorn = ">=0.11.6"
|
|
132
|
-
daphne = "^4.0.0"
|
|
133
|
-
|
|
134
144
|
[tool.pytest.ini_options]
|
|
135
145
|
addopts = "--emoji"
|
|
136
146
|
DJANGO_SETTINGS_MODULE = "tests.django.django_settings"
|
|
@@ -181,12 +191,12 @@ append-github-contributor = true
|
|
|
181
191
|
exclude = ["**/__pycache__", "**/.venv", "**/.pytest_cache", "**/.nox"]
|
|
182
192
|
reportMissingImports = true
|
|
183
193
|
reportMissingTypeStubs = false
|
|
184
|
-
pythonVersion = "3.
|
|
194
|
+
pythonVersion = "3.10"
|
|
185
195
|
stubPath = ""
|
|
186
196
|
|
|
187
197
|
[tool.ruff]
|
|
188
198
|
line-length = 88
|
|
189
|
-
target-version = "
|
|
199
|
+
target-version = "py310"
|
|
190
200
|
fix = true
|
|
191
201
|
exclude = [
|
|
192
202
|
".bzr",
|
|
@@ -215,13 +225,8 @@ src = ["strawberry", "tests"]
|
|
|
215
225
|
[tool.ruff.lint]
|
|
216
226
|
select = ["ALL"]
|
|
217
227
|
ignore = [
|
|
218
|
-
#
|
|
219
|
-
|
|
220
|
-
# after we drop support for Python 3.9
|
|
221
|
-
"UP006",
|
|
222
|
-
"UP007",
|
|
223
|
-
"UP045",
|
|
224
|
-
|
|
228
|
+
# × this should be fine to use :)
|
|
229
|
+
"RUF002",
|
|
225
230
|
# we use asserts in tests and to hint mypy
|
|
226
231
|
"S101",
|
|
227
232
|
|
|
@@ -329,7 +334,6 @@ ignore = [
|
|
|
329
334
|
"W191",
|
|
330
335
|
"PLR0915",
|
|
331
336
|
]
|
|
332
|
-
exclude = ["tests/python_312/*"] # SyntaxError because we support Python 3.9+
|
|
333
337
|
|
|
334
338
|
[tool.ruff.lint.per-file-ignores]
|
|
335
339
|
".github/*" = ["INP001"]
|
|
@@ -363,11 +367,24 @@ exclude = ["tests/python_312/*"] # SyntaxError because we support Python 3.9+
|
|
|
363
367
|
"TCH002",
|
|
364
368
|
"TCH003",
|
|
365
369
|
"TRY002",
|
|
370
|
+
"UP007",
|
|
371
|
+
"UP045",
|
|
366
372
|
]
|
|
367
373
|
|
|
368
374
|
[tool.ruff.lint.isort]
|
|
369
375
|
known-first-party = ["strawberry"]
|
|
370
|
-
known-third-party = [
|
|
376
|
+
known-third-party = [
|
|
377
|
+
"django",
|
|
378
|
+
"graphql",
|
|
379
|
+
"fastapi",
|
|
380
|
+
"pydantic",
|
|
381
|
+
"litestar",
|
|
382
|
+
"aiohttp",
|
|
383
|
+
"channels",
|
|
384
|
+
"sanic",
|
|
385
|
+
"chalice",
|
|
386
|
+
"quart",
|
|
387
|
+
]
|
|
371
388
|
extra-standard-library = ["typing_extensions"]
|
|
372
389
|
|
|
373
390
|
[tool.ruff.format]
|
{strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/__init__.py
RENAMED
|
@@ -4,7 +4,7 @@ Strawberry is a Python library for GraphQL that aims to stay close to the GraphQ
|
|
|
4
4
|
specification and allow for a more natural way of defining GraphQL schemas.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
from . import experimental, federation,
|
|
7
|
+
from . import experimental, federation, relay
|
|
8
8
|
from .directive import directive, directive_field
|
|
9
9
|
from .parent import Parent
|
|
10
10
|
from .permission import BasePermission
|
|
@@ -54,7 +54,6 @@ __all__ = [
|
|
|
54
54
|
"interface",
|
|
55
55
|
"lazy",
|
|
56
56
|
"mutation",
|
|
57
|
-
"pydantic",
|
|
58
57
|
"relay",
|
|
59
58
|
"scalar",
|
|
60
59
|
"schema_directive",
|
|
@@ -1,27 +1,20 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import warnings
|
|
4
|
-
from typing import
|
|
5
|
-
TYPE_CHECKING,
|
|
6
|
-
Any,
|
|
7
|
-
Optional,
|
|
8
|
-
)
|
|
4
|
+
from typing import Any
|
|
9
5
|
|
|
10
6
|
from strawberry.test.client import BaseGraphQLTestClient, Response
|
|
11
7
|
|
|
12
|
-
if TYPE_CHECKING:
|
|
13
|
-
from collections.abc import Mapping
|
|
14
|
-
|
|
15
8
|
|
|
16
9
|
class GraphQLTestClient(BaseGraphQLTestClient):
|
|
17
10
|
async def query(
|
|
18
11
|
self,
|
|
19
12
|
query: str,
|
|
20
|
-
variables:
|
|
21
|
-
headers:
|
|
22
|
-
asserts_errors:
|
|
23
|
-
files:
|
|
24
|
-
assert_no_errors:
|
|
13
|
+
variables: dict[str, Any] | None = None,
|
|
14
|
+
headers: dict[str, object] | None = None,
|
|
15
|
+
asserts_errors: bool | None = None,
|
|
16
|
+
files: dict[str, object] | None = None,
|
|
17
|
+
assert_no_errors: bool | None = True,
|
|
25
18
|
) -> Response:
|
|
26
19
|
body = self._build_body(query, variables, files)
|
|
27
20
|
|
|
@@ -54,8 +47,8 @@ class GraphQLTestClient(BaseGraphQLTestClient):
|
|
|
54
47
|
async def request(
|
|
55
48
|
self,
|
|
56
49
|
body: dict[str, object],
|
|
57
|
-
headers:
|
|
58
|
-
files:
|
|
50
|
+
headers: dict[str, object] | None = None,
|
|
51
|
+
files: dict[str, object] | None = None,
|
|
59
52
|
) -> Any:
|
|
60
53
|
return await self._client.post(
|
|
61
54
|
self.url,
|
{strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/aiohttp/views.py
RENAMED
|
@@ -3,32 +3,24 @@ from __future__ import annotations
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import warnings
|
|
5
5
|
from datetime import timedelta
|
|
6
|
-
from io import BytesIO
|
|
7
6
|
from json.decoder import JSONDecodeError
|
|
8
7
|
from typing import (
|
|
9
8
|
TYPE_CHECKING,
|
|
10
|
-
|
|
11
|
-
Callable,
|
|
12
|
-
Optional,
|
|
13
|
-
Union,
|
|
14
|
-
cast,
|
|
9
|
+
TypeGuard,
|
|
15
10
|
)
|
|
16
|
-
from typing_extensions import TypeGuard
|
|
17
11
|
|
|
18
12
|
from aiohttp import ClientConnectionResetError, http, web
|
|
19
|
-
from
|
|
13
|
+
from lia import AiohttpHTTPRequestAdapter, HTTPException
|
|
14
|
+
|
|
20
15
|
from strawberry.http.async_base_view import (
|
|
21
16
|
AsyncBaseHTTPView,
|
|
22
|
-
AsyncHTTPRequestAdapter,
|
|
23
17
|
AsyncWebSocketAdapter,
|
|
24
18
|
)
|
|
25
19
|
from strawberry.http.exceptions import (
|
|
26
|
-
HTTPException,
|
|
27
20
|
NonJsonMessageReceived,
|
|
28
21
|
NonTextMessageReceived,
|
|
29
22
|
WebSocketDisconnected,
|
|
30
23
|
)
|
|
31
|
-
from strawberry.http.types import FormData, HTTPMethod, QueryParams
|
|
32
24
|
from strawberry.http.typevars import (
|
|
33
25
|
Context,
|
|
34
26
|
RootValue,
|
|
@@ -36,54 +28,13 @@ from strawberry.http.typevars import (
|
|
|
36
28
|
from strawberry.subscriptions import GRAPHQL_TRANSPORT_WS_PROTOCOL, GRAPHQL_WS_PROTOCOL
|
|
37
29
|
|
|
38
30
|
if TYPE_CHECKING:
|
|
39
|
-
from collections.abc import AsyncGenerator, Mapping, Sequence
|
|
31
|
+
from collections.abc import AsyncGenerator, Callable, Mapping, Sequence
|
|
40
32
|
|
|
41
33
|
from strawberry.http import GraphQLHTTPResponse
|
|
42
34
|
from strawberry.http.ides import GraphQL_IDE
|
|
43
35
|
from strawberry.schema import BaseSchema
|
|
44
36
|
|
|
45
37
|
|
|
46
|
-
class AiohttpHTTPRequestAdapter(AsyncHTTPRequestAdapter):
|
|
47
|
-
def __init__(self, request: web.Request) -> None:
|
|
48
|
-
self.request = request
|
|
49
|
-
|
|
50
|
-
@property
|
|
51
|
-
def query_params(self) -> QueryParams:
|
|
52
|
-
return self.request.query.copy() # type: ignore[attr-defined]
|
|
53
|
-
|
|
54
|
-
async def get_body(self) -> str:
|
|
55
|
-
return (await self.request.content.read()).decode()
|
|
56
|
-
|
|
57
|
-
@property
|
|
58
|
-
def method(self) -> HTTPMethod:
|
|
59
|
-
return cast("HTTPMethod", self.request.method.upper())
|
|
60
|
-
|
|
61
|
-
@property
|
|
62
|
-
def headers(self) -> Mapping[str, str]:
|
|
63
|
-
return self.request.headers
|
|
64
|
-
|
|
65
|
-
async def get_form_data(self) -> FormData:
|
|
66
|
-
reader = await self.request.multipart()
|
|
67
|
-
|
|
68
|
-
data: dict[str, Any] = {}
|
|
69
|
-
files: dict[str, Any] = {}
|
|
70
|
-
|
|
71
|
-
while field := await reader.next():
|
|
72
|
-
assert isinstance(field, BodyPartReader)
|
|
73
|
-
assert field.name
|
|
74
|
-
|
|
75
|
-
if field.filename:
|
|
76
|
-
files[field.name] = BytesIO(await field.read(decode=False))
|
|
77
|
-
else:
|
|
78
|
-
data[field.name] = await field.text()
|
|
79
|
-
|
|
80
|
-
return FormData(files=files, form=data)
|
|
81
|
-
|
|
82
|
-
@property
|
|
83
|
-
def content_type(self) -> Optional[str]:
|
|
84
|
-
return self.headers.get("content-type")
|
|
85
|
-
|
|
86
|
-
|
|
87
38
|
class AiohttpWebSocketAdapter(AsyncWebSocketAdapter):
|
|
88
39
|
def __init__(
|
|
89
40
|
self, view: AsyncBaseHTTPView, request: web.Request, ws: web.WebSocketResponse
|
|
@@ -119,7 +70,7 @@ class AiohttpWebSocketAdapter(AsyncWebSocketAdapter):
|
|
|
119
70
|
class GraphQLView(
|
|
120
71
|
AsyncBaseHTTPView[
|
|
121
72
|
web.Request,
|
|
122
|
-
|
|
73
|
+
web.Response | web.StreamResponse,
|
|
123
74
|
web.Response,
|
|
124
75
|
web.Request,
|
|
125
76
|
web.WebSocketResponse,
|
|
@@ -133,17 +84,16 @@ class GraphQLView(
|
|
|
133
84
|
|
|
134
85
|
allow_queries_via_get = True
|
|
135
86
|
request_adapter_class = AiohttpHTTPRequestAdapter
|
|
136
|
-
websocket_adapter_class = AiohttpWebSocketAdapter
|
|
87
|
+
websocket_adapter_class = AiohttpWebSocketAdapter # type: ignore
|
|
137
88
|
|
|
138
89
|
def __init__(
|
|
139
90
|
self,
|
|
140
91
|
schema: BaseSchema,
|
|
141
|
-
graphiql:
|
|
142
|
-
graphql_ide:
|
|
92
|
+
graphiql: bool | None = None,
|
|
93
|
+
graphql_ide: GraphQL_IDE | None = "graphiql",
|
|
143
94
|
allow_queries_via_get: bool = True,
|
|
144
95
|
keep_alive: bool = True,
|
|
145
96
|
keep_alive_interval: float = 1,
|
|
146
|
-
debug: bool = False,
|
|
147
97
|
subscription_protocols: Sequence[str] = (
|
|
148
98
|
GRAPHQL_TRANSPORT_WS_PROTOCOL,
|
|
149
99
|
GRAPHQL_WS_PROTOCOL,
|
|
@@ -155,7 +105,6 @@ class GraphQLView(
|
|
|
155
105
|
self.allow_queries_via_get = allow_queries_via_get
|
|
156
106
|
self.keep_alive = keep_alive
|
|
157
107
|
self.keep_alive_interval = keep_alive_interval
|
|
158
|
-
self.debug = debug
|
|
159
108
|
self.subscription_protocols = subscription_protocols
|
|
160
109
|
self.connection_init_wait_timeout = connection_init_wait_timeout
|
|
161
110
|
self.multipart_uploads_enabled = multipart_uploads_enabled
|
|
@@ -180,12 +129,12 @@ class GraphQLView(
|
|
|
180
129
|
ws = web.WebSocketResponse(protocols=self.subscription_protocols)
|
|
181
130
|
return ws.can_prepare(request).ok
|
|
182
131
|
|
|
183
|
-
async def pick_websocket_subprotocol(self, request: web.Request) ->
|
|
132
|
+
async def pick_websocket_subprotocol(self, request: web.Request) -> str | None:
|
|
184
133
|
ws = web.WebSocketResponse(protocols=self.subscription_protocols)
|
|
185
134
|
return ws.can_prepare(request).protocol
|
|
186
135
|
|
|
187
136
|
async def create_websocket_response(
|
|
188
|
-
self, request: web.Request, subprotocol:
|
|
137
|
+
self, request: web.Request, subprotocol: str | None
|
|
189
138
|
) -> web.WebSocketResponse:
|
|
190
139
|
protocols = [subprotocol] if subprotocol else []
|
|
191
140
|
ws = web.WebSocketResponse(protocols=protocols)
|
|
@@ -201,17 +150,17 @@ class GraphQLView(
|
|
|
201
150
|
status=e.status_code,
|
|
202
151
|
)
|
|
203
152
|
|
|
204
|
-
async def get_root_value(self, request: web.Request) ->
|
|
153
|
+
async def get_root_value(self, request: web.Request) -> RootValue | None:
|
|
205
154
|
return None
|
|
206
155
|
|
|
207
156
|
async def get_context(
|
|
208
|
-
self, request: web.Request, response:
|
|
157
|
+
self, request: web.Request, response: web.Response | web.WebSocketResponse
|
|
209
158
|
) -> Context:
|
|
210
159
|
return {"request": request, "response": response} # type: ignore
|
|
211
160
|
|
|
212
161
|
def create_response(
|
|
213
162
|
self,
|
|
214
|
-
response_data:
|
|
163
|
+
response_data: GraphQLHTTPResponse | list[GraphQLHTTPResponse],
|
|
215
164
|
sub_response: web.Response,
|
|
216
165
|
) -> web.Response:
|
|
217
166
|
sub_response.text = self.encode_json(response_data)
|