strawberry-graphql 0.270.0__tar.gz → 0.270.1__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.270.0 → strawberry_graphql-0.270.1}/PKG-INFO +1 -1
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/pyproject.toml +1 -1
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/async_base_view.py +65 -9
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/LICENSE +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/README.md +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/__main__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/aiohttp/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/aiohttp/test/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/aiohttp/test/client.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/aiohttp/views.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/annotation.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/asgi/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/asgi/test/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/asgi/test/client.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/chalice/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/chalice/views.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/channels/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/channels/handlers/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/channels/handlers/base.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/channels/handlers/http_handler.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/channels/handlers/ws_handler.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/channels/router.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/channels/testing.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/app.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/commands/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/commands/codegen.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/commands/export_schema.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/commands/schema_codegen.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/commands/server.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/commands/upgrade/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/commands/upgrade/_run_codemod.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/constants.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/debug_server.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/utils/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/utils/load_schema.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codegen/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codegen/exceptions.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codegen/plugins/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codegen/plugins/print_operation.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codegen/plugins/python.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codegen/plugins/typescript.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codegen/query_codegen.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codegen/types.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codemods/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codemods/annotated_unions.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codemods/update_imports.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/dataloader.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/directive.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/django/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/django/apps.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/django/context.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/django/test/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/django/test/client.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/django/views.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/conflicting_arguments.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/duplicated_type_name.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/exception.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/exception_source.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/handler.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/invalid_argument_type.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/invalid_union_type.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/missing_arguments_annotations.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/missing_dependencies.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/missing_field_annotation.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/missing_return_annotation.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/object_is_not_a_class.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/object_is_not_an_enum.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/permission_fail_silently_requires_optional.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/private_strawberry_field.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/scalar_already_registered.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/syntax.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/unresolved_field_type.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/utils/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/utils/source_finder.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/pydantic/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/pydantic/_compat.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/pydantic/conversion.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/pydantic/conversion_types.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/pydantic/error_type.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/pydantic/exceptions.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/pydantic/fields.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/pydantic/object_type.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/pydantic/utils.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/ext/LICENSE +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/ext/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/ext/dataclasses/LICENSE +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/ext/dataclasses/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/ext/dataclasses/dataclasses.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/ext/mypy_plugin.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/add_validation_rules.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/base_extension.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/context.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/directives.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/disable_validation.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/field_extension.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/mask_errors.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/max_aliases.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/max_tokens.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/parser_cache.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/pyinstrument.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/query_depth_limiter.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/runner.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/tracing/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/tracing/apollo.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/tracing/datadog.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/tracing/opentelemetry.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/tracing/utils.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/utils.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/validation_cache.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/fastapi/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/fastapi/context.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/fastapi/router.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/argument.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/enum.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/field.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/mutation.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/object_type.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/scalar.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/schema.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/schema_directive.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/schema_directives.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/types.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/union.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/field_extensions/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/field_extensions/input_mutation.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/file_uploads/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/file_uploads/scalars.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/file_uploads/utils.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/flask/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/flask/views.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/base.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/exceptions.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/ides.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/parse_content_type.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/sync_base_view.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/temporal_response.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/types.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/typevars.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/litestar/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/litestar/controller.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/parent.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/permission.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/printer/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/printer/ast_from_value.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/printer/printer.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/py.typed +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/quart/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/quart/views.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/relay/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/relay/exceptions.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/relay/fields.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/relay/types.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/relay/utils.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/resolvers.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/sanic/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/sanic/context.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/sanic/utils.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/sanic/views.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/scalars.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/base.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/compat.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/config.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/exceptions.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/name_converter.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/schema.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/schema_converter.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/types/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/types/base_scalars.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/types/concrete_type.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/types/scalar.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/validation_rules/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/validation_rules/one_of.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema_codegen/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema_directive.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema_directives.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/static/apollo-sandbox.html +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/static/graphiql.html +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/static/pathfinder.html +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/subscriptions/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/subscriptions/protocols/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/subscriptions/protocols/graphql_ws/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/subscriptions/protocols/graphql_ws/types.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/test/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/test/client.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/tools/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/tools/create_type.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/tools/merge_types.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/arguments.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/auto.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/base.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/cast.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/enum.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/execution.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/field.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/fields/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/fields/resolver.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/graphql.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/info.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/lazy_type.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/maybe.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/mutation.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/nodes.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/object_type.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/private.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/scalar.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/type_resolver.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/union.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/unset.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/__init__.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/aio.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/await_maybe.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/dataclasses.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/debug.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/deprecations.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/graphql_lexer.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/importer.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/inspect.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/logging.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/operation.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/str_converters.py +0 -0
- {strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/typing.py +0 -0
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/async_base_view.py
RENAMED
@@ -372,26 +372,71 @@ class AsyncBaseHTTPView(
|
|
372
372
|
)
|
373
373
|
|
374
374
|
def _stream_with_heartbeat(
|
375
|
-
self, stream: Callable[[], AsyncGenerator[str, None]]
|
375
|
+
self, stream: Callable[[], AsyncGenerator[str, None]], separator: str
|
376
376
|
) -> Callable[[], AsyncGenerator[str, None]]:
|
377
|
-
"""
|
378
|
-
|
379
|
-
|
377
|
+
"""Add heartbeat messages to a GraphQL stream to prevent connection timeouts.
|
378
|
+
|
379
|
+
This method wraps an async stream generator with heartbeat functionality by:
|
380
|
+
1. Creating a queue to coordinate between data and heartbeat messages
|
381
|
+
2. Running two concurrent tasks: one for original stream data, one for heartbeats
|
382
|
+
3. Merging both message types into a single output stream
|
383
|
+
|
384
|
+
Messages in the queue are tuples of (raised, done, data) where:
|
385
|
+
- raised (bool): True if this contains an exception to be re-raised
|
386
|
+
- done (bool): True if this is the final signal indicating stream completion
|
387
|
+
- data: The actual message content to yield, or exception if raised=True
|
388
|
+
Note: data is always None when done=True and can be ignored
|
389
|
+
|
390
|
+
Note: This implementation addresses two critical concerns:
|
391
|
+
|
392
|
+
1. Race condition: There's a potential race between checking task.done() and
|
393
|
+
processing the final message. We solve this by having the drain task send
|
394
|
+
an explicit (False, True, None) completion signal as its final action.
|
395
|
+
Without this signal, we might exit before processing the final boundary.
|
396
|
+
|
397
|
+
Since the queue size is 1 and the drain task will only complete after
|
398
|
+
successfully queueing the done signal, task.done() guarantees the done
|
399
|
+
signal is either in the queue or has already been processed. This ensures
|
400
|
+
we never miss the final boundary.
|
401
|
+
|
402
|
+
2. Flow control: The queue has maxsize=1, which is essential because:
|
403
|
+
- It provides natural backpressure between producers and consumer
|
404
|
+
- Prevents heartbeat messages from accumulating when drain is active
|
405
|
+
- Ensures proper task coordination without complex synchronization
|
406
|
+
- Guarantees the done signal is queued before drain task completes
|
407
|
+
|
408
|
+
Heartbeats are sent every 5 seconds when the drain task isn't sending data.
|
409
|
+
|
410
|
+
Note: Due to the asynchronous nature of the heartbeat task, an extra heartbeat
|
411
|
+
message may be sent after the final stream boundary message. This is safe because
|
412
|
+
both the MIME specification (RFC 2046) and Apollo's GraphQL Multipart HTTP protocol
|
413
|
+
require clients to ignore any content after the final boundary marker. Additionally,
|
414
|
+
Apollo's protocol defines heartbeats as empty JSON objects that clients must
|
415
|
+
silently ignore.
|
416
|
+
"""
|
417
|
+
queue: asyncio.Queue[tuple[bool, bool, Any]] = asyncio.Queue(
|
418
|
+
maxsize=1, # Critical: maxsize=1 for flow control.
|
419
|
+
)
|
380
420
|
cancelling = False
|
381
421
|
|
382
422
|
async def drain() -> None:
|
383
423
|
try:
|
384
424
|
async for item in stream():
|
385
|
-
await queue.put((False, item))
|
425
|
+
await queue.put((False, False, item))
|
386
426
|
except Exception as e:
|
387
427
|
if not cancelling:
|
388
|
-
await queue.put((True, e))
|
428
|
+
await queue.put((True, False, e))
|
389
429
|
else:
|
390
430
|
raise
|
431
|
+
# Send completion signal to prevent race conditions. The queue.put()
|
432
|
+
# blocks until space is available (due to maxsize=1), guaranteeing that
|
433
|
+
# when task.done() is True, the final stream message has been dequeued.
|
434
|
+
await queue.put((False, True, None)) # Always use None with done=True
|
391
435
|
|
392
436
|
async def heartbeat() -> None:
|
393
437
|
while True:
|
394
|
-
|
438
|
+
item = self.encode_multipart_data({}, separator)
|
439
|
+
await queue.put((False, False, item))
|
395
440
|
|
396
441
|
await asyncio.sleep(5)
|
397
442
|
|
@@ -413,8 +458,19 @@ class AsyncBaseHTTPView(
|
|
413
458
|
await heartbeat_task
|
414
459
|
|
415
460
|
try:
|
461
|
+
# When task.done() is True, the final stream message has been
|
462
|
+
# dequeued due to queue size 1 and the blocking nature of queue.put().
|
416
463
|
while not task.done():
|
417
|
-
raised, data = await queue.get()
|
464
|
+
raised, done, data = await queue.get()
|
465
|
+
|
466
|
+
if done:
|
467
|
+
# Received done signal (data is None), stream is complete.
|
468
|
+
# Note that we may not get here because of the race between
|
469
|
+
# task.done() and queue.get(), but that's OK because if
|
470
|
+
# task.done() is True, the actual final message (including any
|
471
|
+
# exception) has been consumed. The only intent here is to
|
472
|
+
# ensure that data=None is not yielded.
|
473
|
+
break
|
418
474
|
|
419
475
|
if raised:
|
420
476
|
await cancel_tasks()
|
@@ -439,7 +495,7 @@ class AsyncBaseHTTPView(
|
|
439
495
|
|
440
496
|
yield f"\r\n--{separator}--\r\n"
|
441
497
|
|
442
|
-
return self._stream_with_heartbeat(stream)
|
498
|
+
return self._stream_with_heartbeat(stream, separator)
|
443
499
|
|
444
500
|
async def parse_multipart_subscriptions(
|
445
501
|
self, request: AsyncHTTPRequestAdapter
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/aiohttp/test/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/channels/handlers/__init__.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/channels/handlers/base.py
RENAMED
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/channels/handlers/ws_handler.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/commands/__init__.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/commands/codegen.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/commands/export_schema.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/commands/schema_codegen.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/cli/utils/load_schema.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codegen/plugins/__init__.py
RENAMED
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codegen/plugins/python.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codegen/plugins/typescript.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codegen/query_codegen.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codemods/annotated_unions.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/codemods/update_imports.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/django/test/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/exception.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/exception_source.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/exceptions/utils/__init__.py
RENAMED
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/__init__.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.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/pydantic/fields.py
RENAMED
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/experimental/pydantic/utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/ext/dataclasses/LICENSE
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/ext/dataclasses/__init__.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/ext/dataclasses/dataclasses.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/base_extension.py
RENAMED
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/directives.py
RENAMED
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/field_extension.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/mask_errors.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/max_aliases.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/max_tokens.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/parser_cache.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/pyinstrument.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/tracing/__init__.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/tracing/apollo.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/tracing/datadog.py
RENAMED
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/tracing/utils.py
RENAMED
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/extensions/validation_cache.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/object_type.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/schema_directive.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/federation/schema_directives.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/field_extensions/__init__.py
RENAMED
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/file_uploads/__init__.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/file_uploads/scalars.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/parse_content_type.py
RENAMED
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/http/temporal_response.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/printer/ast_from_value.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/name_converter.py
RENAMED
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/schema_converter.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/types/__init__.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/types/base_scalars.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema/types/concrete_type.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/schema_codegen/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/static/apollo-sandbox.html
RENAMED
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/subscriptions/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/fields/__init__.py
RENAMED
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/types/fields/resolver.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{strawberry_graphql-0.270.0 → strawberry_graphql-0.270.1}/strawberry/utils/str_converters.py
RENAMED
File without changes
|
File without changes
|