strawberry-graphql 0.276.0.dev1750672223__tar.gz → 0.276.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.
Files changed (242) hide show
  1. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/PKG-INFO +1 -1
  2. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/pyproject.toml +7 -2
  3. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/__init__.py +0 -2
  4. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/annotation.py +0 -7
  5. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/__init__.py +6 -6
  6. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/http/__init__.py +9 -14
  7. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/http/async_base_view.py +31 -88
  8. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/http/sync_base_view.py +24 -5
  9. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/printer/printer.py +2 -10
  10. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/relay/fields.py +5 -0
  11. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/config.py +0 -1
  12. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/name_converter.py +3 -2
  13. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/schema.py +7 -47
  14. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/schema_converter.py +62 -36
  15. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/static/graphiql.html +5 -5
  16. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +1 -1
  17. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +1 -1
  18. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/arguments.py +51 -6
  19. strawberry_graphql-0.276.0.dev1750672223/strawberry/schema/_graphql_core.py +0 -46
  20. strawberry_graphql-0.276.0.dev1750672223/strawberry/streamable.py +0 -36
  21. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/LICENSE +0 -0
  22. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/README.md +0 -0
  23. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/__main__.py +0 -0
  24. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/aiohttp/__init__.py +0 -0
  25. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/aiohttp/test/__init__.py +0 -0
  26. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/aiohttp/test/client.py +0 -0
  27. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/aiohttp/views.py +0 -0
  28. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/asgi/__init__.py +0 -0
  29. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/asgi/test/__init__.py +0 -0
  30. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/asgi/test/client.py +0 -0
  31. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/chalice/__init__.py +0 -0
  32. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/chalice/views.py +0 -0
  33. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/channels/__init__.py +0 -0
  34. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/channels/handlers/__init__.py +0 -0
  35. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/channels/handlers/base.py +0 -0
  36. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/channels/handlers/http_handler.py +0 -0
  37. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/channels/handlers/ws_handler.py +0 -0
  38. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/channels/router.py +0 -0
  39. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/channels/testing.py +0 -0
  40. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/app.py +0 -0
  41. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/commands/__init__.py +0 -0
  42. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/commands/codegen.py +0 -0
  43. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/commands/export_schema.py +0 -0
  44. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/commands/locate_definition.py +0 -0
  45. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/commands/schema_codegen.py +0 -0
  46. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/commands/server.py +0 -0
  47. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/commands/upgrade/__init__.py +0 -0
  48. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
  49. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/commands/upgrade/_run_codemod.py +0 -0
  50. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/constants.py +0 -0
  51. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/debug_server.py +0 -0
  52. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/utils/__init__.py +0 -0
  53. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/cli/utils/load_schema.py +0 -0
  54. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/codegen/__init__.py +0 -0
  55. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/codegen/exceptions.py +0 -0
  56. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/codegen/plugins/__init__.py +0 -0
  57. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/codegen/plugins/print_operation.py +0 -0
  58. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/codegen/plugins/python.py +0 -0
  59. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/codegen/plugins/typescript.py +0 -0
  60. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/codegen/query_codegen.py +0 -0
  61. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/codegen/types.py +0 -0
  62. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/codemods/__init__.py +0 -0
  63. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/codemods/annotated_unions.py +0 -0
  64. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/codemods/update_imports.py +0 -0
  65. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/dataloader.py +0 -0
  66. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/directive.py +0 -0
  67. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/django/__init__.py +0 -0
  68. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/django/apps.py +0 -0
  69. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/django/context.py +0 -0
  70. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/django/test/__init__.py +0 -0
  71. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/django/test/client.py +0 -0
  72. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/django/views.py +0 -0
  73. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/__init__.py +0 -0
  74. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/conflicting_arguments.py +0 -0
  75. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/duplicated_type_name.py +0 -0
  76. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/exception.py +0 -0
  77. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/exception_source.py +0 -0
  78. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/handler.py +0 -0
  79. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/invalid_argument_type.py +0 -0
  80. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/invalid_superclass_interface.py +0 -0
  81. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/invalid_union_type.py +0 -0
  82. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/missing_arguments_annotations.py +0 -0
  83. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/missing_dependencies.py +0 -0
  84. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/missing_field_annotation.py +0 -0
  85. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/missing_return_annotation.py +0 -0
  86. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/object_is_not_a_class.py +0 -0
  87. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/object_is_not_an_enum.py +0 -0
  88. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/permission_fail_silently_requires_optional.py +0 -0
  89. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/private_strawberry_field.py +0 -0
  90. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/scalar_already_registered.py +0 -0
  91. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/syntax.py +0 -0
  92. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/unresolved_field_type.py +0 -0
  93. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/utils/__init__.py +0 -0
  94. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/exceptions/utils/source_finder.py +0 -0
  95. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/experimental/__init__.py +0 -0
  96. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/experimental/pydantic/__init__.py +0 -0
  97. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/experimental/pydantic/_compat.py +0 -0
  98. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/experimental/pydantic/conversion.py +0 -0
  99. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/experimental/pydantic/conversion_types.py +0 -0
  100. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/experimental/pydantic/error_type.py +0 -0
  101. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/experimental/pydantic/exceptions.py +0 -0
  102. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/experimental/pydantic/fields.py +0 -0
  103. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/experimental/pydantic/object_type.py +0 -0
  104. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/experimental/pydantic/utils.py +0 -0
  105. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/ext/LICENSE +0 -0
  106. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/ext/__init__.py +0 -0
  107. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/ext/dataclasses/LICENSE +0 -0
  108. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/ext/dataclasses/README.md +0 -0
  109. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/ext/dataclasses/__init__.py +0 -0
  110. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/ext/dataclasses/dataclasses.py +0 -0
  111. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/ext/mypy_plugin.py +0 -0
  112. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/__init__.py +0 -0
  113. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/add_validation_rules.py +0 -0
  114. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/base_extension.py +0 -0
  115. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/context.py +0 -0
  116. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/directives.py +0 -0
  117. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/disable_introspection.py +0 -0
  118. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/disable_validation.py +0 -0
  119. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/field_extension.py +0 -0
  120. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/mask_errors.py +0 -0
  121. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/max_aliases.py +0 -0
  122. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/max_tokens.py +0 -0
  123. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/parser_cache.py +0 -0
  124. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/pyinstrument.py +0 -0
  125. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/query_depth_limiter.py +0 -0
  126. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/runner.py +0 -0
  127. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/tracing/__init__.py +0 -0
  128. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/tracing/apollo.py +0 -0
  129. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/tracing/datadog.py +0 -0
  130. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/tracing/opentelemetry.py +0 -0
  131. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/tracing/utils.py +0 -0
  132. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/utils.py +0 -0
  133. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/extensions/validation_cache.py +0 -0
  134. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/fastapi/__init__.py +0 -0
  135. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/fastapi/context.py +0 -0
  136. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/fastapi/router.py +0 -0
  137. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/federation/__init__.py +0 -0
  138. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/federation/argument.py +0 -0
  139. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/federation/enum.py +0 -0
  140. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/federation/field.py +0 -0
  141. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/federation/mutation.py +0 -0
  142. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/federation/object_type.py +0 -0
  143. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/federation/scalar.py +0 -0
  144. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/federation/schema.py +0 -0
  145. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/federation/schema_directive.py +0 -0
  146. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/federation/schema_directives.py +0 -0
  147. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/federation/types.py +0 -0
  148. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/federation/union.py +0 -0
  149. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/field_extensions/__init__.py +0 -0
  150. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/field_extensions/input_mutation.py +0 -0
  151. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/file_uploads/__init__.py +0 -0
  152. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/file_uploads/scalars.py +0 -0
  153. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/file_uploads/utils.py +0 -0
  154. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/flask/__init__.py +0 -0
  155. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/flask/views.py +0 -0
  156. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/http/base.py +0 -0
  157. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/http/exceptions.py +0 -0
  158. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/http/ides.py +0 -0
  159. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/http/parse_content_type.py +0 -0
  160. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/http/temporal_response.py +0 -0
  161. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/http/types.py +0 -0
  162. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/http/typevars.py +0 -0
  163. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/litestar/__init__.py +0 -0
  164. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/litestar/controller.py +0 -0
  165. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/parent.py +0 -0
  166. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/permission.py +0 -0
  167. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/printer/__init__.py +0 -0
  168. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/printer/ast_from_value.py +0 -0
  169. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/py.typed +0 -0
  170. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/quart/__init__.py +0 -0
  171. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/quart/views.py +0 -0
  172. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/relay/__init__.py +0 -0
  173. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/relay/exceptions.py +0 -0
  174. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/relay/types.py +0 -0
  175. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/relay/utils.py +0 -0
  176. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/resolvers.py +0 -0
  177. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/sanic/__init__.py +0 -0
  178. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/sanic/context.py +0 -0
  179. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/sanic/utils.py +0 -0
  180. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/sanic/views.py +0 -0
  181. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/scalars.py +0 -0
  182. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/__init__.py +0 -0
  183. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/base.py +0 -0
  184. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/compat.py +0 -0
  185. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/exceptions.py +0 -0
  186. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/types/__init__.py +0 -0
  187. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/types/base_scalars.py +0 -0
  188. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/types/concrete_type.py +0 -0
  189. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/types/scalar.py +0 -0
  190. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/validation_rules/__init__.py +0 -0
  191. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema/validation_rules/one_of.py +0 -0
  192. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema_codegen/__init__.py +0 -0
  193. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema_directive.py +0 -0
  194. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/schema_directives.py +0 -0
  195. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/static/apollo-sandbox.html +0 -0
  196. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/static/pathfinder.html +0 -0
  197. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/subscriptions/__init__.py +0 -0
  198. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/subscriptions/protocols/__init__.py +0 -0
  199. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
  200. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +0 -0
  201. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/subscriptions/protocols/graphql_ws/__init__.py +0 -0
  202. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/subscriptions/protocols/graphql_ws/types.py +0 -0
  203. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/test/__init__.py +0 -0
  204. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/test/client.py +0 -0
  205. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/tools/__init__.py +0 -0
  206. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/tools/create_type.py +0 -0
  207. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/tools/merge_types.py +0 -0
  208. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/__init__.py +0 -0
  209. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/auto.py +0 -0
  210. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/base.py +0 -0
  211. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/cast.py +0 -0
  212. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/enum.py +0 -0
  213. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/execution.py +0 -0
  214. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/field.py +0 -0
  215. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/fields/__init__.py +0 -0
  216. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/fields/resolver.py +0 -0
  217. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/graphql.py +0 -0
  218. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/info.py +0 -0
  219. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/lazy_type.py +0 -0
  220. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/maybe.py +0 -0
  221. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/mutation.py +0 -0
  222. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/nodes.py +0 -0
  223. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/object_type.py +0 -0
  224. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/private.py +0 -0
  225. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/scalar.py +0 -0
  226. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/type_resolver.py +0 -0
  227. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/union.py +0 -0
  228. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/types/unset.py +0 -0
  229. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/__init__.py +0 -0
  230. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/aio.py +0 -0
  231. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/await_maybe.py +0 -0
  232. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/dataclasses.py +0 -0
  233. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/debug.py +0 -0
  234. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/deprecations.py +0 -0
  235. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/graphql_lexer.py +0 -0
  236. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/importer.py +0 -0
  237. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/inspect.py +0 -0
  238. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/locate_definition.py +0 -0
  239. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/logging.py +0 -0
  240. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/operation.py +0 -0
  241. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/str_converters.py +0 -0
  242. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.1}/strawberry/utils/typing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: strawberry-graphql
3
- Version: 0.276.0.dev1750672223
3
+ Version: 0.276.1
4
4
  Summary: A library for creating GraphQL APIs
5
5
  License: MIT
6
6
  Keywords: graphql,api,rest,starlette,async
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "strawberry-graphql"
3
- version = "0.276.0.dev.1750672223"
3
+ version = "0.276.1"
4
4
  description = "A library for creating GraphQL APIs"
5
5
  authors = [{ name = "Patrick Arminio", email = "patrick.arminio@gmail.com" }]
6
6
  license = { text = "MIT" }
@@ -67,7 +67,7 @@ packages = [{ include = "strawberry" }]
67
67
  include = ["strawberry/py.typed"]
68
68
 
69
69
  [tool.poetry.group.dev.dependencies]
70
- ruff = "^0.11.4"
70
+ ruff = "^0.12.3"
71
71
  asgiref = "^3.2"
72
72
  email-validator = { version = ">=1.1.3,<3.0.0", optional = false }
73
73
  freezegun = "^1.2.1"
@@ -220,6 +220,7 @@ ignore = [
220
220
  # after we drop support for Python 3.9
221
221
  "UP006",
222
222
  "UP007",
223
+ "UP045",
223
224
 
224
225
  # we use asserts in tests and to hint mypy
225
226
  "S101",
@@ -308,6 +309,9 @@ ignore = [
308
309
  # Don't force if branches to be converted to "or"
309
310
  "SIM114",
310
311
 
312
+ # Allow imports inside functions
313
+ "PLC0415",
314
+
311
315
  # ruff formatter recommends to disable those, as they conflict with it
312
316
  # we don't need to ever enable those.
313
317
  "COM812",
@@ -324,6 +328,7 @@ ignore = [
324
328
  "Q003",
325
329
  "W191",
326
330
  ]
331
+ exclude = ["tests/python_312/*"] # SyntaxError because we support Python 3.9+
327
332
 
328
333
  [tool.ruff.lint.per-file-ignores]
329
334
  ".github/*" = ["INP001"]
@@ -11,7 +11,6 @@ from .permission import BasePermission
11
11
  from .scalars import ID
12
12
  from .schema import Schema
13
13
  from .schema_directive import schema_directive
14
- from .streamable import Streamable
15
14
  from .types.arguments import argument
16
15
  from .types.auto import auto
17
16
  from .types.cast import cast
@@ -38,7 +37,6 @@ __all__ = [
38
37
  "Private",
39
38
  "Schema",
40
39
  "Some",
41
- "Streamable",
42
40
  "argument",
43
41
  "asdict",
44
42
  "auto",
@@ -17,7 +17,6 @@ from typing import (
17
17
  )
18
18
  from typing_extensions import Self, get_args, get_origin
19
19
 
20
- from strawberry.streamable import StrawberryStreamable
21
20
  from strawberry.types.base import (
22
21
  StrawberryList,
23
22
  StrawberryMaybe,
@@ -144,8 +143,6 @@ class StrawberryAnnotation:
144
143
 
145
144
  if self._is_lazy_type(evaled_type):
146
145
  return evaled_type
147
- if self._is_streamable(evaled_type, args):
148
- return self.create_list(list[evaled_type])
149
146
  if self._is_list(evaled_type):
150
147
  return self.create_list(evaled_type)
151
148
  if self._is_maybe(evaled_type):
@@ -335,10 +332,6 @@ class StrawberryAnnotation:
335
332
  def _is_maybe(cls, annotation: Any) -> bool:
336
333
  return _annotation_is_maybe(annotation)
337
334
 
338
- @classmethod
339
- def _is_streamable(cls, annotation: Any, args: list[Any]) -> bool:
340
- return any(isinstance(arg, StrawberryStreamable) for arg in args)
341
-
342
335
  @classmethod
343
336
  def _is_strawberry_type(cls, evaled_type: Any) -> bool:
344
337
  # Prevent import cycles
@@ -1,15 +1,15 @@
1
1
  try:
2
2
  from .app import app
3
- from .commands.codegen import codegen as codegen # noqa: PLC0414
4
- from .commands.export_schema import export_schema as export_schema # noqa: PLC0414
3
+ from .commands.codegen import codegen as codegen
4
+ from .commands.export_schema import export_schema as export_schema
5
5
  from .commands.locate_definition import (
6
- locate_definition as locate_definition, # noqa: PLC0414
6
+ locate_definition as locate_definition,
7
7
  )
8
8
  from .commands.schema_codegen import (
9
- schema_codegen as schema_codegen, # noqa: PLC0414
9
+ schema_codegen as schema_codegen,
10
10
  )
11
- from .commands.server import server as server # noqa: PLC0414
12
- from .commands.upgrade import upgrade as upgrade # noqa: PLC0414
11
+ from .commands.server import server as server
12
+ from .commands.upgrade import upgrade as upgrade
13
13
 
14
14
  def run() -> None:
15
15
  app()
@@ -1,13 +1,11 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from dataclasses import dataclass
4
- from typing import Any, Optional
4
+ from typing import TYPE_CHECKING, Any, Optional
5
5
  from typing_extensions import Literal, TypedDict
6
6
 
7
- from strawberry.schema._graphql_core import (
8
- GraphQLIncrementalExecutionResults,
9
- ResultType,
10
- )
7
+ if TYPE_CHECKING:
8
+ from strawberry.types import ExecutionResult
11
9
 
12
10
 
13
11
  class GraphQLHTTPResponse(TypedDict, total=False):
@@ -16,16 +14,13 @@ class GraphQLHTTPResponse(TypedDict, total=False):
16
14
  extensions: Optional[dict[str, object]]
17
15
 
18
16
 
19
- def process_result(result: ResultType) -> GraphQLHTTPResponse:
20
- if isinstance(result, GraphQLIncrementalExecutionResults):
21
- return result
17
+ def process_result(result: ExecutionResult) -> GraphQLHTTPResponse:
18
+ data: GraphQLHTTPResponse = {"data": result.data}
22
19
 
23
- errors, extensions = result.errors, result.extensions
24
- data: GraphQLHTTPResponse = {
25
- "data": result.data,
26
- **({"errors": [err.formatted for err in errors]} if errors else {}),
27
- **({"extensions": extensions} if extensions else {}),
28
- }
20
+ if result.errors:
21
+ data["errors"] = [err.formatted for err in result.errors]
22
+ if result.extensions:
23
+ data["extensions"] = result.extensions
29
24
 
30
25
  return data
31
26
 
@@ -25,9 +25,6 @@ from strawberry.http import (
25
25
  process_result,
26
26
  )
27
27
  from strawberry.http.ides import GraphQL_IDE
28
- from strawberry.schema._graphql_core import (
29
- GraphQLIncrementalExecutionResults,
30
- )
31
28
  from strawberry.schema.base import BaseSchema
32
29
  from strawberry.schema.exceptions import (
33
30
  CannotGetOperationTypeError,
@@ -201,8 +198,6 @@ class AsyncBaseHTTPView(
201
198
  if not self.allow_queries_via_get and request_adapter.method == "GET":
202
199
  allowed_operation_types = allowed_operation_types - {OperationType.QUERY}
203
200
 
204
- assert self.schema
205
-
206
201
  if request_data.protocol == "multipart-subscription":
207
202
  return await self.schema.subscribe(
208
203
  request_data.query, # type: ignore
@@ -266,7 +261,7 @@ class AsyncBaseHTTPView(
266
261
  root_value: Optional[RootValue] = UNSET,
267
262
  ) -> WebSocketResponse: ...
268
263
 
269
- async def run( # noqa: PLR0915
264
+ async def run(
270
265
  self,
271
266
  request: Union[Request, WebSocketRequest],
272
267
  context: Context = UNSET,
@@ -294,7 +289,7 @@ class AsyncBaseHTTPView(
294
289
  view=self,
295
290
  websocket=websocket,
296
291
  context=context,
297
- root_value=root_value, # type: ignore
292
+ root_value=root_value,
298
293
  schema=self.schema,
299
294
  debug=self.debug,
300
295
  connection_init_wait_timeout=self.connection_init_wait_timeout,
@@ -304,7 +299,7 @@ class AsyncBaseHTTPView(
304
299
  view=self,
305
300
  websocket=websocket,
306
301
  context=context,
307
- root_value=root_value, # type: ignore
302
+ root_value=root_value,
308
303
  schema=self.schema,
309
304
  debug=self.debug,
310
305
  keep_alive=self.keep_alive,
@@ -357,75 +352,6 @@ class AsyncBaseHTTPView(
357
352
  "Content-Type": "multipart/mixed;boundary=graphql;subscriptionSpec=1.0,application/json",
358
353
  },
359
354
  )
360
- if isinstance(result, GraphQLIncrementalExecutionResults):
361
-
362
- async def stream() -> AsyncGenerator[str, None]:
363
- yield "---"
364
-
365
- response = await self.process_result(request, result.initial_result)
366
-
367
- response["hasNext"] = result.initial_result.has_next
368
- response["pending"] = [
369
- p.formatted for p in result.initial_result.pending
370
- ]
371
- response["extensions"] = result.initial_result.extensions
372
-
373
- yield self.encode_multipart_data(response, "-")
374
-
375
- all_pending = result.initial_result.pending
376
-
377
- async for value in result.subsequent_results:
378
- response = {
379
- "hasNext": value.has_next,
380
- "extensions": value.extensions,
381
- }
382
-
383
- if value.pending:
384
- response["pending"] = [p.formatted for p in value.pending]
385
-
386
- if value.completed:
387
- response["completed"] = [p.formatted for p in value.completed]
388
-
389
- if value.incremental:
390
- incremental = []
391
-
392
- all_pending.extend(value.pending)
393
-
394
- for incremental_value in value.incremental:
395
- pending_value = next(
396
- (
397
- v
398
- for v in all_pending
399
- if v.id == incremental_value.id
400
- ),
401
- None,
402
- )
403
-
404
- assert pending_value
405
-
406
- incremental.append(
407
- {
408
- **incremental_value.formatted,
409
- "path": pending_value.path,
410
- "label": pending_value.label,
411
- }
412
- )
413
-
414
- response["incremental"] = incremental
415
-
416
- yield self.encode_multipart_data(response, "-")
417
-
418
- yield "--\r\n"
419
-
420
- return await self.create_streaming_response(
421
- request,
422
- stream,
423
- sub_response,
424
- headers={
425
- "Transfer-Encoding": "chunked",
426
- "Content-Type": 'multipart/mixed; boundary="-"',
427
- },
428
- )
429
355
 
430
356
  response_data = await self.process_result(request=request, result=result)
431
357
 
@@ -437,16 +363,12 @@ class AsyncBaseHTTPView(
437
363
  )
438
364
 
439
365
  def encode_multipart_data(self, data: Any, separator: str) -> str:
440
- encoded_data = self.encode_json(data)
441
-
442
366
  return "".join(
443
367
  [
444
- "\r\n",
445
- "Content-Type: application/json; charset=utf-8\r\n",
446
- "Content-Length: " + str(len(encoded_data)) + "\r\n",
447
- "\r\n",
448
- encoded_data,
449
- f"\r\n--{separator}",
368
+ f"\r\n--{separator}\r\n",
369
+ "Content-Type: application/json\r\n\r\n",
370
+ self.encode_json(data),
371
+ "\n",
450
372
  ]
451
373
  )
452
374
 
@@ -605,11 +527,32 @@ class AsyncBaseHTTPView(
605
527
  else:
606
528
  raise HTTPException(400, "Unsupported content type")
607
529
 
530
+ query = data.get("query")
531
+ if not isinstance(query, (str, type(None))):
532
+ raise HTTPException(
533
+ 400,
534
+ "The GraphQL operation's `query` must be a string or null, if provided.",
535
+ )
536
+
537
+ variables = data.get("variables")
538
+ if not isinstance(variables, (dict, type(None))):
539
+ raise HTTPException(
540
+ 400,
541
+ "The GraphQL operation's `variables` must be an object or null, if provided.",
542
+ )
543
+
544
+ extensions = data.get("extensions")
545
+ if not isinstance(extensions, (dict, type(None))):
546
+ raise HTTPException(
547
+ 400,
548
+ "The GraphQL operation's `extensions` must be an object or null, if provided.",
549
+ )
550
+
608
551
  return GraphQLRequestData(
609
- query=data.get("query"),
610
- variables=data.get("variables"),
552
+ query=query,
553
+ variables=variables,
611
554
  operation_name=data.get("operationName"),
612
- extensions=data.get("extensions"),
555
+ extensions=extensions,
613
556
  protocol=protocol,
614
557
  )
615
558
 
@@ -116,8 +116,6 @@ class SyncBaseHTTPView(
116
116
  if not self.allow_queries_via_get and request_adapter.method == "GET":
117
117
  allowed_operation_types = allowed_operation_types - {OperationType.QUERY}
118
118
 
119
- assert self.schema
120
-
121
119
  return self.schema.execute_sync(
122
120
  request_data.query,
123
121
  root_value=root_value,
@@ -154,11 +152,32 @@ class SyncBaseHTTPView(
154
152
  else:
155
153
  raise HTTPException(400, "Unsupported content type")
156
154
 
155
+ query = data.get("query")
156
+ if not isinstance(query, (str, type(None))):
157
+ raise HTTPException(
158
+ 400,
159
+ "The GraphQL operation's `query` must be a string or null, if provided.",
160
+ )
161
+
162
+ variables = data.get("variables")
163
+ if not isinstance(variables, (dict, type(None))):
164
+ raise HTTPException(
165
+ 400,
166
+ "The GraphQL operation's `variables` must be an object or null, if provided.",
167
+ )
168
+
169
+ extensions = data.get("extensions")
170
+ if not isinstance(extensions, (dict, type(None))):
171
+ raise HTTPException(
172
+ 400,
173
+ "The GraphQL operation's `extensions` must be an object or null, if provided.",
174
+ )
175
+
157
176
  return GraphQLRequestData(
158
- query=data.get("query"),
159
- variables=data.get("variables"),
177
+ query=query,
178
+ variables=variables,
160
179
  operation_name=data.get("operationName"),
161
- extensions=data.get("extensions"),
180
+ extensions=extensions,
162
181
  )
163
182
 
164
183
  def _handle_errors(
@@ -561,9 +561,9 @@ def print_schema_definition(
561
561
  def print_directive(
562
562
  directive: GraphQLDirective, *, schema: BaseSchema
563
563
  ) -> Optional[str]:
564
- strawberry_directive = directive.extensions.get("strawberry-definition")
564
+ strawberry_directive = directive.extensions["strawberry-definition"]
565
565
 
566
- if strawberry_directive is None or (
566
+ if (
567
567
  isinstance(strawberry_directive, StrawberrySchemaDirective)
568
568
  and not strawberry_directive.print_definition
569
569
  ):
@@ -621,14 +621,6 @@ def print_schema(schema: BaseSchema) -> str:
621
621
  if (printed_directive := print_directive(directive, schema=schema)) is not None
622
622
  ]
623
623
 
624
- if schema.config.enable_experimental_incremental_execution:
625
- directives.append(
626
- "directive @defer(if: Boolean, label: String) on FRAGMENT_SPREAD | INLINE_FRAGMENT"
627
- )
628
- directives.append(
629
- "directive @stream(if: Boolean, label: String, initialCount: Int = 0) on FIELD"
630
- )
631
-
632
624
  def _name_getter(type_: Any) -> str:
633
625
  if hasattr(type_, "name"):
634
626
  return type_.name
@@ -261,7 +261,12 @@ class ConnectionExtension(FieldExtension):
261
261
  if isinstance(f_type, StrawberryOptional):
262
262
  f_type = f_type.of_type
263
263
 
264
+ if isinstance(f_type, LazyType):
265
+ f_type = f_type.resolve_type()
266
+
264
267
  type_origin = get_origin(f_type) if is_generic_alias(f_type) else f_type
268
+ if isinstance(type_origin, LazyType):
269
+ type_origin = type_origin.resolve_type()
265
270
 
266
271
  if not isinstance(type_origin, type) or not issubclass(type_origin, Connection):
267
272
  raise RelayWrongAnnotationError(field.name, cast("type", field.origin))
@@ -17,7 +17,6 @@ class StrawberryConfig:
17
17
  relay_use_legacy_global_id: bool = False
18
18
  disable_field_suggestions: bool = False
19
19
  info_class: type[Info] = Info
20
- enable_experimental_incremental_execution: bool = False
21
20
  _unsafe_disable_same_type_validation: bool = False
22
21
 
23
22
  def __post_init__(
@@ -150,8 +150,9 @@ class NameConverter:
150
150
  type_ = eval_type(type_)
151
151
 
152
152
  if isinstance(type_, LazyType):
153
- name = type_.type_name
154
- elif isinstance(type_, EnumDefinition):
153
+ type_ = type_.resolve_type()
154
+
155
+ if isinstance(type_, EnumDefinition):
155
156
  name = type_.name
156
157
  elif isinstance(type_, StrawberryUnion):
157
158
  name = type_.graphql_name if type_.graphql_name else self.from_union(type_)
@@ -15,6 +15,7 @@ from typing import (
15
15
  cast,
16
16
  )
17
17
 
18
+ from graphql import ExecutionContext as GraphQLExecutionContext
18
19
  from graphql import ExecutionResult as GraphQLExecutionResult
19
20
  from graphql import (
20
21
  ExecutionResult as OriginalExecutionResult,
@@ -35,6 +36,7 @@ from graphql import (
35
36
  parse,
36
37
  validate_schema,
37
38
  )
39
+ from graphql.execution import execute, subscribe
38
40
  from graphql.execution.middleware import MiddlewareManager
39
41
  from graphql.type.directives import specified_directives
40
42
  from graphql.validation import validate
@@ -67,15 +69,6 @@ from strawberry.utils.aio import aclosing
67
69
  from strawberry.utils.await_maybe import await_maybe
68
70
 
69
71
  from . import compat
70
- from ._graphql_core import (
71
- GraphQLExecutionContext,
72
- GraphQLIncrementalExecutionResults,
73
- ResultType,
74
- execute,
75
- experimental_execute_incrementally,
76
- incremental_execution_directives,
77
- subscribe,
78
- )
79
72
  from .base import BaseSchema
80
73
  from .config import StrawberryConfig
81
74
  from .exceptions import CannotGetOperationTypeError, InvalidOperationTypeError
@@ -106,7 +99,6 @@ OriginSubscriptionResult = Union[
106
99
  AsyncIterator[OriginalExecutionResult],
107
100
  ]
108
101
 
109
-
110
102
  DEFAULT_ALLOWED_OPERATION_TYPES = {
111
103
  OperationType.QUERY,
112
104
  OperationType.MUTATION,
@@ -329,16 +321,11 @@ class Schema(BaseSchema):
329
321
  graphql_types.append(graphql_type)
330
322
 
331
323
  try:
332
- directives = specified_directives + tuple(graphql_directives)
333
-
334
- if self.config.enable_experimental_incremental_execution:
335
- directives = tuple(directives) + tuple(incremental_execution_directives)
336
-
337
324
  self._schema = GraphQLSchema(
338
325
  query=query_type,
339
326
  mutation=mutation_type,
340
327
  subscription=subscription_type if subscription else None,
341
- directives=directives,
328
+ directives=specified_directives + tuple(graphql_directives),
342
329
  types=graphql_types,
343
330
  extensions={
344
331
  GraphQLCoreConverter.DEFINITION_BACKREF: self,
@@ -531,16 +518,12 @@ class Schema(BaseSchema):
531
518
  async def _handle_execution_result(
532
519
  self,
533
520
  context: ExecutionContext,
534
- result: ResultType,
521
+ result: Union[GraphQLExecutionResult, ExecutionResult],
535
522
  extensions_runner: SchemaExtensionsRunner,
536
523
  *,
537
524
  # TODO: can we remove this somehow, see comment in execute
538
525
  skip_process_errors: bool = False,
539
526
  ) -> ExecutionResult:
540
- # TODO: handle this, also, why do we have both GraphQLExecutionResult and ExecutionResult?
541
- if isinstance(result, GraphQLIncrementalExecutionResults):
542
- return result
543
-
544
527
  # Set errors on the context so that it's easier
545
528
  # to access in extensions
546
529
  if result.errors:
@@ -583,17 +566,6 @@ class Schema(BaseSchema):
583
566
  extensions_runner = self.create_extensions_runner(execution_context, extensions)
584
567
  middleware_manager = self._get_middleware_manager(extensions)
585
568
 
586
- execute_function = execute
587
-
588
- if self.config.enable_experimental_incremental_execution:
589
- execute_function = experimental_execute_incrementally
590
-
591
- if execute_function is None:
592
- raise RuntimeError(
593
- "Incremental execution is enabled but experimental_execute_incrementally is not available, "
594
- "please install graphql-core>=3.3.0"
595
- )
596
-
597
569
  custom_context_kwargs = self._get_custom_context_kwargs(operation_extensions)
598
570
 
599
571
  try:
@@ -614,7 +586,7 @@ class Schema(BaseSchema):
614
586
  async with extensions_runner.executing():
615
587
  if not execution_context.result:
616
588
  result = await await_maybe(
617
- execute_function(
589
+ execute(
618
590
  self._schema,
619
591
  execution_context.graphql_document,
620
592
  root_value=execution_context.root_value,
@@ -631,9 +603,7 @@ class Schema(BaseSchema):
631
603
  result = execution_context.result
632
604
  # Also set errors on the execution_context so that it's easier
633
605
  # to access in extensions
634
-
635
- # TODO: maybe here use the first result from incremental execution if it exists
636
- if isinstance(result, GraphQLExecutionResult) and result.errors:
606
+ if result.errors:
637
607
  execution_context.errors = result.errors
638
608
 
639
609
  # Run the `Schema.process_errors` function here before
@@ -689,16 +659,6 @@ class Schema(BaseSchema):
689
659
  extensions_runner = self.create_extensions_runner(execution_context, extensions)
690
660
  middleware_manager = self._get_middleware_manager(extensions)
691
661
 
692
- execute_function = execute
693
-
694
- if self.config.enable_experimental_incremental_execution:
695
- execute_function = experimental_execute_incrementally
696
-
697
- if execute_function is None:
698
- raise RuntimeError(
699
- "Incremental execution is enabled but experimental_execute_incrementally is not available, "
700
- "please install graphql-core>=3.3.0"
701
- )
702
662
  custom_context_kwargs = self._get_custom_context_kwargs(operation_extensions)
703
663
 
704
664
  try:
@@ -749,7 +709,7 @@ class Schema(BaseSchema):
749
709
 
750
710
  with extensions_runner.executing():
751
711
  if not execution_context.result:
752
- result = execute_function(
712
+ result = execute(
753
713
  self._schema,
754
714
  execution_context.graphql_document,
755
715
  root_value=execution_context.root_value,