strawberry-graphql 0.262.3__tar.gz → 0.262.5__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 (234) hide show
  1. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/PKG-INFO +1 -1
  2. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/pyproject.toml +2 -2
  3. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/experimental/pydantic/_compat.py +10 -6
  4. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/flask/views.py +2 -2
  5. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/quart/views.py +1 -1
  6. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/sanic/views.py +1 -1
  7. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/base.py +1 -1
  8. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/schema.py +3 -28
  9. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +46 -39
  10. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +24 -18
  11. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/LICENSE +0 -0
  12. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/README.md +0 -0
  13. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/__init__.py +0 -0
  14. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/__main__.py +0 -0
  15. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/aiohttp/__init__.py +0 -0
  16. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/aiohttp/test/__init__.py +0 -0
  17. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/aiohttp/test/client.py +0 -0
  18. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/aiohttp/views.py +0 -0
  19. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/annotation.py +0 -0
  20. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/asgi/__init__.py +0 -0
  21. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/asgi/test/__init__.py +0 -0
  22. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/asgi/test/client.py +0 -0
  23. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/chalice/__init__.py +0 -0
  24. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/chalice/views.py +0 -0
  25. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/channels/__init__.py +0 -0
  26. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/channels/handlers/__init__.py +0 -0
  27. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/channels/handlers/base.py +0 -0
  28. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/channels/handlers/http_handler.py +0 -0
  29. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/channels/handlers/ws_handler.py +0 -0
  30. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/channels/router.py +0 -0
  31. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/channels/testing.py +0 -0
  32. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/__init__.py +0 -0
  33. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/app.py +0 -0
  34. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/commands/__init__.py +0 -0
  35. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/commands/codegen.py +0 -0
  36. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/commands/export_schema.py +0 -0
  37. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/commands/schema_codegen.py +0 -0
  38. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/commands/server.py +0 -0
  39. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/commands/upgrade/__init__.py +0 -0
  40. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
  41. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/commands/upgrade/_run_codemod.py +0 -0
  42. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/constants.py +0 -0
  43. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/debug_server.py +0 -0
  44. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/utils/__init__.py +0 -0
  45. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/cli/utils/load_schema.py +0 -0
  46. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/codegen/__init__.py +0 -0
  47. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/codegen/exceptions.py +0 -0
  48. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/codegen/plugins/__init__.py +0 -0
  49. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/codegen/plugins/print_operation.py +0 -0
  50. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/codegen/plugins/python.py +0 -0
  51. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/codegen/plugins/typescript.py +0 -0
  52. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/codegen/query_codegen.py +0 -0
  53. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/codegen/types.py +0 -0
  54. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/codemods/__init__.py +0 -0
  55. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/codemods/annotated_unions.py +0 -0
  56. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/codemods/update_imports.py +0 -0
  57. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/dataloader.py +0 -0
  58. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/directive.py +0 -0
  59. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/django/__init__.py +0 -0
  60. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/django/apps.py +0 -0
  61. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/django/context.py +0 -0
  62. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/django/test/__init__.py +0 -0
  63. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/django/test/client.py +0 -0
  64. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/django/views.py +0 -0
  65. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/__init__.py +0 -0
  66. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/conflicting_arguments.py +0 -0
  67. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/duplicated_type_name.py +0 -0
  68. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/exception.py +0 -0
  69. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/exception_source.py +0 -0
  70. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/handler.py +0 -0
  71. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/invalid_argument_type.py +0 -0
  72. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/invalid_union_type.py +0 -0
  73. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/missing_arguments_annotations.py +0 -0
  74. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/missing_dependencies.py +0 -0
  75. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/missing_field_annotation.py +0 -0
  76. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/missing_return_annotation.py +0 -0
  77. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/object_is_not_a_class.py +0 -0
  78. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/object_is_not_an_enum.py +0 -0
  79. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/permission_fail_silently_requires_optional.py +0 -0
  80. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/private_strawberry_field.py +0 -0
  81. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/scalar_already_registered.py +0 -0
  82. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/syntax.py +0 -0
  83. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/unresolved_field_type.py +0 -0
  84. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/utils/__init__.py +0 -0
  85. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/exceptions/utils/source_finder.py +0 -0
  86. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/experimental/__init__.py +0 -0
  87. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/experimental/pydantic/__init__.py +0 -0
  88. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/experimental/pydantic/conversion.py +0 -0
  89. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/experimental/pydantic/conversion_types.py +0 -0
  90. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/experimental/pydantic/error_type.py +0 -0
  91. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/experimental/pydantic/exceptions.py +0 -0
  92. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/experimental/pydantic/fields.py +0 -0
  93. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/experimental/pydantic/object_type.py +0 -0
  94. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/experimental/pydantic/utils.py +0 -0
  95. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/ext/LICENSE +0 -0
  96. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/ext/__init__.py +0 -0
  97. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/ext/dataclasses/LICENSE +0 -0
  98. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/ext/dataclasses/__init__.py +0 -0
  99. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/ext/dataclasses/dataclasses.py +0 -0
  100. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/ext/mypy_plugin.py +0 -0
  101. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/__init__.py +0 -0
  102. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/add_validation_rules.py +0 -0
  103. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/base_extension.py +0 -0
  104. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/context.py +0 -0
  105. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/directives.py +0 -0
  106. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/disable_validation.py +0 -0
  107. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/field_extension.py +0 -0
  108. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/mask_errors.py +0 -0
  109. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/max_aliases.py +0 -0
  110. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/max_tokens.py +0 -0
  111. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/parser_cache.py +0 -0
  112. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/pyinstrument.py +0 -0
  113. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/query_depth_limiter.py +0 -0
  114. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/runner.py +0 -0
  115. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/tracing/__init__.py +0 -0
  116. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/tracing/apollo.py +0 -0
  117. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/tracing/datadog.py +0 -0
  118. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/tracing/opentelemetry.py +0 -0
  119. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/tracing/utils.py +0 -0
  120. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/utils.py +0 -0
  121. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/extensions/validation_cache.py +0 -0
  122. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/fastapi/__init__.py +0 -0
  123. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/fastapi/context.py +0 -0
  124. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/fastapi/router.py +0 -0
  125. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/federation/__init__.py +0 -0
  126. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/federation/argument.py +0 -0
  127. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/federation/enum.py +0 -0
  128. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/federation/field.py +0 -0
  129. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/federation/mutation.py +0 -0
  130. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/federation/object_type.py +0 -0
  131. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/federation/scalar.py +0 -0
  132. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/federation/schema.py +0 -0
  133. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/federation/schema_directive.py +0 -0
  134. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/federation/schema_directives.py +0 -0
  135. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/federation/types.py +0 -0
  136. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/federation/union.py +0 -0
  137. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/field_extensions/__init__.py +0 -0
  138. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/field_extensions/input_mutation.py +0 -0
  139. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/file_uploads/__init__.py +0 -0
  140. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/file_uploads/scalars.py +0 -0
  141. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/file_uploads/utils.py +0 -0
  142. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/flask/__init__.py +0 -0
  143. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/http/__init__.py +0 -0
  144. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/http/async_base_view.py +0 -0
  145. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/http/base.py +0 -0
  146. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/http/exceptions.py +0 -0
  147. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/http/ides.py +0 -0
  148. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/http/parse_content_type.py +0 -0
  149. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/http/sync_base_view.py +0 -0
  150. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/http/temporal_response.py +0 -0
  151. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/http/types.py +0 -0
  152. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/http/typevars.py +0 -0
  153. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/litestar/__init__.py +0 -0
  154. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/litestar/controller.py +0 -0
  155. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/parent.py +0 -0
  156. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/permission.py +0 -0
  157. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/printer/__init__.py +0 -0
  158. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/printer/ast_from_value.py +0 -0
  159. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/printer/printer.py +0 -0
  160. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/py.typed +0 -0
  161. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/quart/__init__.py +0 -0
  162. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/relay/__init__.py +0 -0
  163. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/relay/exceptions.py +0 -0
  164. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/relay/fields.py +0 -0
  165. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/relay/types.py +0 -0
  166. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/relay/utils.py +0 -0
  167. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/resolvers.py +0 -0
  168. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/sanic/__init__.py +0 -0
  169. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/sanic/context.py +0 -0
  170. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/sanic/utils.py +0 -0
  171. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/scalars.py +0 -0
  172. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/__init__.py +0 -0
  173. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/compat.py +0 -0
  174. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/config.py +0 -0
  175. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/exceptions.py +0 -0
  176. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/name_converter.py +0 -0
  177. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/schema_converter.py +0 -0
  178. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/types/__init__.py +0 -0
  179. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/types/base_scalars.py +0 -0
  180. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/types/concrete_type.py +0 -0
  181. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/types/scalar.py +0 -0
  182. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/validation_rules/__init__.py +0 -0
  183. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema/validation_rules/one_of.py +0 -0
  184. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema_codegen/__init__.py +0 -0
  185. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema_directive.py +0 -0
  186. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/schema_directives.py +0 -0
  187. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/static/apollo-sandbox.html +0 -0
  188. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/static/graphiql.html +0 -0
  189. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/static/pathfinder.html +0 -0
  190. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/subscriptions/__init__.py +0 -0
  191. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/subscriptions/protocols/__init__.py +0 -0
  192. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
  193. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +0 -0
  194. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/subscriptions/protocols/graphql_ws/__init__.py +0 -0
  195. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/subscriptions/protocols/graphql_ws/types.py +0 -0
  196. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/test/__init__.py +0 -0
  197. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/test/client.py +0 -0
  198. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/tools/__init__.py +0 -0
  199. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/tools/create_type.py +0 -0
  200. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/tools/merge_types.py +0 -0
  201. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/__init__.py +0 -0
  202. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/arguments.py +0 -0
  203. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/auto.py +0 -0
  204. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/base.py +0 -0
  205. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/cast.py +0 -0
  206. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/enum.py +0 -0
  207. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/execution.py +0 -0
  208. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/field.py +0 -0
  209. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/fields/__init__.py +0 -0
  210. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/fields/resolver.py +0 -0
  211. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/graphql.py +0 -0
  212. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/info.py +0 -0
  213. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/lazy_type.py +0 -0
  214. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/mutation.py +0 -0
  215. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/nodes.py +0 -0
  216. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/object_type.py +0 -0
  217. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/private.py +0 -0
  218. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/scalar.py +0 -0
  219. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/type_resolver.py +0 -0
  220. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/union.py +0 -0
  221. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/types/unset.py +0 -0
  222. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/__init__.py +0 -0
  223. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/aio.py +0 -0
  224. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/await_maybe.py +0 -0
  225. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/dataclasses.py +0 -0
  226. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/debug.py +0 -0
  227. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/deprecations.py +0 -0
  228. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/graphql_lexer.py +0 -0
  229. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/importer.py +0 -0
  230. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/inspect.py +0 -0
  231. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/logging.py +0 -0
  232. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/operation.py +0 -0
  233. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/str_converters.py +0 -0
  234. {strawberry_graphql-0.262.3 → strawberry_graphql-0.262.5}/strawberry/utils/typing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: strawberry-graphql
3
- Version: 0.262.3
3
+ Version: 0.262.5
4
4
  Summary: A library for creating GraphQL APIs
5
5
  License: MIT
6
6
  Keywords: graphql,api,rest,starlette,async
@@ -1,7 +1,7 @@
1
1
  [tool.poetry]
2
2
  name = "strawberry-graphql"
3
3
  packages = [ { include = "strawberry" } ]
4
- version = "0.262.3"
4
+ version = "0.262.5"
5
5
  description = "A library for creating GraphQL APIs"
6
6
  authors = ["Patrick Arminio <patrick.arminio@gmail.com>"]
7
7
  license = "MIT"
@@ -96,7 +96,7 @@ inline-snapshot = "^0.10.1"
96
96
  types-deprecated = "^1.2.15.20241117"
97
97
  types-six = "^1.17.0.20241205"
98
98
  types-pyyaml = "^6.0.12.20240917"
99
- mypy = "^1.13.0"
99
+ mypy = "^1.15.0"
100
100
  codeflash = ">=0.9.2"
101
101
 
102
102
  [tool.poetry.group.integrations]
@@ -91,6 +91,10 @@ ATTR_TO_TYPE_MAP_Pydantic_V2 = {
91
91
  "SecretStr": str,
92
92
  "SecretBytes": bytes,
93
93
  "AnyUrl": str,
94
+ "AnyHttpUrl": str,
95
+ "HttpUrl": str,
96
+ "PostgresDsn": str,
97
+ "RedisDsn": str,
94
98
  }
95
99
 
96
100
  ATTR_TO_TYPE_MAP_Pydantic_Core_V2 = {
@@ -218,13 +222,13 @@ class PydanticV1Compat:
218
222
  ConstrainedStr = pydantic.v1.ConstrainedStr
219
223
  ConstrainedList = pydantic.v1.ConstrainedList
220
224
 
221
- if lenient_issubclass(type_, ConstrainedInt):
225
+ if lenient_issubclass(type_, ConstrainedInt): # type: ignore
222
226
  return int
223
- if lenient_issubclass(type_, ConstrainedFloat):
227
+ if lenient_issubclass(type_, ConstrainedFloat): # type: ignore
224
228
  return float
225
- if lenient_issubclass(type_, ConstrainedStr):
229
+ if lenient_issubclass(type_, ConstrainedStr): # type: ignore
226
230
  return str
227
- if lenient_issubclass(type_, ConstrainedList):
231
+ if lenient_issubclass(type_, ConstrainedList): # type: ignore
228
232
  return list[self.get_basic_type(type_.item_type)] # type: ignore
229
233
 
230
234
  if type_ in self.fields_map:
@@ -263,8 +267,8 @@ class PydanticCompat:
263
267
  if IS_PYDANTIC_V2:
264
268
  from typing_extensions import get_args, get_origin
265
269
 
266
- from pydantic._internal._typing_extra import is_new_type
267
- from pydantic._internal._utils import lenient_issubclass, smart_deepcopy
270
+ from pydantic.v1.typing import is_new_type
271
+ from pydantic.v1.utils import lenient_issubclass, smart_deepcopy
268
272
 
269
273
  def new_type_supertype(type_: Any) -> Any:
270
274
  return type_.__supertype__
@@ -49,7 +49,7 @@ class FlaskHTTPRequestAdapter(SyncHTTPRequestAdapter):
49
49
 
50
50
  @property
51
51
  def headers(self) -> Mapping[str, str]:
52
- return self.request.headers
52
+ return self.request.headers # type: ignore
53
53
 
54
54
  @property
55
55
  def post_data(self) -> Mapping[str, Union[str, bytes]]:
@@ -147,7 +147,7 @@ class AsyncFlaskHTTPRequestAdapter(AsyncHTTPRequestAdapter):
147
147
 
148
148
  @property
149
149
  def headers(self) -> Mapping[str, str]:
150
- return self.request.headers
150
+ return self.request.headers # type: ignore
151
151
 
152
152
  async def get_body(self) -> str:
153
153
  return self.request.data.decode()
@@ -35,7 +35,7 @@ class QuartHTTPRequestAdapter(AsyncHTTPRequestAdapter):
35
35
 
36
36
  @property
37
37
  def headers(self) -> Mapping[str, str]:
38
- return self.request.headers
38
+ return self.request.headers # type: ignore
39
39
 
40
40
  async def get_body(self) -> str:
41
41
  return (await self.request.data).decode()
@@ -179,7 +179,7 @@ class GraphQLView(
179
179
  except HTTPException as e:
180
180
  return HTTPResponse(e.reason, status=e.status_code)
181
181
 
182
- async def get(self, request: Request) -> HTTPResponse: # type: ignore[override]
182
+ async def get(self, request: Request) -> HTTPResponse:
183
183
  self.request = request
184
184
 
185
185
  try:
@@ -12,6 +12,7 @@ if TYPE_CHECKING:
12
12
  from graphql import GraphQLError
13
13
 
14
14
  from strawberry.directive import StrawberryDirective
15
+ from strawberry.schema.schema import SubscriptionResult
15
16
  from strawberry.schema.schema_converter import GraphQLCoreConverter
16
17
  from strawberry.types import (
17
18
  ExecutionContext,
@@ -27,7 +28,6 @@ if TYPE_CHECKING:
27
28
  from strawberry.types.union import StrawberryUnion
28
29
 
29
30
  from .config import StrawberryConfig
30
- from .subscribe import SubscriptionResult
31
31
 
32
32
 
33
33
  class BaseSchema(Protocol):
@@ -82,8 +82,8 @@ if TYPE_CHECKING:
82
82
  from strawberry.types.scalar import ScalarDefinition, ScalarWrapper
83
83
  from strawberry.types.union import StrawberryUnion
84
84
 
85
- SubscriptionResult: TypeAlias = Union[
86
- PreExecutionError, AsyncGenerator[ExecutionResult, None]
85
+ SubscriptionResult: TypeAlias = AsyncGenerator[
86
+ Union[PreExecutionError, ExecutionResult], None
87
87
  ]
88
88
 
89
89
  OriginSubscriptionResult = Union[
@@ -760,7 +760,7 @@ class Schema(BaseSchema):
760
760
  for extension in extensions:
761
761
  extension.execution_context = execution_context
762
762
 
763
- asyncgen = self._subscribe(
763
+ return self._subscribe(
764
764
  execution_context,
765
765
  extensions_runner=self.create_extensions_runner(
766
766
  execution_context, extensions
@@ -768,31 +768,6 @@ class Schema(BaseSchema):
768
768
  middleware_manager=self._get_middleware_manager(extensions),
769
769
  execution_context_class=self.execution_context_class,
770
770
  )
771
- # GraphQL-core might return an initial error result instead of an async iterator.
772
- # This happens when "there was an immediate error" i.e resolver is not an async iterator.
773
- # To overcome this while maintaining the extension contexts we do this trick.
774
- first = await asyncgen.__anext__()
775
- if isinstance(first, PreExecutionError):
776
- await asyncgen.aclose()
777
- return first
778
-
779
- async def _wrapper() -> AsyncGenerator[ExecutionResult, None]:
780
- yield first
781
- async for result in asyncgen:
782
- yield result
783
-
784
- return _wrapper()
785
-
786
- return await subscribe(
787
- self._schema,
788
- execution_context=execution_context,
789
- extensions_runner=self.create_extensions_runner(
790
- execution_context, extensions
791
- ),
792
- process_errors=self._process_errors,
793
- middleware_manager=self._get_middleware_manager(extensions),
794
- execution_context_class=self.execution_context_class,
795
- )
796
771
 
797
772
  def _resolve_node_ids(self) -> None:
798
773
  for concrete_type in self.schema_converter.type_map.values():
@@ -2,7 +2,6 @@ from __future__ import annotations
2
2
 
3
3
  import asyncio
4
4
  import logging
5
- from collections.abc import Awaitable
6
5
  from contextlib import suppress
7
6
  from typing import (
8
7
  TYPE_CHECKING,
@@ -38,12 +37,11 @@ from strawberry.utils.debug import pretty_print_graphql_operation
38
37
  from strawberry.utils.operation import get_operation_type
39
38
 
40
39
  if TYPE_CHECKING:
41
- from collections.abc import Awaitable
42
40
  from datetime import timedelta
43
41
 
44
42
  from strawberry.http.async_base_view import AsyncBaseHTTPView, AsyncWebSocketAdapter
45
43
  from strawberry.schema import BaseSchema
46
- from strawberry.schema.subscribe import SubscriptionResult
44
+ from strawberry.schema.schema import SubscriptionResult
47
45
 
48
46
 
49
47
  class BaseGraphQLTransportWSHandler(Generic[Context, RootValue]):
@@ -186,8 +184,6 @@ class BaseGraphQLTransportWSHandler(Generic[Context, RootValue]):
186
184
  elif hasattr(self.context, "connection_params"):
187
185
  self.context.connection_params = payload
188
186
 
189
- self.context = cast(Context, self.context)
190
-
191
187
  try:
192
188
  connection_ack_payload = await self.view.on_ws_connect(self.context)
193
189
  except ConnectionRejectionError:
@@ -256,50 +252,61 @@ class BaseGraphQLTransportWSHandler(Generic[Context, RootValue]):
256
252
 
257
253
  async def run_operation(self, operation: Operation[Context, RootValue]) -> None:
258
254
  """The operation task's top level method. Cleans-up and de-registers the operation once it is done."""
259
- # TODO: Handle errors in this method using self.handle_task_exception()
260
-
261
- result_source: Awaitable[ExecutionResult] | Awaitable[SubscriptionResult]
262
-
263
- # Get an AsyncGenerator yielding the results
264
- if operation.operation_type == OperationType.SUBSCRIPTION:
265
- result_source = self.schema.subscribe(
266
- query=operation.query,
267
- variable_values=operation.variables,
268
- operation_name=operation.operation_name,
269
- context_value=self.context,
270
- root_value=self.root_value,
271
- )
272
- else:
273
- result_source = self.schema.execute(
274
- query=operation.query,
275
- variable_values=operation.variables,
276
- context_value=self.context,
277
- root_value=self.root_value,
278
- operation_name=operation.operation_name,
279
- )
255
+ result_source: ExecutionResult | SubscriptionResult
280
256
 
281
257
  try:
282
- first_res_or_agen = await result_source
283
- # that's an immediate error we should end the operation
284
- # without a COMPLETE message
285
- if isinstance(first_res_or_agen, PreExecutionError):
286
- assert first_res_or_agen.errors
287
- await operation.send_initial_errors(first_res_or_agen.errors)
288
- # that's a mutation / query result
289
- elif isinstance(first_res_or_agen, ExecutionResult):
290
- await operation.send_next(first_res_or_agen)
291
- await operation.send_operation_message(
292
- {"id": operation.id, "type": "complete"}
258
+ # Get an AsyncGenerator yielding the results
259
+ if operation.operation_type == OperationType.SUBSCRIPTION:
260
+ result_source = await self.schema.subscribe(
261
+ query=operation.query,
262
+ variable_values=operation.variables,
263
+ operation_name=operation.operation_name,
264
+ context_value=self.context,
265
+ root_value=self.root_value,
293
266
  )
294
267
  else:
295
- async for result in first_res_or_agen:
268
+ result_source = await self.schema.execute(
269
+ query=operation.query,
270
+ variable_values=operation.variables,
271
+ context_value=self.context,
272
+ root_value=self.root_value,
273
+ operation_name=operation.operation_name,
274
+ )
275
+
276
+ # TODO: maybe change PreExecutionError to an exception that can be caught
277
+
278
+ if isinstance(result_source, ExecutionResult):
279
+ if isinstance(result_source, PreExecutionError):
280
+ assert result_source.errors
281
+ await operation.send_initial_errors(result_source.errors)
282
+ else:
283
+ await operation.send_next(result_source)
284
+ else:
285
+ is_first_result = True
286
+
287
+ async for result in result_source:
288
+ if is_first_result and isinstance(result, PreExecutionError):
289
+ assert result.errors
290
+ await operation.send_initial_errors(result.errors)
291
+ break
292
+
296
293
  await operation.send_next(result)
294
+ is_first_result = False
295
+
296
+ await operation.send_operation_message(
297
+ CompleteMessage(id=operation.id, type="complete")
298
+ )
299
+
300
+ except Exception as error: # pragma: no cover
301
+ await self.handle_task_exception(error)
302
+
303
+ with suppress(Exception):
297
304
  await operation.send_operation_message(
298
305
  {"id": operation.id, "type": "complete"}
299
306
  )
300
307
 
301
- except BaseException: # pragma: no cover
302
308
  self.operations.pop(operation.id, None)
309
+
303
310
  raise
304
311
  finally:
305
312
  # add this task to a list to be reaped later
@@ -15,9 +15,11 @@ from strawberry.exceptions import ConnectionRejectionError
15
15
  from strawberry.http.exceptions import NonTextMessageReceived, WebSocketDisconnected
16
16
  from strawberry.http.typevars import Context, RootValue
17
17
  from strawberry.subscriptions.protocols.graphql_ws.types import (
18
+ CompleteMessage,
18
19
  ConnectionInitMessage,
19
20
  ConnectionTerminateMessage,
20
21
  DataMessage,
22
+ ErrorMessage,
21
23
  OperationMessage,
22
24
  StartMessage,
23
25
  StopMessage,
@@ -103,8 +105,6 @@ class BaseGraphQLWSHandler(Generic[Context, RootValue]):
103
105
  elif hasattr(self.context, "connection_params"):
104
106
  self.context.connection_params = payload
105
107
 
106
- self.context = cast(Context, self.context)
107
-
108
108
  try:
109
109
  connection_ack_payload = await self.view.on_ws_connect(self.context)
110
110
  except ConnectionRejectionError as e:
@@ -164,31 +164,37 @@ class BaseGraphQLWSHandler(Generic[Context, RootValue]):
164
164
  variables: Optional[dict[str, object]],
165
165
  ) -> None:
166
166
  try:
167
- agen_or_err = await self.schema.subscribe(
167
+ result_source = await self.schema.subscribe(
168
168
  query=query,
169
169
  variable_values=variables,
170
170
  operation_name=operation_name,
171
171
  context_value=self.context,
172
172
  root_value=self.root_value,
173
173
  )
174
- if isinstance(agen_or_err, PreExecutionError):
175
- assert agen_or_err.errors
176
- await self.send_message(
177
- {
178
- "type": "error",
179
- "id": operation_id,
180
- "payload": agen_or_err.errors[0].formatted,
181
- }
182
- )
183
- else:
184
- self.subscriptions[operation_id] = agen_or_err
174
+ self.subscriptions[operation_id] = result_source
175
+
176
+ is_first_result = True
177
+
178
+ async for result in result_source:
179
+ if is_first_result and isinstance(result, PreExecutionError):
180
+ assert result.errors
181
+
182
+ await self.send_message(
183
+ ErrorMessage(
184
+ type="error",
185
+ id=operation_id,
186
+ payload=result.errors[0].formatted,
187
+ )
188
+ )
189
+ return
190
+
191
+ await self.send_data_message(result, operation_id)
192
+ is_first_result = False
185
193
 
186
- async for result in agen_or_err:
187
- await self.send_data_message(result, operation_id)
194
+ await self.send_message(CompleteMessage(type="complete", id=operation_id))
188
195
 
189
- await self.send_message({"type": "complete", "id": operation_id})
190
196
  except asyncio.CancelledError:
191
- await self.send_message({"type": "complete", "id": operation_id})
197
+ await self.send_message(CompleteMessage(type="complete", id=operation_id))
192
198
 
193
199
  async def cleanup_operation(self, operation_id: str) -> None:
194
200
  if operation_id in self.subscriptions: