strawberry-graphql 0.269.0.dev1746905409__tar.gz → 0.269.0.dev1747164009__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 (237) hide show
  1. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/PKG-INFO +1 -1
  2. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/pyproject.toml +1 -1
  3. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/__init__.py +0 -2
  4. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/annotation.py +0 -7
  5. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/http/__init__.py +10 -14
  6. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/http/async_base_view.py +8 -81
  7. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/http/base.py +6 -0
  8. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/http/sync_base_view.py +2 -0
  9. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/printer/printer.py +2 -10
  10. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/base.py +3 -0
  11. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/config.py +0 -1
  12. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/schema.py +94 -48
  13. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/schema_converter.py +13 -3
  14. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/types/scalar.py +1 -0
  15. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/static/graphiql.html +5 -5
  16. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/info.py +5 -0
  17. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/scalar.py +2 -0
  18. strawberry_graphql-0.269.0.dev1746905409/strawberry/schema/_graphql_core.py +0 -46
  19. strawberry_graphql-0.269.0.dev1746905409/strawberry/streamable.py +0 -36
  20. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/LICENSE +0 -0
  21. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/README.md +0 -0
  22. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/__main__.py +0 -0
  23. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/aiohttp/__init__.py +0 -0
  24. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/aiohttp/test/__init__.py +0 -0
  25. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/aiohttp/test/client.py +0 -0
  26. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/aiohttp/views.py +0 -0
  27. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/asgi/__init__.py +0 -0
  28. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/asgi/test/__init__.py +0 -0
  29. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/asgi/test/client.py +0 -0
  30. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/chalice/__init__.py +0 -0
  31. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/chalice/views.py +0 -0
  32. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/channels/__init__.py +0 -0
  33. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/channels/handlers/__init__.py +0 -0
  34. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/channels/handlers/base.py +0 -0
  35. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/channels/handlers/http_handler.py +0 -0
  36. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/channels/handlers/ws_handler.py +0 -0
  37. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/channels/router.py +0 -0
  38. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/channels/testing.py +0 -0
  39. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/__init__.py +0 -0
  40. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/app.py +0 -0
  41. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/commands/__init__.py +0 -0
  42. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/commands/codegen.py +0 -0
  43. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/commands/export_schema.py +0 -0
  44. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/commands/schema_codegen.py +0 -0
  45. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/commands/server.py +0 -0
  46. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/commands/upgrade/__init__.py +0 -0
  47. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
  48. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/commands/upgrade/_run_codemod.py +0 -0
  49. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/constants.py +0 -0
  50. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/debug_server.py +0 -0
  51. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/utils/__init__.py +0 -0
  52. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/cli/utils/load_schema.py +0 -0
  53. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/codegen/__init__.py +0 -0
  54. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/codegen/exceptions.py +0 -0
  55. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/codegen/plugins/__init__.py +0 -0
  56. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/codegen/plugins/print_operation.py +0 -0
  57. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/codegen/plugins/python.py +0 -0
  58. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/codegen/plugins/typescript.py +0 -0
  59. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/codegen/query_codegen.py +0 -0
  60. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/codegen/types.py +0 -0
  61. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/codemods/__init__.py +0 -0
  62. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/codemods/annotated_unions.py +0 -0
  63. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/codemods/update_imports.py +0 -0
  64. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/dataloader.py +0 -0
  65. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/directive.py +0 -0
  66. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/django/__init__.py +0 -0
  67. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/django/apps.py +0 -0
  68. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/django/context.py +0 -0
  69. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/django/test/__init__.py +0 -0
  70. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/django/test/client.py +0 -0
  71. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/django/views.py +0 -0
  72. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/__init__.py +0 -0
  73. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/conflicting_arguments.py +0 -0
  74. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/duplicated_type_name.py +0 -0
  75. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/exception.py +0 -0
  76. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/exception_source.py +0 -0
  77. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/handler.py +0 -0
  78. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/invalid_argument_type.py +0 -0
  79. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/invalid_union_type.py +0 -0
  80. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/missing_arguments_annotations.py +0 -0
  81. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/missing_dependencies.py +0 -0
  82. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/missing_field_annotation.py +0 -0
  83. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/missing_return_annotation.py +0 -0
  84. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/object_is_not_a_class.py +0 -0
  85. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/object_is_not_an_enum.py +0 -0
  86. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/permission_fail_silently_requires_optional.py +0 -0
  87. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/private_strawberry_field.py +0 -0
  88. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/scalar_already_registered.py +0 -0
  89. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/syntax.py +0 -0
  90. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/unresolved_field_type.py +0 -0
  91. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/utils/__init__.py +0 -0
  92. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/exceptions/utils/source_finder.py +0 -0
  93. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/experimental/__init__.py +0 -0
  94. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/experimental/pydantic/__init__.py +0 -0
  95. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/experimental/pydantic/_compat.py +0 -0
  96. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/experimental/pydantic/conversion.py +0 -0
  97. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/experimental/pydantic/conversion_types.py +0 -0
  98. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/experimental/pydantic/error_type.py +0 -0
  99. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/experimental/pydantic/exceptions.py +0 -0
  100. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/experimental/pydantic/fields.py +0 -0
  101. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/experimental/pydantic/object_type.py +0 -0
  102. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/experimental/pydantic/utils.py +0 -0
  103. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/ext/LICENSE +0 -0
  104. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/ext/__init__.py +0 -0
  105. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/ext/dataclasses/LICENSE +0 -0
  106. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/ext/dataclasses/__init__.py +0 -0
  107. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/ext/dataclasses/dataclasses.py +0 -0
  108. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/ext/mypy_plugin.py +0 -0
  109. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/__init__.py +0 -0
  110. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/add_validation_rules.py +0 -0
  111. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/base_extension.py +0 -0
  112. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/context.py +0 -0
  113. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/directives.py +0 -0
  114. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/disable_validation.py +0 -0
  115. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/field_extension.py +0 -0
  116. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/mask_errors.py +0 -0
  117. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/max_aliases.py +0 -0
  118. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/max_tokens.py +0 -0
  119. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/parser_cache.py +0 -0
  120. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/pyinstrument.py +0 -0
  121. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/query_depth_limiter.py +0 -0
  122. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/runner.py +0 -0
  123. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/tracing/__init__.py +0 -0
  124. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/tracing/apollo.py +0 -0
  125. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/tracing/datadog.py +0 -0
  126. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/tracing/opentelemetry.py +0 -0
  127. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/tracing/utils.py +0 -0
  128. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/utils.py +0 -0
  129. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/extensions/validation_cache.py +0 -0
  130. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/fastapi/__init__.py +0 -0
  131. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/fastapi/context.py +0 -0
  132. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/fastapi/router.py +0 -0
  133. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/federation/__init__.py +0 -0
  134. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/federation/argument.py +0 -0
  135. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/federation/enum.py +0 -0
  136. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/federation/field.py +0 -0
  137. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/federation/mutation.py +0 -0
  138. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/federation/object_type.py +0 -0
  139. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/federation/scalar.py +0 -0
  140. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/federation/schema.py +0 -0
  141. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/federation/schema_directive.py +0 -0
  142. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/federation/schema_directives.py +0 -0
  143. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/federation/types.py +0 -0
  144. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/federation/union.py +0 -0
  145. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/field_extensions/__init__.py +0 -0
  146. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/field_extensions/input_mutation.py +0 -0
  147. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/file_uploads/__init__.py +0 -0
  148. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/file_uploads/scalars.py +0 -0
  149. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/file_uploads/utils.py +0 -0
  150. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/flask/__init__.py +0 -0
  151. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/flask/views.py +0 -0
  152. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/http/exceptions.py +0 -0
  153. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/http/ides.py +0 -0
  154. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/http/parse_content_type.py +0 -0
  155. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/http/temporal_response.py +0 -0
  156. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/http/types.py +0 -0
  157. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/http/typevars.py +0 -0
  158. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/litestar/__init__.py +0 -0
  159. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/litestar/controller.py +0 -0
  160. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/parent.py +0 -0
  161. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/permission.py +0 -0
  162. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/printer/__init__.py +0 -0
  163. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/printer/ast_from_value.py +0 -0
  164. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/py.typed +0 -0
  165. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/quart/__init__.py +0 -0
  166. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/quart/views.py +0 -0
  167. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/relay/__init__.py +0 -0
  168. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/relay/exceptions.py +0 -0
  169. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/relay/fields.py +0 -0
  170. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/relay/types.py +0 -0
  171. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/relay/utils.py +0 -0
  172. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/resolvers.py +0 -0
  173. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/sanic/__init__.py +0 -0
  174. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/sanic/context.py +0 -0
  175. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/sanic/utils.py +0 -0
  176. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/sanic/views.py +0 -0
  177. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/scalars.py +0 -0
  178. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/__init__.py +0 -0
  179. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/compat.py +0 -0
  180. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/exceptions.py +0 -0
  181. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/name_converter.py +0 -0
  182. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/types/__init__.py +0 -0
  183. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/types/base_scalars.py +0 -0
  184. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/types/concrete_type.py +0 -0
  185. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/validation_rules/__init__.py +0 -0
  186. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema/validation_rules/one_of.py +0 -0
  187. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema_codegen/__init__.py +0 -0
  188. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema_directive.py +0 -0
  189. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/schema_directives.py +0 -0
  190. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/static/apollo-sandbox.html +0 -0
  191. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/static/pathfinder.html +0 -0
  192. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/subscriptions/__init__.py +0 -0
  193. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/subscriptions/protocols/__init__.py +0 -0
  194. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
  195. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +0 -0
  196. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +0 -0
  197. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/subscriptions/protocols/graphql_ws/__init__.py +0 -0
  198. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +0 -0
  199. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/subscriptions/protocols/graphql_ws/types.py +0 -0
  200. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/test/__init__.py +0 -0
  201. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/test/client.py +0 -0
  202. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/tools/__init__.py +0 -0
  203. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/tools/create_type.py +0 -0
  204. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/tools/merge_types.py +0 -0
  205. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/__init__.py +0 -0
  206. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/arguments.py +0 -0
  207. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/auto.py +0 -0
  208. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/base.py +0 -0
  209. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/cast.py +0 -0
  210. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/enum.py +0 -0
  211. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/execution.py +0 -0
  212. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/field.py +0 -0
  213. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/fields/__init__.py +0 -0
  214. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/fields/resolver.py +0 -0
  215. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/graphql.py +0 -0
  216. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/lazy_type.py +0 -0
  217. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/maybe.py +0 -0
  218. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/mutation.py +0 -0
  219. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/nodes.py +0 -0
  220. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/object_type.py +0 -0
  221. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/private.py +0 -0
  222. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/type_resolver.py +0 -0
  223. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/union.py +0 -0
  224. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/types/unset.py +0 -0
  225. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/__init__.py +0 -0
  226. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/aio.py +0 -0
  227. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/await_maybe.py +0 -0
  228. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/dataclasses.py +0 -0
  229. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/debug.py +0 -0
  230. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/deprecations.py +0 -0
  231. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/graphql_lexer.py +0 -0
  232. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/importer.py +0 -0
  233. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/inspect.py +0 -0
  234. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/logging.py +0 -0
  235. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/operation.py +0 -0
  236. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/str_converters.py +0 -0
  237. {strawberry_graphql-0.269.0.dev1746905409 → strawberry_graphql-0.269.0.dev1747164009}/strawberry/utils/typing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: strawberry-graphql
