strawberry-graphql 0.276.0.dev1750672223__tar.gz → 0.276.0.dev1752831589__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.0.dev1752831589}/PKG-INFO +1 -1
  2. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/pyproject.toml +2 -1
  3. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/annotation.py +1 -1
  4. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/experimental/pydantic/object_type.py +2 -2
  5. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/directives.py +6 -2
  6. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/mask_errors.py +23 -10
  7. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/http/__init__.py +5 -0
  8. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/http/async_base_view.py +19 -7
  9. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/http/sync_base_view.py +16 -4
  10. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/relay/types.py +1 -1
  11. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/_graphql_core.py +11 -4
  12. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/schema.py +13 -20
  13. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +1 -1
  14. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +1 -1
  15. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/arguments.py +51 -6
  16. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/execution.py +1 -1
  17. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/LICENSE +0 -0
  18. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/README.md +0 -0
  19. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/__init__.py +0 -0
  20. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/__main__.py +0 -0
  21. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/aiohttp/__init__.py +0 -0
  22. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/aiohttp/test/__init__.py +0 -0
  23. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/aiohttp/test/client.py +0 -0
  24. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/aiohttp/views.py +0 -0
  25. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/asgi/__init__.py +0 -0
  26. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/asgi/test/__init__.py +0 -0
  27. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/asgi/test/client.py +0 -0
  28. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/chalice/__init__.py +0 -0
  29. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/chalice/views.py +0 -0
  30. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/channels/__init__.py +0 -0
  31. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/channels/handlers/__init__.py +0 -0
  32. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/channels/handlers/base.py +0 -0
  33. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/channels/handlers/http_handler.py +0 -0
  34. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/channels/handlers/ws_handler.py +0 -0
  35. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/channels/router.py +0 -0
  36. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/channels/testing.py +0 -0
  37. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/__init__.py +0 -0
  38. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/app.py +0 -0
  39. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/commands/__init__.py +0 -0
  40. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/commands/codegen.py +0 -0
  41. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/commands/export_schema.py +0 -0
  42. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/commands/locate_definition.py +0 -0
  43. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/commands/schema_codegen.py +0 -0
  44. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/commands/server.py +0 -0
  45. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/commands/upgrade/__init__.py +0 -0
  46. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
  47. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/commands/upgrade/_run_codemod.py +0 -0
  48. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/constants.py +0 -0
  49. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/debug_server.py +0 -0
  50. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/utils/__init__.py +0 -0
  51. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/cli/utils/load_schema.py +0 -0
  52. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/codegen/__init__.py +0 -0
  53. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/codegen/exceptions.py +0 -0
  54. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/codegen/plugins/__init__.py +0 -0
  55. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/codegen/plugins/print_operation.py +0 -0
  56. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/codegen/plugins/python.py +0 -0
  57. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/codegen/plugins/typescript.py +0 -0
  58. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/codegen/query_codegen.py +0 -0
  59. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/codegen/types.py +0 -0
  60. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/codemods/__init__.py +0 -0
  61. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/codemods/annotated_unions.py +0 -0
  62. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/codemods/update_imports.py +0 -0
  63. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/dataloader.py +0 -0
  64. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/directive.py +0 -0
  65. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/django/__init__.py +0 -0
  66. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/django/apps.py +0 -0
  67. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/django/context.py +0 -0
  68. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/django/test/__init__.py +0 -0
  69. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/django/test/client.py +0 -0
  70. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/django/views.py +0 -0
  71. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/__init__.py +0 -0
  72. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/conflicting_arguments.py +0 -0
  73. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/duplicated_type_name.py +0 -0
  74. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/exception.py +0 -0
  75. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/exception_source.py +0 -0
  76. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/handler.py +0 -0
  77. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/invalid_argument_type.py +0 -0
  78. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/invalid_superclass_interface.py +0 -0
  79. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/invalid_union_type.py +0 -0
  80. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/missing_arguments_annotations.py +0 -0
  81. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/missing_dependencies.py +0 -0
  82. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/missing_field_annotation.py +0 -0
  83. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/missing_return_annotation.py +0 -0
  84. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/object_is_not_a_class.py +0 -0
  85. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/object_is_not_an_enum.py +0 -0
  86. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/permission_fail_silently_requires_optional.py +0 -0
  87. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/private_strawberry_field.py +0 -0
  88. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/scalar_already_registered.py +0 -0
  89. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/syntax.py +0 -0
  90. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/unresolved_field_type.py +0 -0
  91. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/utils/__init__.py +0 -0
  92. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/exceptions/utils/source_finder.py +0 -0
  93. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/experimental/__init__.py +0 -0
  94. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/experimental/pydantic/__init__.py +0 -0
  95. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/experimental/pydantic/_compat.py +0 -0
  96. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/experimental/pydantic/conversion.py +0 -0
  97. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/experimental/pydantic/conversion_types.py +0 -0
  98. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/experimental/pydantic/error_type.py +0 -0
  99. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/experimental/pydantic/exceptions.py +0 -0
  100. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/experimental/pydantic/fields.py +0 -0
  101. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/experimental/pydantic/utils.py +0 -0
  102. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/ext/LICENSE +0 -0
  103. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/ext/__init__.py +0 -0
  104. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/ext/dataclasses/LICENSE +0 -0
  105. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/ext/dataclasses/README.md +0 -0
  106. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/ext/dataclasses/__init__.py +0 -0
  107. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/ext/dataclasses/dataclasses.py +0 -0
  108. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/ext/mypy_plugin.py +0 -0
  109. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/__init__.py +0 -0
  110. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/add_validation_rules.py +0 -0
  111. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/base_extension.py +0 -0
  112. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/context.py +0 -0
  113. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/disable_introspection.py +0 -0
  114. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/disable_validation.py +0 -0
  115. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/field_extension.py +0 -0
  116. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/max_aliases.py +0 -0
  117. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/max_tokens.py +0 -0
  118. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/parser_cache.py +0 -0
  119. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/pyinstrument.py +0 -0
  120. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/query_depth_limiter.py +0 -0
  121. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/runner.py +0 -0
  122. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/tracing/__init__.py +0 -0
  123. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/tracing/apollo.py +0 -0
  124. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/tracing/datadog.py +0 -0
  125. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/tracing/opentelemetry.py +0 -0
  126. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/tracing/utils.py +0 -0
  127. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/utils.py +0 -0
  128. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/extensions/validation_cache.py +0 -0
  129. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/fastapi/__init__.py +0 -0
  130. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/fastapi/context.py +0 -0
  131. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/fastapi/router.py +0 -0
  132. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/federation/__init__.py +0 -0
  133. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/federation/argument.py +0 -0
  134. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/federation/enum.py +0 -0
  135. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/federation/field.py +0 -0
  136. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/federation/mutation.py +0 -0
  137. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/federation/object_type.py +0 -0
  138. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/federation/scalar.py +0 -0
  139. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/federation/schema.py +0 -0
  140. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/federation/schema_directive.py +0 -0
  141. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/federation/schema_directives.py +0 -0
  142. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/federation/types.py +0 -0
  143. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/federation/union.py +0 -0
  144. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/field_extensions/__init__.py +0 -0
  145. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/field_extensions/input_mutation.py +0 -0
  146. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/file_uploads/__init__.py +0 -0
  147. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/file_uploads/scalars.py +0 -0
  148. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/file_uploads/utils.py +0 -0
  149. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/flask/__init__.py +0 -0
  150. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/flask/views.py +0 -0
  151. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/http/base.py +0 -0
  152. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/http/exceptions.py +0 -0
  153. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/http/ides.py +0 -0
  154. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/http/parse_content_type.py +0 -0
  155. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/http/temporal_response.py +0 -0
  156. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/http/types.py +0 -0
  157. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/http/typevars.py +0 -0
  158. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/litestar/__init__.py +0 -0
  159. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/litestar/controller.py +0 -0
  160. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/parent.py +0 -0
  161. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/permission.py +0 -0
  162. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/printer/__init__.py +0 -0
  163. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/printer/ast_from_value.py +0 -0
  164. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/printer/printer.py +0 -0
  165. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/py.typed +0 -0
  166. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/quart/__init__.py +0 -0
  167. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/quart/views.py +0 -0
  168. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/relay/__init__.py +0 -0
  169. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/relay/exceptions.py +0 -0
  170. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/relay/fields.py +0 -0
  171. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/relay/utils.py +0 -0
  172. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/resolvers.py +0 -0
  173. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/sanic/__init__.py +0 -0
  174. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/sanic/context.py +0 -0
  175. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/sanic/utils.py +0 -0
  176. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/sanic/views.py +0 -0
  177. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/scalars.py +0 -0
  178. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/__init__.py +0 -0
  179. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/base.py +0 -0
  180. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/compat.py +0 -0
  181. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/config.py +0 -0
  182. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/exceptions.py +0 -0
  183. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/name_converter.py +0 -0
  184. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/schema_converter.py +0 -0
  185. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/types/__init__.py +0 -0
  186. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/types/base_scalars.py +0 -0
  187. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/types/concrete_type.py +0 -0
  188. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/types/scalar.py +0 -0
  189. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/validation_rules/__init__.py +0 -0
  190. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema/validation_rules/one_of.py +0 -0
  191. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema_codegen/__init__.py +0 -0
  192. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema_directive.py +0 -0
  193. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/schema_directives.py +0 -0
  194. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/static/apollo-sandbox.html +0 -0
  195. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/static/graphiql.html +0 -0
  196. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/static/pathfinder.html +0 -0
  197. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/streamable.py +0 -0
  198. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/subscriptions/__init__.py +0 -0
  199. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/subscriptions/protocols/__init__.py +0 -0
  200. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
  201. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +0 -0
  202. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/subscriptions/protocols/graphql_ws/__init__.py +0 -0
  203. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/subscriptions/protocols/graphql_ws/types.py +0 -0
  204. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/test/__init__.py +0 -0
  205. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/test/client.py +0 -0
  206. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/tools/__init__.py +0 -0
  207. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/tools/create_type.py +0 -0
  208. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/tools/merge_types.py +0 -0
  209. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/__init__.py +0 -0
  210. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/auto.py +0 -0
  211. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/base.py +0 -0
  212. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/cast.py +0 -0
  213. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/enum.py +0 -0
  214. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/field.py +0 -0
  215. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/fields/__init__.py +0 -0
  216. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/fields/resolver.py +0 -0
  217. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/graphql.py +0 -0
  218. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/info.py +0 -0
  219. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/lazy_type.py +0 -0
  220. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/maybe.py +0 -0
  221. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/mutation.py +0 -0
  222. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/nodes.py +0 -0
  223. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/object_type.py +0 -0
  224. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/private.py +0 -0
  225. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/scalar.py +0 -0
  226. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/type_resolver.py +0 -0
  227. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/union.py +0 -0
  228. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/types/unset.py +0 -0
  229. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/__init__.py +0 -0
  230. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/aio.py +0 -0
  231. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/await_maybe.py +0 -0
  232. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/dataclasses.py +0 -0
  233. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/debug.py +0 -0
  234. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/deprecations.py +0 -0
  235. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/graphql_lexer.py +0 -0
  236. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/importer.py +0 -0
  237. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/inspect.py +0 -0
  238. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/locate_definition.py +0 -0
  239. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/logging.py +0 -0
  240. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/operation.py +0 -0
  241. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/strawberry/utils/str_converters.py +0 -0
  242. {strawberry_graphql-0.276.0.dev1750672223 → strawberry_graphql-0.276.0.dev1752831589}/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.0.dev1752831589
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.0.dev.1752831589"
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" }
@@ -323,6 +323,7 @@ ignore = [
323
323
  "Q002",
324
324
  "Q003",
325
325
  "W191",
326
+ "PLR0915",
326
327
  ]
327
328
 
328
329
  [tool.ruff.lint.per-file-ignores]
@@ -145,7 +145,7 @@ class StrawberryAnnotation:
145
145
  if self._is_lazy_type(evaled_type):
146
146
  return evaled_type
147
147
  if self._is_streamable(evaled_type, args):
148
- return self.create_list(list[evaled_type])
148
+ return self.create_list(list[evaled_type]) # type: ignore[valid-type]
149
149
  if self._is_list(evaled_type):
150
150
  return self.create_list(evaled_type)
151
151
  if self._is_maybe(evaled_type):
@@ -116,7 +116,7 @@ if TYPE_CHECKING:
116
116
  )
117
117
 
118
118
 
119
- def type( # noqa: PLR0915
119
+ def type(
120
120
  model: builtins.type[PydanticModel],
121
121
  *,
122
122
  fields: Optional[list[str]] = None,
@@ -129,7 +129,7 @@ def type( # noqa: PLR0915
129
129
  include_computed: bool = False,
130
130
  use_pydantic_alias: bool = True,
131
131
  ) -> Callable[..., builtins.type[StrawberryTypeFromPydantic[PydanticModel]]]:
132
- def wrap(cls: Any) -> builtins.type[StrawberryTypeFromPydantic[PydanticModel]]: # noqa: PLR0915
132
+ def wrap(cls: Any) -> builtins.type[StrawberryTypeFromPydantic[PydanticModel]]:
133
133
  compat = PydanticCompat.from_model(model)
134
134
  model_fields = compat.get_model_fields(model, include_computed=include_computed)
135
135
  original_fields_set = set(fields) if fields else set()
@@ -29,7 +29,9 @@ class DirectivesExtension(SchemaExtension):
29
29
  ) -> AwaitableOrValue[Any]:
30
30
  value = await await_maybe(_next(root, info, *args, **kwargs))
31
31
 
32
- for directive in info.field_nodes[0].directives:
32
+ nodes = list(info.field_nodes)
33
+
34
+ for directive in nodes[0].directives:
33
35
  if directive.name.value in SPECIFIED_DIRECTIVES:
34
36
  continue
35
37
  strawberry_directive, arguments = process_directive(directive, value, info)
@@ -49,7 +51,9 @@ class DirectivesExtensionSync(SchemaExtension):
49
51
  ) -> AwaitableOrValue[Any]:
50
52
  value = _next(root, info, *args, **kwargs)
51
53
 
52
- for directive in info.field_nodes[0].directives:
54
+ nodes = list(info.field_nodes)
55
+
56
+ for directive in nodes[0].directives:
53
57
  if directive.name.value in SPECIFIED_DIRECTIVES:
54
58
  continue
55
59
  strawberry_directive, arguments = process_directive(directive, value, info)
@@ -1,7 +1,8 @@
1
1
  from collections.abc import Iterator
2
- from typing import Callable
2
+ from typing import Any, Callable
3
3
 
4
4
  from graphql.error import GraphQLError
5
+ from graphql.execution import ExecutionResult
5
6
 
6
7
  from strawberry.extensions.base_extension import SchemaExtension
7
8
 
@@ -33,18 +34,30 @@ class MaskErrors(SchemaExtension):
33
34
  original_error=None,
34
35
  )
35
36
 
37
+ # TODO: proper typing
38
+ def _process_result(self, result: Any) -> None:
39
+ if not result.errors:
40
+ return
41
+
42
+ processed_errors: list[GraphQLError] = []
43
+
44
+ for error in result.errors:
45
+ if self.should_mask_error(error):
46
+ processed_errors.append(self.anonymise_error(error))
47
+ else:
48
+ processed_errors.append(error)
49
+
50
+ result.errors = processed_errors
51
+
36
52
  def on_operation(self) -> Iterator[None]:
37
53
  yield
54
+
38
55
  result = self.execution_context.result
39
- if result and result.errors:
40
- processed_errors: list[GraphQLError] = []
41
- for error in result.errors:
42
- if self.should_mask_error(error):
43
- processed_errors.append(self.anonymise_error(error))
44
- else:
45
- processed_errors.append(error)
46
-
47
- result.errors = processed_errors
56
+
57
+ if isinstance(result, ExecutionResult):
58
+ self._process_result(result)
59
+ else:
60
+ self._process_result(result.initial_result)
48
61
 
49
62
 
50
63
  __all__ = ["MaskErrors"]
@@ -14,6 +14,11 @@ class GraphQLHTTPResponse(TypedDict, total=False):
14
14
  data: Optional[dict[str, object]]
15
15
  errors: Optional[list[object]]
16
16
  extensions: Optional[dict[str, object]]
17
+ hasNext: Optional[bool]
18
+ completed: Optional[list[Any]]
19
+ pending: Optional[list[Any]]
20
+ initial: Optional[list[Any]]
21
+ incremental: Optional[list[Any]]
17
22
 
18
23
 
19
24
  def process_result(result: ResultType) -> GraphQLHTTPResponse:
@@ -201,8 +201,6 @@ class AsyncBaseHTTPView(
201
201
  if not self.allow_queries_via_get and request_adapter.method == "GET":
202
202
  allowed_operation_types = allowed_operation_types - {OperationType.QUERY}
203
203
 
204
- assert self.schema
205
-
206
204
  if request_data.protocol == "multipart-subscription":
207
205
  return await self.schema.subscribe(
208
206
  request_data.query, # type: ignore
@@ -266,7 +264,7 @@ class AsyncBaseHTTPView(
266
264
  root_value: Optional[RootValue] = UNSET,
267
265
  ) -> WebSocketResponse: ...
268
266
 
269
- async def run( # noqa: PLR0915
267
+ async def run(
270
268
  self,
271
269
  request: Union[Request, WebSocketRequest],
272
270
  context: Context = UNSET,
@@ -294,7 +292,7 @@ class AsyncBaseHTTPView(
294
292
  view=self,
295
293
  websocket=websocket,
296
294
  context=context,
297
- root_value=root_value, # type: ignore
295
+ root_value=root_value,
298
296
  schema=self.schema,
299
297
  debug=self.debug,
300
298
  connection_init_wait_timeout=self.connection_init_wait_timeout,
@@ -304,7 +302,7 @@ class AsyncBaseHTTPView(
304
302
  view=self,
305
303
  websocket=websocket,
306
304
  context=context,
307
- root_value=root_value, # type: ignore
305
+ root_value=root_value,
308
306
  schema=self.schema,
309
307
  debug=self.debug,
310
308
  keep_alive=self.keep_alive,
@@ -605,9 +603,23 @@ class AsyncBaseHTTPView(
605
603
  else:
606
604
  raise HTTPException(400, "Unsupported content type")
607
605
 
606
+ query = data.get("query")
607
+ if not isinstance(query, (str, type(None))):
608
+ raise HTTPException(
609
+ 400,
610
+ "The GraphQL operation's `query` must be a string or null, if provided.",
611
+ )
612
+
613
+ variables = data.get("variables")
614
+ if not isinstance(variables, (dict, type(None))):
615
+ raise HTTPException(
616
+ 400,
617
+ "The GraphQL operation's `variables` must be an object or null, if provided.",
618
+ )
619
+
608
620
  return GraphQLRequestData(
609
- query=data.get("query"),
610
- variables=data.get("variables"),
621
+ query=query,
622
+ variables=variables,
611
623
  operation_name=data.get("operationName"),
612
624
  extensions=data.get("extensions"),
613
625
  protocol=protocol,
@@ -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,9 +152,23 @@ 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
+
157
169
  return GraphQLRequestData(
158
- query=data.get("query"),
159
- variables=data.get("variables"),
170
+ query=query,
171
+ variables=variables,
160
172
  operation_name=data.get("operationName"),
161
173
  extensions=data.get("extensions"),
162
174
  )
@@ -762,7 +762,7 @@ class ListConnection(Connection[NodeType]):
762
762
  )
763
763
 
764
764
  @classmethod
765
- def resolve_connection( # noqa: PLR0915
765
+ def resolve_connection(
766
766
  cls,
767
767
  nodes: NodeIterableType[NodeType],
768
768
  *,
@@ -7,11 +7,14 @@ from graphql.execution import execute, subscribe
7
7
  from strawberry.types import ExecutionResult
8
8
 
9
9
  try:
10
- from graphql import (
10
+ from graphql import ( # type: ignore[attr-defined]
11
11
  ExperimentalIncrementalExecutionResults as GraphQLIncrementalExecutionResults,
12
12
  )
13
- from graphql.execution import experimental_execute_incrementally
14
- from graphql.type.directives import (
13
+ from graphql.execution import ( # type: ignore[attr-defined]
14
+ InitialIncrementalExecutionResult,
15
+ experimental_execute_incrementally,
16
+ )
17
+ from graphql.type.directives import ( # type: ignore[attr-defined]
15
18
  GraphQLDeferDirective,
16
19
  GraphQLStreamDirective,
17
20
  )
@@ -21,10 +24,14 @@ try:
21
24
  GraphQLStreamDirective,
22
25
  )
23
26
 
27
+ GraphQLExecutionResult = Union[
28
+ GraphQLExecutionResult, InitialIncrementalExecutionResult
29
+ ]
30
+
24
31
  except ImportError:
25
32
  GraphQLIncrementalExecutionResults = type(None)
26
33
 
27
- incremental_execution_directives = []
34
+ incremental_execution_directives = () # type: ignore
28
35
  experimental_execute_incrementally = None
29
36
 
30
37
 
@@ -84,7 +84,6 @@ if TYPE_CHECKING:
84
84
  from collections.abc import Iterable, Mapping
85
85
  from typing_extensions import TypeAlias
86
86
 
87
- from graphql.execution.collect_fields import FieldGroup # type: ignore
88
87
  from graphql.language import DocumentNode
89
88
  from graphql.pyutils import Path
90
89
  from graphql.type import GraphQLResolveInfo
@@ -176,17 +175,18 @@ class StrawberryGraphQLCoreExecutionContext(GraphQLExecutionContext):
176
175
 
177
176
  self.operation_extensions = operation_extensions
178
177
 
179
- def build_resolve_info(
180
- self,
181
- field_def: GraphQLField,
182
- field_group: FieldGroup,
183
- parent_type: GraphQLObjectType,
184
- path: Path,
185
- ) -> GraphQLResolveInfo:
186
- if IS_GQL_33:
178
+ if IS_GQL_33:
179
+
180
+ def build_resolve_info(
181
+ self,
182
+ field_def: GraphQLField,
183
+ field_nodes: list[FieldNode],
184
+ parent_type: GraphQLObjectType,
185
+ path: Path,
186
+ ) -> GraphQLResolveInfo:
187
187
  return _OperationContextAwareGraphQLResolveInfo( # type: ignore
188
- field_group.fields[0].node.name.value,
189
- field_group.to_nodes(),
188
+ field_nodes[0].name.value,
189
+ field_nodes,
190
190
  field_def.type,
191
191
  parent_type,
192
192
  path,
@@ -200,13 +200,6 @@ class StrawberryGraphQLCoreExecutionContext(GraphQLExecutionContext):
200
200
  self.operation_extensions,
201
201
  )
202
202
 
203
- return super().build_resolve_info(
204
- field_def,
205
- field_group,
206
- parent_type,
207
- path,
208
- )
209
-
210
203
 
211
204
  class Schema(BaseSchema):
212
205
  def __init__(
@@ -329,7 +322,7 @@ class Schema(BaseSchema):
329
322
  graphql_types.append(graphql_type)
330
323
 
331
324
  try:
332
- directives = specified_directives + tuple(graphql_directives)
325
+ directives = specified_directives + tuple(graphql_directives) # type: ignore
333
326
 
334
327
  if self.config.enable_experimental_incremental_execution:
335
328
  directives = tuple(directives) + tuple(incremental_execution_directives)
@@ -338,7 +331,7 @@ class Schema(BaseSchema):
338
331
  query=query_type,
339
332
  mutation=mutation_type,
340
333
  subscription=subscription_type if subscription else None,
341
- directives=directives,
334
+ directives=directives, # type: ignore
342
335
  types=graphql_types,
343
336
  extensions={
344
337
  GraphQLCoreConverter.DEFINITION_BACKREF: self,
@@ -53,7 +53,7 @@ class BaseGraphQLTransportWSHandler(Generic[Context, RootValue]):
53
53
  view: AsyncBaseHTTPView[Any, Any, Any, Any, Any, Context, RootValue],
54
54
  websocket: AsyncWebSocketAdapter,
55
55
  context: Context,
56
- root_value: RootValue,
56
+ root_value: Optional[RootValue],
57
57
  schema: BaseSchema,
58
58
  debug: bool,
59
59
  connection_init_wait_timeout: timedelta,
@@ -42,7 +42,7 @@ class BaseGraphQLWSHandler(Generic[Context, RootValue]):
42
42
  view: AsyncBaseHTTPView[Any, Any, Any, Any, Any, Context, RootValue],
43
43
  websocket: AsyncWebSocketAdapter,
44
44
  context: Context,
45
- root_value: RootValue,
45
+ root_value: Optional[RootValue],
46
46
  schema: BaseSchema,
47
47
  debug: bool,
48
48
  keep_alive: bool,
@@ -144,12 +144,52 @@ class StrawberryArgument:
144
144
  return isinstance(self.type, StrawberryMaybe)
145
145
 
146
146
 
147
+ def _is_leaf_type(
148
+ type_: Union[StrawberryType, type],
149
+ scalar_registry: Mapping[object, Union[ScalarWrapper, ScalarDefinition]],
150
+ skip_classes: tuple[type, ...] = (),
151
+ ) -> bool:
152
+ if type_ in skip_classes:
153
+ return False
154
+
155
+ if is_scalar(type_, scalar_registry):
156
+ return True
157
+
158
+ if isinstance(type_, EnumDefinition):
159
+ return True
160
+
161
+ if isinstance(type_, LazyType):
162
+ return _is_leaf_type(type_.resolve_type(), scalar_registry)
163
+
164
+ if hasattr(type_, "_enum_definition"):
165
+ enum_definition: EnumDefinition = type_._enum_definition
166
+ return _is_leaf_type(enum_definition, scalar_registry)
167
+
168
+ return False
169
+
170
+
171
+ def _is_optional_leaf_type(
172
+ type_: Union[StrawberryType, type],
173
+ scalar_registry: Mapping[object, Union[ScalarWrapper, ScalarDefinition]],
174
+ skip_classes: tuple[type, ...] = (),
175
+ ) -> bool:
176
+ if type_ in skip_classes:
177
+ return False
178
+
179
+ if isinstance(type_, StrawberryOptional):
180
+ return _is_leaf_type(type_.of_type, scalar_registry, skip_classes)
181
+
182
+ return False
183
+
184
+
147
185
  def convert_argument(
148
186
  value: object,
149
187
  type_: Union[StrawberryType, type],
150
188
  scalar_registry: Mapping[object, Union[ScalarWrapper, ScalarDefinition]],
151
189
  config: StrawberryConfig,
152
190
  ) -> object:
191
+ from strawberry.relay.types import GlobalID
192
+
153
193
  # TODO: move this somewhere else and make it first class
154
194
  if isinstance(type_, StrawberryOptional):
155
195
  res = convert_argument(value, type_.of_type, scalar_registry, config)
@@ -164,22 +204,27 @@ def convert_argument(
164
204
 
165
205
  if isinstance(type_, StrawberryList):
166
206
  value_list = cast("Iterable", value)
207
+
208
+ if _is_leaf_type(
209
+ type_.of_type, scalar_registry, skip_classes=(GlobalID,)
210
+ ) or _is_optional_leaf_type(
211
+ type_.of_type, scalar_registry, skip_classes=(GlobalID,)
212
+ ):
213
+ return value_list
214
+
215
+ value_list = cast("Iterable", value)
216
+
167
217
  return [
168
218
  convert_argument(x, type_.of_type, scalar_registry, config)
169
219
  for x in value_list
170
220
  ]
171
221
 
172
- if is_scalar(type_, scalar_registry):
173
- from strawberry.relay.types import GlobalID
174
-
222
+ if _is_leaf_type(type_, scalar_registry):
175
223
  if type_ is GlobalID:
176
224
  return GlobalID.from_id(value) # type: ignore
177
225
 
178
226
  return value
179
227
 
180
- if isinstance(type_, EnumDefinition):
181
- return value
182
-
183
228
  if isinstance(type_, LazyType):
184
229
  return convert_argument(value, type_.resolve_type(), scalar_registry, config)
185
230
 
@@ -18,11 +18,11 @@ if TYPE_CHECKING:
18
18
  from typing_extensions import NotRequired
19
19
 
20
20
  from graphql import ASTValidationRule
21
- from graphql import ExecutionResult as GraphQLExecutionResult
22
21
  from graphql.error.graphql_error import GraphQLError
23
22
  from graphql.language import DocumentNode, OperationDefinitionNode
24
23
 
25
24
  from strawberry.schema import Schema
25
+ from strawberry.schema._graphql_core import GraphQLExecutionResult
26
26
 
27
27
  from .graphql import OperationType
28
28