strawberry-graphql 0.220.0.dev1709543239__tar.gz → 0.221.0__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.220.0.dev1709543239 → strawberry_graphql-0.221.0}/PKG-INFO +1 -1
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/pyproject.toml +2 -2
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/__init__.py +2 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/channels/testing.py +5 -1
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/field_extensions/input_mutation.py +1 -1
- strawberry_graphql-0.221.0/strawberry/schema/execute.py +263 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/types/fields/resolver.py +1 -1
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/types/info.py +3 -3
- strawberry_graphql-0.220.0.dev1709543239/strawberry/schema/execute.py +0 -274
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/LICENSE +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/README.md +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/__main__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/aiohttp/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/aiohttp/handlers/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/aiohttp/handlers/graphql_transport_ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/aiohttp/handlers/graphql_ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/aiohttp/test/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/aiohttp/test/client.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/aiohttp/views.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/annotation.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/arguments.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/asgi/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/asgi/handlers/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/asgi/handlers/graphql_transport_ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/asgi/handlers/graphql_ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/asgi/test/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/asgi/test/client.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/auto.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/chalice/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/chalice/views.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/channels/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/channels/handlers/base.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/channels/handlers/graphql_transport_ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/channels/handlers/graphql_ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/channels/handlers/http_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/channels/handlers/ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/channels/router.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/app.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/commands/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/commands/codegen.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/commands/export_schema.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/commands/schema_codegen.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/commands/server.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/commands/upgrade/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/commands/upgrade/_run_codemod.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/constants.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/debug_server.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/utils/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/cli/utils/load_schema.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/codegen/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/codegen/exceptions.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/codegen/plugins/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/codegen/plugins/print_operation.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/codegen/plugins/python.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/codegen/plugins/typescript.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/codegen/query_codegen.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/codegen/types.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/codemods/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/codemods/annotated_unions.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/custom_scalar.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/dataloader.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/directive.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/django/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/django/apps.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/django/context.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/django/test/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/django/test/client.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/django/views.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/enum.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/conflicting_arguments.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/duplicated_type_name.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/exception.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/exception_source.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/invalid_argument_type.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/invalid_union_type.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/missing_arguments_annotations.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/missing_field_annotation.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/missing_return_annotation.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/not_a_strawberry_enum.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/object_is_not_a_class.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/object_is_not_an_enum.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/permission_fail_silently_requires_optional.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/private_strawberry_field.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/scalar_already_registered.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/syntax.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/unresolved_field_type.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/utils/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/exceptions/utils/source_finder.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/experimental/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/experimental/pydantic/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/experimental/pydantic/_compat.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/experimental/pydantic/conversion.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/experimental/pydantic/conversion_types.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/experimental/pydantic/error_type.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/experimental/pydantic/exceptions.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/experimental/pydantic/fields.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/experimental/pydantic/object_type.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/experimental/pydantic/utils.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/ext/LICENSE +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/ext/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/ext/dataclasses/LICENSE +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/ext/dataclasses/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/ext/dataclasses/dataclasses.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/ext/mypy_plugin.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/add_validation_rules.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/base_extension.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/context.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/directives.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/disable_validation.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/field_extension.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/mask_errors.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/max_aliases.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/max_tokens.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/parser_cache.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/pyinstrument.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/query_depth_limiter.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/runner.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/tracing/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/tracing/apollo.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/tracing/datadog.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/tracing/opentelemetry.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/tracing/sentry.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/tracing/utils.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/utils.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/extensions/validation_cache.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/fastapi/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/fastapi/context.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/fastapi/handlers/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/fastapi/handlers/graphql_transport_ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/fastapi/handlers/graphql_ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/fastapi/router.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/federation/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/federation/argument.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/federation/enum.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/federation/field.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/federation/mutation.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/federation/object_type.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/federation/scalar.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/federation/schema.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/federation/schema_directive.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/federation/schema_directives.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/federation/types.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/federation/union.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/field.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/field_extensions/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/file_uploads/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/file_uploads/scalars.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/file_uploads/utils.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/flask/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/flask/views.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/http/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/http/async_base_view.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/http/base.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/http/exceptions.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/http/ides.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/http/sync_base_view.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/http/temporal_response.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/http/types.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/http/typevars.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/lazy_type.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/litestar/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/litestar/controller.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/litestar/handlers/graphql_transport_ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/litestar/handlers/graphql_ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/mutation.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/object_type.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/parent.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/permission.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/printer/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/printer/ast_from_value.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/printer/printer.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/private.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/py.typed +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/quart/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/quart/views.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/relay/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/relay/exceptions.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/relay/fields.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/relay/types.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/relay/utils.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/resolvers.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/sanic/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/sanic/context.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/sanic/utils.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/sanic/views.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/scalars.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema/base.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema/compat.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema/config.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema/exceptions.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema/name_converter.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema/schema.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema/schema_converter.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema/types/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema/types/base_scalars.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema/types/concrete_type.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema/types/scalar.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema_codegen/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/schema_directive.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/starlite/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/starlite/controller.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/starlite/handlers/graphql_transport_ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/starlite/handlers/graphql_ws_handler.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/static/apollo-sandbox.html +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/static/graphiql.html +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/static/pathfinder.html +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/subscriptions/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/subscriptions/protocols/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/subscriptions/protocols/graphql_ws/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/subscriptions/protocols/graphql_ws/types.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/test/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/test/client.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/tools/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/tools/create_type.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/tools/merge_types.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/type.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/types/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/types/execution.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/types/fields/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/types/graphql.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/types/nodes.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/types/type_resolver.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/types/types.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/union.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/unset.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/__init__.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/aio.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/await_maybe.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/dataclasses.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/debug.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/deprecations.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/graphql_lexer.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/importer.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/inspect.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/logging.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/operation.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/str_converters.py +0 -0
- {strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/utils/typing.py +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "strawberry-graphql"
|
3
3
|
packages = [ { include = "strawberry" } ]
|
4
|
-
version = "0.
|
4
|
+
version = "0.221.0"
|
5
5
|
description = "A library for creating GraphQL APIs"
|
6
6
|
authors = ["Patrick Arminio <patrick.arminio@gmail.com>"]
|
7
7
|
license = "MIT"
|
@@ -97,7 +97,7 @@ types-toml = "^0.10.8"
|
|
97
97
|
types-typed-ast = "^1.5.8"
|
98
98
|
types-ujson = "^5.6.0"
|
99
99
|
types-protobuf = "^4.23.0.1"
|
100
|
-
mypy = "1.
|
100
|
+
mypy = "1.9.0"
|
101
101
|
pytest-mypy-plugins = ">=1.10,<4.0"
|
102
102
|
poetry-plugin-export = "^1.6.0"
|
103
103
|
# another bug in poetry
|
{strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/__init__.py
RENAMED
@@ -14,6 +14,7 @@ from .private import Private
|
|
14
14
|
from .scalars import ID
|
15
15
|
from .schema import Schema
|
16
16
|
from .schema_directive import schema_directive
|
17
|
+
from .types.info import Info
|
17
18
|
from .union import union
|
18
19
|
from .unset import UNSET
|
19
20
|
|
@@ -21,6 +22,7 @@ __all__ = [
|
|
21
22
|
"BasePermission",
|
22
23
|
"experimental",
|
23
24
|
"ID",
|
25
|
+
"Info",
|
24
26
|
"UNSET",
|
25
27
|
"lazy",
|
26
28
|
"LazyType",
|
@@ -69,6 +69,7 @@ class GraphQLWebsocketCommunicator(WebsocketCommunicator):
|
|
69
69
|
path: str,
|
70
70
|
headers: Optional[List[Tuple[bytes, bytes]]] = None,
|
71
71
|
protocol: str = GRAPHQL_TRANSPORT_WS_PROTOCOL,
|
72
|
+
connection_params: dict = {},
|
72
73
|
**kwargs: Any,
|
73
74
|
):
|
74
75
|
"""
|
@@ -81,6 +82,7 @@ class GraphQLWebsocketCommunicator(WebsocketCommunicator):
|
|
81
82
|
self.protocol = protocol
|
82
83
|
subprotocols = kwargs.get("subprotocols", [])
|
83
84
|
subprotocols.append(protocol)
|
85
|
+
self.connection_params = connection_params
|
84
86
|
super().__init__(application, path, headers, subprotocols=subprotocols)
|
85
87
|
|
86
88
|
async def __aenter__(self) -> Self:
|
@@ -99,7 +101,9 @@ class GraphQLWebsocketCommunicator(WebsocketCommunicator):
|
|
99
101
|
res = await self.connect()
|
100
102
|
if self.protocol == GRAPHQL_TRANSPORT_WS_PROTOCOL:
|
101
103
|
assert res == (True, GRAPHQL_TRANSPORT_WS_PROTOCOL)
|
102
|
-
await self.send_json_to(
|
104
|
+
await self.send_json_to(
|
105
|
+
ConnectionInitMessage(payload=self.connection_params).as_dict()
|
106
|
+
)
|
103
107
|
response = await self.receive_json_from()
|
104
108
|
assert response == ConnectionAckMessage().as_dict()
|
105
109
|
else:
|
@@ -0,0 +1,263 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from asyncio import ensure_future
|
4
|
+
from inspect import isawaitable
|
5
|
+
from typing import (
|
6
|
+
TYPE_CHECKING,
|
7
|
+
Awaitable,
|
8
|
+
Callable,
|
9
|
+
Iterable,
|
10
|
+
List,
|
11
|
+
Optional,
|
12
|
+
Sequence,
|
13
|
+
Tuple,
|
14
|
+
Type,
|
15
|
+
TypedDict,
|
16
|
+
Union,
|
17
|
+
cast,
|
18
|
+
)
|
19
|
+
|
20
|
+
from graphql import GraphQLError, parse
|
21
|
+
from graphql import execute as original_execute
|
22
|
+
from graphql.validation import validate
|
23
|
+
|
24
|
+
from strawberry.exceptions import MissingQueryError
|
25
|
+
from strawberry.extensions.runner import SchemaExtensionsRunner
|
26
|
+
from strawberry.types import ExecutionResult
|
27
|
+
|
28
|
+
from .exceptions import InvalidOperationTypeError
|
29
|
+
|
30
|
+
if TYPE_CHECKING:
|
31
|
+
from typing_extensions import NotRequired, Unpack
|
32
|
+
|
33
|
+
from graphql import ExecutionContext as GraphQLExecutionContext
|
34
|
+
from graphql import ExecutionResult as GraphQLExecutionResult
|
35
|
+
from graphql import GraphQLSchema
|
36
|
+
from graphql.language import DocumentNode
|
37
|
+
from graphql.validation import ASTValidationRule
|
38
|
+
|
39
|
+
from strawberry.extensions import SchemaExtension
|
40
|
+
from strawberry.types import ExecutionContext
|
41
|
+
from strawberry.types.graphql import OperationType
|
42
|
+
|
43
|
+
|
44
|
+
# duplicated because of https://github.com/mkdocstrings/griffe-typingdoc/issues/7
|
45
|
+
class ParseOptions(TypedDict):
|
46
|
+
max_tokens: NotRequired[int]
|
47
|
+
|
48
|
+
|
49
|
+
def parse_document(query: str, **kwargs: Unpack[ParseOptions]) -> DocumentNode:
|
50
|
+
return parse(query, **kwargs)
|
51
|
+
|
52
|
+
|
53
|
+
def validate_document(
|
54
|
+
schema: GraphQLSchema,
|
55
|
+
document: DocumentNode,
|
56
|
+
validation_rules: Tuple[Type[ASTValidationRule], ...],
|
57
|
+
) -> List[GraphQLError]:
|
58
|
+
return validate(
|
59
|
+
schema,
|
60
|
+
document,
|
61
|
+
validation_rules,
|
62
|
+
)
|
63
|
+
|
64
|
+
|
65
|
+
def _run_validation(execution_context: ExecutionContext) -> None:
|
66
|
+
# Check if there are any validation rules or if validation has
|
67
|
+
# already been run by an extension
|
68
|
+
if len(execution_context.validation_rules) > 0 and execution_context.errors is None:
|
69
|
+
assert execution_context.graphql_document
|
70
|
+
execution_context.errors = validate_document(
|
71
|
+
execution_context.schema._schema,
|
72
|
+
execution_context.graphql_document,
|
73
|
+
execution_context.validation_rules,
|
74
|
+
)
|
75
|
+
|
76
|
+
|
77
|
+
async def execute(
|
78
|
+
schema: GraphQLSchema,
|
79
|
+
*,
|
80
|
+
allowed_operation_types: Iterable[OperationType],
|
81
|
+
extensions: Sequence[Union[Type[SchemaExtension], SchemaExtension]],
|
82
|
+
execution_context: ExecutionContext,
|
83
|
+
execution_context_class: Optional[Type[GraphQLExecutionContext]] = None,
|
84
|
+
process_errors: Callable[[List[GraphQLError], Optional[ExecutionContext]], None],
|
85
|
+
) -> ExecutionResult:
|
86
|
+
extensions_runner = SchemaExtensionsRunner(
|
87
|
+
execution_context=execution_context,
|
88
|
+
extensions=list(extensions),
|
89
|
+
)
|
90
|
+
|
91
|
+
async with extensions_runner.operation():
|
92
|
+
# Note: In graphql-core the schema would be validated here but in
|
93
|
+
# Strawberry we are validating it at initialisation time instead
|
94
|
+
if not execution_context.query:
|
95
|
+
raise MissingQueryError()
|
96
|
+
|
97
|
+
async with extensions_runner.parsing():
|
98
|
+
try:
|
99
|
+
if not execution_context.graphql_document:
|
100
|
+
execution_context.graphql_document = parse_document(
|
101
|
+
execution_context.query, **execution_context.parse_options
|
102
|
+
)
|
103
|
+
|
104
|
+
except GraphQLError as error:
|
105
|
+
execution_context.errors = [error]
|
106
|
+
process_errors([error], execution_context)
|
107
|
+
return ExecutionResult(
|
108
|
+
data=None,
|
109
|
+
errors=[error],
|
110
|
+
extensions=await extensions_runner.get_extensions_results(),
|
111
|
+
)
|
112
|
+
|
113
|
+
except Exception as error: # pragma: no cover
|
114
|
+
error = GraphQLError(str(error), original_error=error)
|
115
|
+
|
116
|
+
execution_context.errors = [error]
|
117
|
+
process_errors([error], execution_context)
|
118
|
+
|
119
|
+
return ExecutionResult(
|
120
|
+
data=None,
|
121
|
+
errors=[error],
|
122
|
+
extensions=await extensions_runner.get_extensions_results(),
|
123
|
+
)
|
124
|
+
|
125
|
+
if execution_context.operation_type not in allowed_operation_types:
|
126
|
+
raise InvalidOperationTypeError(execution_context.operation_type)
|
127
|
+
|
128
|
+
async with extensions_runner.validation():
|
129
|
+
_run_validation(execution_context)
|
130
|
+
if execution_context.errors:
|
131
|
+
process_errors(execution_context.errors, execution_context)
|
132
|
+
return ExecutionResult(data=None, errors=execution_context.errors)
|
133
|
+
|
134
|
+
async with extensions_runner.executing():
|
135
|
+
if not execution_context.result:
|
136
|
+
result = original_execute(
|
137
|
+
schema,
|
138
|
+
execution_context.graphql_document,
|
139
|
+
root_value=execution_context.root_value,
|
140
|
+
middleware=extensions_runner.as_middleware_manager(),
|
141
|
+
variable_values=execution_context.variables,
|
142
|
+
operation_name=execution_context.operation_name,
|
143
|
+
context_value=execution_context.context,
|
144
|
+
execution_context_class=execution_context_class,
|
145
|
+
)
|
146
|
+
|
147
|
+
if isawaitable(result):
|
148
|
+
result = await cast(Awaitable["GraphQLExecutionResult"], result)
|
149
|
+
|
150
|
+
result = cast("GraphQLExecutionResult", result)
|
151
|
+
execution_context.result = result
|
152
|
+
# Also set errors on the execution_context so that it's easier
|
153
|
+
# to access in extensions
|
154
|
+
if result.errors:
|
155
|
+
execution_context.errors = result.errors
|
156
|
+
|
157
|
+
# Run the `Schema.process_errors` function here before
|
158
|
+
# extensions have a chance to modify them (see the MaskErrors
|
159
|
+
# extension). That way we can log the original errors but
|
160
|
+
# only return a sanitised version to the client.
|
161
|
+
process_errors(result.errors, execution_context)
|
162
|
+
|
163
|
+
return ExecutionResult(
|
164
|
+
data=execution_context.result.data,
|
165
|
+
errors=execution_context.result.errors,
|
166
|
+
extensions=await extensions_runner.get_extensions_results(),
|
167
|
+
)
|
168
|
+
|
169
|
+
|
170
|
+
def execute_sync(
|
171
|
+
schema: GraphQLSchema,
|
172
|
+
*,
|
173
|
+
allowed_operation_types: Iterable[OperationType],
|
174
|
+
extensions: Sequence[Union[Type[SchemaExtension], SchemaExtension]],
|
175
|
+
execution_context: ExecutionContext,
|
176
|
+
execution_context_class: Optional[Type[GraphQLExecutionContext]] = None,
|
177
|
+
process_errors: Callable[[List[GraphQLError], Optional[ExecutionContext]], None],
|
178
|
+
) -> ExecutionResult:
|
179
|
+
extensions_runner = SchemaExtensionsRunner(
|
180
|
+
execution_context=execution_context,
|
181
|
+
extensions=list(extensions),
|
182
|
+
)
|
183
|
+
|
184
|
+
with extensions_runner.operation():
|
185
|
+
# Note: In graphql-core the schema would be validated here but in
|
186
|
+
# Strawberry we are validating it at initialisation time instead
|
187
|
+
if not execution_context.query:
|
188
|
+
raise MissingQueryError()
|
189
|
+
|
190
|
+
with extensions_runner.parsing():
|
191
|
+
try:
|
192
|
+
if not execution_context.graphql_document:
|
193
|
+
execution_context.graphql_document = parse_document(
|
194
|
+
execution_context.query, **execution_context.parse_options
|
195
|
+
)
|
196
|
+
|
197
|
+
except GraphQLError as error:
|
198
|
+
execution_context.errors = [error]
|
199
|
+
process_errors([error], execution_context)
|
200
|
+
return ExecutionResult(
|
201
|
+
data=None,
|
202
|
+
errors=[error],
|
203
|
+
extensions=extensions_runner.get_extensions_results_sync(),
|
204
|
+
)
|
205
|
+
|
206
|
+
except Exception as error: # pragma: no cover
|
207
|
+
error = GraphQLError(str(error), original_error=error)
|
208
|
+
|
209
|
+
execution_context.errors = [error]
|
210
|
+
process_errors([error], execution_context)
|
211
|
+
return ExecutionResult(
|
212
|
+
data=None,
|
213
|
+
errors=[error],
|
214
|
+
extensions=extensions_runner.get_extensions_results_sync(),
|
215
|
+
)
|
216
|
+
|
217
|
+
if execution_context.operation_type not in allowed_operation_types:
|
218
|
+
raise InvalidOperationTypeError(execution_context.operation_type)
|
219
|
+
|
220
|
+
with extensions_runner.validation():
|
221
|
+
_run_validation(execution_context)
|
222
|
+
if execution_context.errors:
|
223
|
+
process_errors(execution_context.errors, execution_context)
|
224
|
+
return ExecutionResult(data=None, errors=execution_context.errors)
|
225
|
+
|
226
|
+
with extensions_runner.executing():
|
227
|
+
if not execution_context.result:
|
228
|
+
result = original_execute(
|
229
|
+
schema,
|
230
|
+
execution_context.graphql_document,
|
231
|
+
root_value=execution_context.root_value,
|
232
|
+
middleware=extensions_runner.as_middleware_manager(),
|
233
|
+
variable_values=execution_context.variables,
|
234
|
+
operation_name=execution_context.operation_name,
|
235
|
+
context_value=execution_context.context,
|
236
|
+
execution_context_class=execution_context_class,
|
237
|
+
)
|
238
|
+
|
239
|
+
if isawaitable(result):
|
240
|
+
result = cast(Awaitable["GraphQLExecutionResult"], result)
|
241
|
+
ensure_future(result).cancel()
|
242
|
+
raise RuntimeError(
|
243
|
+
"GraphQL execution failed to complete synchronously."
|
244
|
+
)
|
245
|
+
|
246
|
+
result = cast("GraphQLExecutionResult", result)
|
247
|
+
execution_context.result = result
|
248
|
+
# Also set errors on the execution_context so that it's easier
|
249
|
+
# to access in extensions
|
250
|
+
if result.errors:
|
251
|
+
execution_context.errors = result.errors
|
252
|
+
|
253
|
+
# Run the `Schema.process_errors` function here before
|
254
|
+
# extensions have a chance to modify them (see the MaskErrors
|
255
|
+
# extension). That way we can log the original errors but
|
256
|
+
# only return a sanitised version to the client.
|
257
|
+
process_errors(result.errors, execution_context)
|
258
|
+
|
259
|
+
return ExecutionResult(
|
260
|
+
data=execution_context.result.data,
|
261
|
+
errors=execution_context.result.errors,
|
262
|
+
extensions=extensions_runner.get_extensions_results_sync(),
|
263
|
+
)
|
@@ -155,7 +155,7 @@ class ReservedType(NamedTuple):
|
|
155
155
|
# Handle annotated arguments such as Private[str] and DirectiveValue[str]
|
156
156
|
return type_has_annotation(other, self.type)
|
157
157
|
else:
|
158
|
-
# Handle both concrete and generic types (i.e Info, and Info
|
158
|
+
# Handle both concrete and generic types (i.e Info, and Info)
|
159
159
|
return (
|
160
160
|
issubclass(origin, self.type)
|
161
161
|
if isinstance(origin, type)
|
{strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/types/info.py
RENAMED
@@ -11,9 +11,9 @@ from typing import (
|
|
11
11
|
List,
|
12
12
|
Optional,
|
13
13
|
Type,
|
14
|
-
TypeVar,
|
15
14
|
Union,
|
16
15
|
)
|
16
|
+
from typing_extensions import TypeVar
|
17
17
|
|
18
18
|
from .nodes import convert_selections
|
19
19
|
|
@@ -29,8 +29,8 @@ if TYPE_CHECKING:
|
|
29
29
|
|
30
30
|
from .nodes import Selection
|
31
31
|
|
32
|
-
ContextType = TypeVar("ContextType")
|
33
|
-
RootValueType = TypeVar("RootValueType")
|
32
|
+
ContextType = TypeVar("ContextType", default=Any)
|
33
|
+
RootValueType = TypeVar("RootValueType", default=Any)
|
34
34
|
|
35
35
|
|
36
36
|
@dataclasses.dataclass
|
@@ -1,274 +0,0 @@
|
|
1
|
-
from __future__ import annotations
|
2
|
-
|
3
|
-
from asyncio import ensure_future
|
4
|
-
from inspect import isawaitable
|
5
|
-
from typing import (
|
6
|
-
TYPE_CHECKING,
|
7
|
-
Awaitable,
|
8
|
-
Callable,
|
9
|
-
Iterable,
|
10
|
-
List,
|
11
|
-
Optional,
|
12
|
-
Sequence,
|
13
|
-
Tuple,
|
14
|
-
Type,
|
15
|
-
TypedDict,
|
16
|
-
Union,
|
17
|
-
cast,
|
18
|
-
)
|
19
|
-
|
20
|
-
from graphql import GraphQLError, parse
|
21
|
-
from graphql import execute as original_execute
|
22
|
-
from graphql.validation import validate
|
23
|
-
|
24
|
-
from strawberry.exceptions import MissingQueryError
|
25
|
-
from strawberry.extensions.runner import SchemaExtensionsRunner
|
26
|
-
from strawberry.types import ExecutionResult
|
27
|
-
|
28
|
-
from .exceptions import InvalidOperationTypeError
|
29
|
-
|
30
|
-
if TYPE_CHECKING:
|
31
|
-
from typing_extensions import NotRequired, Unpack
|
32
|
-
|
33
|
-
from graphql import ExecutionContext as GraphQLExecutionContext
|
34
|
-
from graphql import ExecutionResult as GraphQLExecutionResult
|
35
|
-
from graphql import GraphQLSchema
|
36
|
-
from graphql.language import DocumentNode
|
37
|
-
from graphql.validation import ASTValidationRule
|
38
|
-
|
39
|
-
from strawberry.extensions import SchemaExtension
|
40
|
-
from strawberry.types import ExecutionContext
|
41
|
-
from strawberry.types.graphql import OperationType
|
42
|
-
|
43
|
-
|
44
|
-
# duplicated because of https://github.com/mkdocstrings/griffe-typingdoc/issues/7
|
45
|
-
class ParseOptions(TypedDict):
|
46
|
-
max_tokens: NotRequired[int]
|
47
|
-
|
48
|
-
|
49
|
-
def parse_document(query: str, **kwargs: Unpack[ParseOptions]) -> DocumentNode:
|
50
|
-
return parse(query, **kwargs)
|
51
|
-
|
52
|
-
|
53
|
-
def validate_document(
|
54
|
-
schema: GraphQLSchema,
|
55
|
-
document: DocumentNode,
|
56
|
-
validation_rules: Tuple[Type[ASTValidationRule], ...],
|
57
|
-
) -> List[GraphQLError]:
|
58
|
-
return validate(
|
59
|
-
schema,
|
60
|
-
document,
|
61
|
-
validation_rules,
|
62
|
-
)
|
63
|
-
|
64
|
-
|
65
|
-
def _run_validation(execution_context: ExecutionContext) -> None:
|
66
|
-
# Check if there are any validation rules or if validation has
|
67
|
-
# already been run by an extension
|
68
|
-
if len(execution_context.validation_rules) > 0 and execution_context.errors is None:
|
69
|
-
assert execution_context.graphql_document
|
70
|
-
execution_context.errors = validate_document(
|
71
|
-
execution_context.schema._schema,
|
72
|
-
execution_context.graphql_document,
|
73
|
-
execution_context.validation_rules,
|
74
|
-
)
|
75
|
-
|
76
|
-
|
77
|
-
async def execute(
|
78
|
-
schema: GraphQLSchema,
|
79
|
-
*,
|
80
|
-
allowed_operation_types: Iterable[OperationType],
|
81
|
-
extensions: Sequence[Union[Type[SchemaExtension], SchemaExtension]],
|
82
|
-
execution_context: ExecutionContext,
|
83
|
-
execution_context_class: Optional[Type[GraphQLExecutionContext]] = None,
|
84
|
-
process_errors: Callable[[List[GraphQLError], Optional[ExecutionContext]], None],
|
85
|
-
) -> ExecutionResult:
|
86
|
-
extensions_runner = SchemaExtensionsRunner(
|
87
|
-
execution_context=execution_context,
|
88
|
-
extensions=list(extensions),
|
89
|
-
)
|
90
|
-
|
91
|
-
try:
|
92
|
-
async with extensions_runner.operation():
|
93
|
-
# Note: In graphql-core the schema would be validated here but in
|
94
|
-
# Strawberry we are validating it at initialisation time instead
|
95
|
-
if not execution_context.query:
|
96
|
-
raise MissingQueryError()
|
97
|
-
|
98
|
-
async with extensions_runner.parsing():
|
99
|
-
try:
|
100
|
-
if not execution_context.graphql_document:
|
101
|
-
execution_context.graphql_document = parse_document(
|
102
|
-
execution_context.query, **execution_context.parse_options
|
103
|
-
)
|
104
|
-
|
105
|
-
except GraphQLError as exc:
|
106
|
-
execution_context.errors = [exc]
|
107
|
-
process_errors([exc], execution_context)
|
108
|
-
return ExecutionResult(
|
109
|
-
data=None,
|
110
|
-
errors=[exc],
|
111
|
-
extensions=await extensions_runner.get_extensions_results(),
|
112
|
-
)
|
113
|
-
|
114
|
-
if execution_context.operation_type not in allowed_operation_types:
|
115
|
-
raise InvalidOperationTypeError(execution_context.operation_type)
|
116
|
-
|
117
|
-
async with extensions_runner.validation():
|
118
|
-
_run_validation(execution_context)
|
119
|
-
if execution_context.errors:
|
120
|
-
process_errors(execution_context.errors, execution_context)
|
121
|
-
return ExecutionResult(data=None, errors=execution_context.errors)
|
122
|
-
|
123
|
-
async with extensions_runner.executing():
|
124
|
-
if not execution_context.result:
|
125
|
-
result = original_execute(
|
126
|
-
schema,
|
127
|
-
execution_context.graphql_document,
|
128
|
-
root_value=execution_context.root_value,
|
129
|
-
middleware=extensions_runner.as_middleware_manager(),
|
130
|
-
variable_values=execution_context.variables,
|
131
|
-
operation_name=execution_context.operation_name,
|
132
|
-
context_value=execution_context.context,
|
133
|
-
execution_context_class=execution_context_class,
|
134
|
-
)
|
135
|
-
|
136
|
-
if isawaitable(result):
|
137
|
-
result = await cast(Awaitable["GraphQLExecutionResult"], result)
|
138
|
-
|
139
|
-
result = cast("GraphQLExecutionResult", result)
|
140
|
-
execution_context.result = result
|
141
|
-
# Also set errors on the execution_context so that it's easier
|
142
|
-
# to access in extensions
|
143
|
-
if result.errors:
|
144
|
-
execution_context.errors = result.errors
|
145
|
-
|
146
|
-
# Run the `Schema.process_errors` function here before
|
147
|
-
# extensions have a chance to modify them (see the MaskErrors
|
148
|
-
# extension). That way we can log the original errors but
|
149
|
-
# only return a sanitised version to the client.
|
150
|
-
process_errors(result.errors, execution_context)
|
151
|
-
|
152
|
-
except (MissingQueryError, InvalidOperationTypeError) as e:
|
153
|
-
raise e
|
154
|
-
except Exception as exc:
|
155
|
-
error = (
|
156
|
-
exc
|
157
|
-
if isinstance(exc, GraphQLError)
|
158
|
-
else GraphQLError(str(exc), original_error=exc)
|
159
|
-
)
|
160
|
-
execution_context.errors = [error]
|
161
|
-
process_errors([error], execution_context)
|
162
|
-
return ExecutionResult(
|
163
|
-
data=None,
|
164
|
-
errors=[error],
|
165
|
-
extensions=await extensions_runner.get_extensions_results(),
|
166
|
-
)
|
167
|
-
|
168
|
-
return ExecutionResult(
|
169
|
-
data=execution_context.result.data,
|
170
|
-
errors=execution_context.result.errors,
|
171
|
-
extensions=await extensions_runner.get_extensions_results(),
|
172
|
-
)
|
173
|
-
|
174
|
-
|
175
|
-
def execute_sync(
|
176
|
-
schema: GraphQLSchema,
|
177
|
-
*,
|
178
|
-
allowed_operation_types: Iterable[OperationType],
|
179
|
-
extensions: Sequence[Union[Type[SchemaExtension], SchemaExtension]],
|
180
|
-
execution_context: ExecutionContext,
|
181
|
-
execution_context_class: Optional[Type[GraphQLExecutionContext]] = None,
|
182
|
-
process_errors: Callable[[List[GraphQLError], Optional[ExecutionContext]], None],
|
183
|
-
) -> ExecutionResult:
|
184
|
-
extensions_runner = SchemaExtensionsRunner(
|
185
|
-
execution_context=execution_context,
|
186
|
-
extensions=list(extensions),
|
187
|
-
)
|
188
|
-
|
189
|
-
try:
|
190
|
-
with extensions_runner.operation():
|
191
|
-
# Note: In graphql-core the schema would be validated here but in
|
192
|
-
# Strawberry we are validating it at initialisation time instead
|
193
|
-
if not execution_context.query:
|
194
|
-
raise MissingQueryError()
|
195
|
-
|
196
|
-
with extensions_runner.parsing():
|
197
|
-
try:
|
198
|
-
if not execution_context.graphql_document:
|
199
|
-
execution_context.graphql_document = parse_document(
|
200
|
-
execution_context.query, **execution_context.parse_options
|
201
|
-
)
|
202
|
-
|
203
|
-
except GraphQLError as exc:
|
204
|
-
execution_context.errors = [exc]
|
205
|
-
process_errors([exc], execution_context)
|
206
|
-
return ExecutionResult(
|
207
|
-
data=None,
|
208
|
-
errors=[exc],
|
209
|
-
extensions=extensions_runner.get_extensions_results_sync(),
|
210
|
-
)
|
211
|
-
|
212
|
-
if execution_context.operation_type not in allowed_operation_types:
|
213
|
-
raise InvalidOperationTypeError(execution_context.operation_type)
|
214
|
-
|
215
|
-
with extensions_runner.validation():
|
216
|
-
_run_validation(execution_context)
|
217
|
-
if execution_context.errors:
|
218
|
-
process_errors(execution_context.errors, execution_context)
|
219
|
-
return ExecutionResult(data=None, errors=execution_context.errors)
|
220
|
-
|
221
|
-
with extensions_runner.executing():
|
222
|
-
if not execution_context.result:
|
223
|
-
result = original_execute(
|
224
|
-
schema,
|
225
|
-
execution_context.graphql_document,
|
226
|
-
root_value=execution_context.root_value,
|
227
|
-
middleware=extensions_runner.as_middleware_manager(),
|
228
|
-
variable_values=execution_context.variables,
|
229
|
-
operation_name=execution_context.operation_name,
|
230
|
-
context_value=execution_context.context,
|
231
|
-
execution_context_class=execution_context_class,
|
232
|
-
)
|
233
|
-
|
234
|
-
if isawaitable(result):
|
235
|
-
result = cast(Awaitable["GraphQLExecutionResult"], result)
|
236
|
-
ensure_future(result).cancel()
|
237
|
-
raise RuntimeError(
|
238
|
-
"GraphQL execution failed to complete synchronously."
|
239
|
-
)
|
240
|
-
|
241
|
-
result = cast("GraphQLExecutionResult", result)
|
242
|
-
execution_context.result = result
|
243
|
-
# Also set errors on the execution_context so that it's easier
|
244
|
-
# to access in extensions
|
245
|
-
if result.errors:
|
246
|
-
execution_context.errors = result.errors
|
247
|
-
|
248
|
-
# Run the `Schema.process_errors` function here before
|
249
|
-
# extensions have a chance to modify them (see the MaskErrors
|
250
|
-
# extension). That way we can log the original errors but
|
251
|
-
# only return a sanitised version to the client.
|
252
|
-
process_errors(result.errors, execution_context)
|
253
|
-
|
254
|
-
except (MissingQueryError, InvalidOperationTypeError) as e:
|
255
|
-
raise e
|
256
|
-
except Exception as exc:
|
257
|
-
error = (
|
258
|
-
exc
|
259
|
-
if isinstance(exc, GraphQLError)
|
260
|
-
else GraphQLError(str(exc), original_error=exc)
|
261
|
-
)
|
262
|
-
execution_context.errors = [error]
|
263
|
-
process_errors([error], execution_context)
|
264
|
-
return ExecutionResult(
|
265
|
-
data=None,
|
266
|
-
errors=[error],
|
267
|
-
extensions=extensions_runner.get_extensions_results_sync(),
|
268
|
-
)
|
269
|
-
|
270
|
-
return ExecutionResult(
|
271
|
-
data=execution_context.result.data,
|
272
|
-
errors=execution_context.result.errors,
|
273
|
-
extensions=extensions_runner.get_extensions_results_sync(),
|
274
|
-
)
|
File without changes
|
File without changes
|
{strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/__main__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/aiohttp/views.py
RENAMED
File without changes
|
{strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/annotation.py
RENAMED
File without changes
|
{strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/arguments.py
RENAMED
File without changes
|
{strawberry_graphql-0.220.0.dev1709543239 → strawberry_graphql-0.221.0}/strawberry/asgi/__init__.py
RENAMED
File without changes
|