3
- Version: 0.269.0.dev1746905409
3
+ Version: 0.269.0.dev1747164009
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
  [tool.poetry]
2
2
  name = "strawberry-graphql"
3
- version = "0.269.0.dev.1746905409"
3
+ version = "0.269.0.dev.1747164009"
4
4
  packages = [{ include = "strawberry" }]
5
5
  description = "A library for creating GraphQL APIs"
6
6
  authors = ["Patrick Arminio <patrick.arminio@gmail.com>"]
@@ -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 type_of := self._get_maybe_type(evaled_type):
@@ -326,10 +323,6 @@ class StrawberryAnnotation:
326
323
  def _get_maybe_type(cls, annotation: Any) -> type | None:
327
324
  return get_args(annotation)[0] if _annotation_is_maybe(annotation) else None
328
325
 
329
- @classmethod
330
- def _is_streamable(cls, annotation: Any, args: list[Any]) -> bool:
331
- return any(isinstance(arg, StrawberryStreamable) for arg in args)
332
-
333
326
  @classmethod
334
327
  def _is_strawberry_type(cls, evaled_type: Any) -> bool:
335
328
  # Prevent import cycles
@@ -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
 
@@ -37,6 +32,7 @@ class GraphQLRequestData:
37
32
  query: Optional[str]
38
33
  variables: Optional[dict[str, Any]]
39
34
  operation_name: Optional[str]
35
+ extensions: Optional[dict[str, Any]]
40
36
  protocol: Literal["http", "multipart-subscription"] = "http"
41
37
 
42
38
 
@@ -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 InvalidOperationTypeError
33
30
  from strawberry.subscriptions import GRAPHQL_TRANSPORT_WS_PROTOCOL, GRAPHQL_WS_PROTOCOL
@@ -207,6 +204,7 @@ class AsyncBaseHTTPView(
207
204
  context_value=context,
208
205
  root_value=root_value,
209
206
  operation_name=request_data.operation_name,
207
+ operation_extensions=request_data.extensions,
210
208
  )
211
209
 
212
210
  return await self.schema.execute(
@@ -216,6 +214,7 @@ class AsyncBaseHTTPView(
216
214
  context_value=context,
217
215
  operation_name=request_data.operation_name,
218
216
  allowed_operation_types=allowed_operation_types,
217
+ operation_extensions=request_data.extensions,
219
218
  )
220
219
 
221
220
  async def parse_multipart(self, request: AsyncHTTPRequestAdapter) -> dict[str, str]:
@@ -261,7 +260,7 @@ class AsyncBaseHTTPView(
261
260
  root_value: Optional[RootValue] = UNSET,
262
261
  ) -> WebSocketResponse: ...
263
262
 
264
- async def run( # noqa: PLR0915
263
+ async def run(
265
264
  self,
266
265
  request: Union[Request, WebSocketRequest],
267
266
  context: Optional[Context] = UNSET,
@@ -352,75 +351,6 @@ class AsyncBaseHTTPView(
352
351
  "Content-Type": "multipart/mixed;boundary=graphql;subscriptionSpec=1.0,application/json",
353
352
  },
354
353
  )
355
- if isinstance(result, GraphQLIncrementalExecutionResults):
356
-
357
- async def stream() -> AsyncGenerator[str, None]:
358
- yield "---"
359
-
360
- response = await self.process_result(request, result.initial_result)
361
-
362
- response["hasNext"] = result.initial_result.has_next
363
- response["pending"] = [
364
- p.formatted for p in result.initial_result.pending
365
- ]
366
- response["extensions"] = result.initial_result.extensions
367
-
368
- yield self.encode_multipart_data(response, "-")
369
-
370
- all_pending = result.initial_result.pending
371
-
372
- async for value in result.subsequent_results:
373
- response = {
374
- "hasNext": value.has_next,
375
- "extensions": value.extensions,
376
- }
377
-
378
- if value.pending:
379
- response["pending"] = [p.formatted for p in value.pending]
380
-
381
- if value.completed:
382
- response["completed"] = [p.formatted for p in value.completed]
383
-
384
- if value.incremental:
385
- incremental = []
386
-
387
- all_pending.extend(value.pending)
388
-
389
- for incremental_value in value.incremental:
390
- pending_value = next(
391
- (
392
- v
393
- for v in all_pending
394
- if v.id == incremental_value.id
395
- ),
396
- None,
397
- )
398
-
399
- assert pending_value
400
-
401
- incremental.append(
402
- {
403
- **incremental_value.formatted,
404
- "path": pending_value.path,
405
- "label": pending_value.label,
406
- }
407
- )
408
-
409
- response["incremental"] = incremental
410
-
411
- yield self.encode_multipart_data(response, "-")
412
-
413
- yield "--\r\n"
414
-
415
- return await self.create_streaming_response(
416
- request,
417
- stream,
418
- sub_response,
419
- headers={
420
- "Transfer-Encoding": "chunked",
421
- "Content-Type": 'multipart/mixed; boundary="-"',
422
- },
423
- )
424
354
 
425
355
  response_data = await self.process_result(request=request, result=result)
426
356
 
@@ -432,16 +362,12 @@ class AsyncBaseHTTPView(
432
362
  )
433
363
 
434
364
  def encode_multipart_data(self, data: Any, separator: str) -> str:
435
- encoded_data = self.encode_json(data)
436
-
437
365
  return "".join(
438
366
  [
439
- "\r\n",
440
- "Content-Type: application/json; charset=utf-8\r\n",
441
- "Content-Length: " + str(len(encoded_data)) + "\r\n",
442
- "\r\n",
443
- encoded_data,
444
- f"\r\n--{separator}",
367
+ f"\r\n--{separator}\r\n",
368
+ "Content-Type: application/json\r\n\r\n",
369
+ self.encode_json(data),
370
+ "\n",
445
371
  ]
446
372
  )
447
373
 
@@ -548,6 +474,7 @@ class AsyncBaseHTTPView(
548
474
  query=data.get("query"),
549
475
  variables=data.get("variables"),
550
476
  operation_name=data.get("operationName"),
477
+ extensions=data.get("extensions"),
551
478
  protocol=protocol,
552
479
  )
553
480
 
@@ -59,6 +59,12 @@ class BaseView(Generic[Request]):
59
59
  if variables:
60
60
  params["variables"] = self.parse_json(variables)
61
61
 
62
+ if "extensions" in params:
63
+ extensions = params["extensions"]
64
+
65
+ if extensions:
66
+ params["extensions"] = self.parse_json(extensions)
67
+
62
68
  return params
63
69
 
64
70
  @property
@@ -122,6 +122,7 @@ class SyncBaseHTTPView(
122
122
  context_value=context,
123
123
  operation_name=request_data.operation_name,
124
124
  allowed_operation_types=allowed_operation_types,
125
+ operation_extensions=request_data.extensions,
125
126
  )
126
127
 
127
128
  def parse_multipart(self, request: SyncHTTPRequestAdapter) -> dict[str, str]:
@@ -154,6 +155,7 @@ class SyncBaseHTTPView(
154
155
  query=data.get("query"),
155
156
  variables=data.get("variables"),
156
157
  operation_name=data.get("operationName"),
158
+ extensions=data.get("extensions"),
157
159
  )
158
160
 
159
161
  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
@@ -47,6 +47,7 @@ class BaseSchema(Protocol):
47
47
  root_value: Optional[Any] = None,
48
48
  operation_name: Optional[str] = None,
49
49
  allowed_operation_types: Optional[Iterable[OperationType]] = None,
50
+ operation_extensions: Optional[dict[str, Any]] = None,
50
51
  ) -> ExecutionResult:
51
52
  raise NotImplementedError
52
53
 
@@ -59,6 +60,7 @@ class BaseSchema(Protocol):
59
60
  root_value: Optional[Any] = None,
60
61
  operation_name: Optional[str] = None,
61
62
  allowed_operation_types: Optional[Iterable[OperationType]] = None,
63
+ operation_extensions: Optional[dict[str, Any]] = None,
62
64
  ) -> ExecutionResult:
63
65
  raise NotImplementedError
64
66
 
@@ -70,6 +72,7 @@ class BaseSchema(Protocol):
70
72
  context_value: Optional[Any] = None,
71
73
  root_value: Optional[Any] = None,
72
74
  operation_name: Optional[str] = None,
75
+ operation_extensions: Optional[dict[str, Any]] = None,
73
76
  ) -> SubscriptionResult:
74
77
  raise NotImplementedError
75
78
 
@@ -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
 
22
21
  def __post_init__(
23
22
  self,
@@ -9,26 +9,34 @@ from typing import (
9
9
  TYPE_CHECKING,
10
10
  Any,
11
11
  Callable,
12
+ NamedTuple,
12
13
  Optional,
13
14
  Union,
14
15
  cast,
15
16
  )
16
17
 
18
+ from graphql import ExecutionContext as GraphQLExecutionContext
17
19
  from graphql import ExecutionResult as GraphQLExecutionResult
18
20
  from graphql import (
19
21
  ExecutionResult as OriginalExecutionResult,
20
22
  )
21
23
  from graphql import (
24
+ FieldNode,
25
+ FragmentDefinitionNode,
22
26
  GraphQLBoolean,
23
27
  GraphQLError,
24
28
  GraphQLField,
25
29
  GraphQLNamedType,
26
30
  GraphQLNonNull,
31
+ GraphQLObjectType,
32
+ GraphQLOutputType,
27
33
  GraphQLSchema,
34
+ OperationDefinitionNode,
28
35
  get_introspection_query,
29
36
  parse,
30
37
  validate_schema,
31
38
  )
39
+ from graphql.execution import execute, subscribe
32
40
  from graphql.execution.middleware import MiddlewareManager
33
41
  from graphql.type.directives import specified_directives
34
42
  from graphql.validation import validate
@@ -56,20 +64,11 @@ from strawberry.types.execution import (
56
64
  PreExecutionError,
57
65
  )
58
66
  from strawberry.types.graphql import OperationType
59
- from strawberry.utils import IS_GQL_32
67
+ from strawberry.utils import IS_GQL_32, IS_GQL_33
60
68
  from strawberry.utils.aio import aclosing
61
69
  from strawberry.utils.await_maybe import await_maybe
62
70
 
63
71
  from . import compat
64
- from ._graphql_core import (
65
- GraphQLExecutionContext,
66
- GraphQLIncrementalExecutionResults,
67
- ResultType,
68
- execute,
69
- experimental_execute_incrementally,
70
- incremental_execution_directives,
71
- subscribe,
72
- )
73
72
  from .base import BaseSchema
74
73
  from .config import StrawberryConfig
75
74
  from .exceptions import InvalidOperationTypeError
@@ -78,8 +77,10 @@ if TYPE_CHECKING:
78
77
  from collections.abc import Iterable, Mapping
79
78
  from typing_extensions import TypeAlias
80
79
 
81
- from graphql import ExecutionContext as GraphQLExecutionContext
80
+ from graphql.execution.collect_fields import FieldGroup # type: ignore
82
81
  from graphql.language import DocumentNode
82
+ from graphql.pyutils import Path
83
+ from graphql.type import GraphQLResolveInfo
83
84
  from graphql.validation import ASTValidationRule
84
85
 
85
86
  from strawberry.directive import StrawberryDirective
@@ -98,7 +99,6 @@ OriginSubscriptionResult = Union[
98
99
  AsyncIterator[OriginalExecutionResult],
99
100
  ]
100
101
 
101
-
102
102
  DEFAULT_ALLOWED_OPERATION_TYPES = {
103
103
  OperationType.QUERY,
104
104
  OperationType.MUTATION,
@@ -144,6 +144,62 @@ def _coerce_error(error: Union[GraphQLError, Exception]) -> GraphQLError:
144
144
  return GraphQLError(str(error), original_error=error)
145
145
 
146
146
 
147
+ class _OperationContextAwareGraphQLResolveInfo(NamedTuple): # pyright: ignore
148
+ field_name: str
149
+ field_nodes: list[FieldNode]
150
+ return_type: GraphQLOutputType
151
+ parent_type: GraphQLObjectType
152
+ path: Path
153
+ schema: GraphQLSchema
154
+ fragments: dict[str, FragmentDefinitionNode]
155
+ root_value: Any
156
+ operation: OperationDefinitionNode
157
+ variable_values: dict[str, Any]
158
+ context: Any
159
+ is_awaitable: Callable[[Any], bool]
160
+ operation_extensions: dict[str, Any]
161
+
162
+
163
+ class StrawberryGraphQLCoreExecutionContext(GraphQLExecutionContext):
164
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
165
+ operation_extensions = kwargs.pop("operation_extensions", None)
166
+
167
+ super().__init__(*args, **kwargs)
168
+
169
+ self.operation_extensions = operation_extensions
170
+
171
+ def build_resolve_info(
172
+ self,
173
+ field_def: GraphQLField,
174
+ field_group: FieldGroup,
175
+ parent_type: GraphQLObjectType,
176
+ path: Path,
177
+ ) -> GraphQLResolveInfo:
178
+ if IS_GQL_33:
179
+ return _OperationContextAwareGraphQLResolveInfo( # type: ignore
180
+ field_group.fields[0].node.name.value,
181
+ field_group.to_nodes(),
182
+ field_def.type,
183
+ parent_type,
184
+ path,
185
+ self.schema,
186
+ self.fragments,
187
+ self.root_value,
188
+ self.operation,
189
+ self.variable_values,
190
+ self.context_value,
191
+ self.is_awaitable,
192
+ self.operation_extensions,
193
+ )
194
+
195
+ return super().build_resolve_info(
196
+ field_def,
197
+ field_group,
198
+ parent_type,
199
+ path,
200
+ )
201
+
202
+
147
203
  class Schema(BaseSchema):
148
204
  def __init__(
149
205
  self,
@@ -203,7 +259,9 @@ class Schema(BaseSchema):
203
259
 
204
260
  self.extensions = extensions
205
261
  self._cached_middleware_manager: MiddlewareManager | None = None
206
- self.execution_context_class = execution_context_class
262
+ self.execution_context_class = (
263
+ execution_context_class or StrawberryGraphQLCoreExecutionContext
264
+ )
207
265
  self.config = config or StrawberryConfig()
208
266
 
209
267
  self.schema_converter = GraphQLCoreConverter(
@@ -263,16 +321,11 @@ class Schema(BaseSchema):
263
321
  graphql_types.append(graphql_type)
264
322
 
265
323
  try:
266
- directives = specified_directives + tuple(graphql_directives)
267
-
268
- if self.config.enable_experimental_incremental_execution:
269
- directives = tuple(directives) + tuple(incremental_execution_directives)
270
-
271
324
  self._schema = GraphQLSchema(
272
325
  query=query_type,
273
326
  mutation=mutation_type,
274
327
  subscription=subscription_type if subscription else None,
275
- directives=directives,
328
+ directives=specified_directives + tuple(graphql_directives),
276
329
  types=graphql_types,
277
330
  extensions={
278
331
  GraphQLCoreConverter.DEFINITION_BACKREF: self,
@@ -333,6 +386,14 @@ class Schema(BaseSchema):
333
386
  extensions=extensions,
334
387
  )
335
388
 
389
+ def _get_custom_context_kwargs(
390
+ self, operation_extensions: Optional[dict[str, Any]] = None
391
+ ) -> dict[str, Any]:
392
+ if not IS_GQL_33:
393
+ return {}
394
+
395
+ return {"operation_extensions": operation_extensions}
396
+
336
397
  def _get_middleware_manager(
337
398
  self, extensions: list[SchemaExtension]
338
399
  ) -> MiddlewareManager:
@@ -450,16 +511,12 @@ class Schema(BaseSchema):
450
511
  async def _handle_execution_result(
451
512
  self,
452
513
  context: ExecutionContext,
453
- result: ResultType,
514
+ result: Union[GraphQLExecutionResult, ExecutionResult],
454
515
  extensions_runner: SchemaExtensionsRunner,
455
516
  *,
456
517
  # TODO: can we remove this somehow, see comment in execute
457
518
  skip_process_errors: bool = False,
458
519
  ) -> ExecutionResult:
459
- # TODO: handle this, also, why do we have both GraphQLExecutionResult and ExecutionResult?
460
- if isinstance(result, GraphQLIncrementalExecutionResults):
461
- return result
462
-
463
520
  # Set errors on the context so that it's easier
464
521
  # to access in extensions
465
522
  if result.errors:
@@ -480,6 +537,7 @@ class Schema(BaseSchema):
480
537
  root_value: Optional[Any] = None,
481
538
  operation_name: Optional[str] = None,
482
539
  allowed_operation_types: Optional[Iterable[OperationType]] = None,
540
+ operation_extensions: Optional[dict[str, Any]] = None,
483
541
  ) -> ExecutionResult:
484
542
  if allowed_operation_types is None:
485
543
  allowed_operation_types = DEFAULT_ALLOWED_OPERATION_TYPES
@@ -500,16 +558,7 @@ class Schema(BaseSchema):
500
558
  extensions_runner = self.create_extensions_runner(execution_context, extensions)
501
559
  middleware_manager = self._get_middleware_manager(extensions)
502
560
 
503
- execute_function = execute
504
-
505
- if self.config.enable_experimental_incremental_execution:
506
- execute_function = experimental_execute_incrementally
507
-
508
- if execute_function is None:
509
- raise RuntimeError(
510
- "Incremental execution is enabled but experimental_execute_incrementally is not available, "
511
- "please install graphql-core>=3.3.0"
512
- )
561
+ custom_context_kwargs = self._get_custom_context_kwargs(operation_extensions)
513
562
 
514
563
  try:
515
564
  async with extensions_runner.operation():
@@ -529,7 +578,7 @@ class Schema(BaseSchema):
529
578
  async with extensions_runner.executing():
530
579
  if not execution_context.result:
531
580
  result = await await_maybe(
532
- execute_function(
581
+ execute(
533
582
  self._schema,
534
583
  execution_context.graphql_document,
535
584
  root_value=execution_context.root_value,
@@ -538,6 +587,7 @@ class Schema(BaseSchema):
538
587
  operation_name=execution_context.operation_name,
539
588
  context_value=execution_context.context,
540
589
  execution_context_class=self.execution_context_class,
590
+ **custom_context_kwargs,
541
591
  )
542
592
  )
543
593
  execution_context.result = result
@@ -545,9 +595,7 @@ class Schema(BaseSchema):
545
595
  result = execution_context.result
546
596
  # Also set errors on the execution_context so that it's easier
547
597
  # to access in extensions
548
-
549
- # TODO: maybe here use the first result from incremental execution if it exists
550
- if isinstance(result, GraphQLExecutionResult) and result.errors:
598
+ if result.errors:
551
599
  execution_context.errors = result.errors
552
600
 
553
601
  # Run the `Schema.process_errors` function here before
@@ -577,6 +625,7 @@ class Schema(BaseSchema):
577
625
  root_value: Optional[Any] = None,
578
626
  operation_name: Optional[str] = None,
579
627
  allowed_operation_types: Optional[Iterable[OperationType]] = None,
628
+ operation_extensions: Optional[dict[str, Any]] = None,
580
629
  ) -> ExecutionResult:
581
630
  if allowed_operation_types is None:
582
631
  allowed_operation_types = DEFAULT_ALLOWED_OPERATION_TYPES
@@ -597,16 +646,8 @@ class Schema(BaseSchema):
597
646
  extensions_runner = self.create_extensions_runner(execution_context, extensions)
598
647
  middleware_manager = self._get_middleware_manager(extensions)
599
648
 
600
- execute_function = execute
601
-
602
- if self.config.enable_experimental_incremental_execution:
603
- execute_function = experimental_execute_incrementally
649
+ custom_context_kwargs = self._get_custom_context_kwargs(operation_extensions)
604
650
 
605
- if execute_function is None:
606
- raise RuntimeError(
607
- "Incremental execution is enabled but experimental_execute_incrementally is not available, "
608
- "please install graphql-core>=3.3.0"
609
- )
610
651
  try:
611
652
  with extensions_runner.operation():
612
653
  # Note: In graphql-core the schema would be validated here but in
@@ -648,7 +689,7 @@ class Schema(BaseSchema):
648
689
 
649
690
  with extensions_runner.executing():
650
691
  if not execution_context.result:
651
- result = execute_function(
692
+ result = execute(
652
693
  self._schema,
653
694
  execution_context.graphql_document,
654
695
  root_value=execution_context.root_value,
@@ -657,6 +698,7 @@ class Schema(BaseSchema):
657
698
  operation_name=execution_context.operation_name,
658
699
  context_value=execution_context.context,
659
700
  execution_context_class=self.execution_context_class,
701
+ **custom_context_kwargs,
660
702
  )
661
703
 
662
704
  if isawaitable(result):
@@ -701,6 +743,7 @@ class Schema(BaseSchema):
701
743
  extensions_runner: SchemaExtensionsRunner,
702
744
  middleware_manager: MiddlewareManager,
703
745
  execution_context_class: type[GraphQLExecutionContext] | None = None,
746
+ operation_extensions: Optional[dict[str, Any]] = None,
704
747
  ) -> AsyncGenerator[ExecutionResult, None]:
705
748
  async with extensions_runner.operation():
706
749
  if initial_error := await self._parse_and_validate_async(
@@ -719,6 +762,7 @@ class Schema(BaseSchema):
719
762
  gql_33_kwargs = {
720
763
  "middleware": middleware_manager,
721
764
  "execution_context_class": execution_context_class,
765
+ "operation_extensions": operation_extensions,
722
766
  }
723
767
  try:
724
768
  # Might not be awaitable for pre-execution errors.
@@ -783,6 +827,7 @@ class Schema(BaseSchema):
783
827
  context_value: Optional[Any] = None,
784
828
  root_value: Optional[Any] = None,
785
829
  operation_name: Optional[str] = None,
830
+ operation_extensions: Optional[dict[str, Any]] = None,
786
831
  ) -> SubscriptionResult:
787
832
  execution_context = self._create_execution_context(
788
833
  query=query,
@@ -804,6 +849,7 @@ class Schema(BaseSchema):
804
849
  ),
805
850
  middleware_manager=self._get_middleware_manager(extensions),
806
851
  execution_context_class=self.execution_context_class,
852
+ operation_extensions=operation_extensions,
807
853
  )
808
854
 
809
855
  def _resolve_node_ids(self) -> None: