strawberry-graphql 0.279.0.dev1754138688__tar.gz → 0.284.3__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 (255) hide show
  1. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/PKG-INFO +14 -8
  2. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/README.md +5 -5
  3. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/pyproject.toml +96 -79
  4. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/__init__.py +1 -2
  5. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/aiohttp/test/client.py +8 -15
  6. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/aiohttp/views.py +13 -64
  7. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/annotation.py +19 -23
  8. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/asgi/__init__.py +20 -56
  9. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/asgi/test/client.py +6 -6
  10. strawberry_graphql-0.284.3/strawberry/chalice/views.py +88 -0
  11. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/handlers/base.py +7 -8
  12. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/handlers/http_handler.py +48 -26
  13. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/handlers/ws_handler.py +10 -14
  14. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/router.py +3 -4
  15. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/testing.py +7 -9
  16. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/__init__.py +1 -0
  17. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/codegen.py +7 -7
  18. strawberry_graphql-0.284.3/strawberry/cli/commands/dev.py +72 -0
  19. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/schema_codegen.py +1 -2
  20. strawberry_graphql-0.284.3/strawberry/cli/commands/server.py +41 -0
  21. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/upgrade/__init__.py +3 -3
  22. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/upgrade/_run_codemod.py +2 -2
  23. strawberry_graphql-0.284.3/strawberry/cli/constants.py +1 -0
  24. strawberry_graphql-0.279.0.dev1754138688/strawberry/cli/debug_server.py → strawberry_graphql-0.284.3/strawberry/cli/dev_server.py +3 -7
  25. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/plugins/print_operation.py +2 -2
  26. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/plugins/python.py +2 -2
  27. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/query_codegen.py +20 -30
  28. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/types.py +32 -32
  29. strawberry_graphql-0.284.3/strawberry/codemods/__init__.py +9 -0
  30. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codemods/annotated_unions.py +2 -2
  31. strawberry_graphql-0.284.3/strawberry/codemods/maybe_optional.py +118 -0
  32. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/dataloader.py +28 -24
  33. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/directive.py +6 -7
  34. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/django/test/client.py +3 -3
  35. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/django/views.py +19 -91
  36. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/__init__.py +4 -4
  37. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/conflicting_arguments.py +2 -2
  38. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/duplicated_type_name.py +4 -4
  39. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/exception.py +3 -3
  40. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/handler.py +8 -7
  41. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/invalid_argument_type.py +2 -2
  42. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/invalid_superclass_interface.py +2 -2
  43. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/invalid_union_type.py +4 -4
  44. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/missing_arguments_annotations.py +2 -2
  45. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/missing_dependencies.py +2 -4
  46. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/missing_field_annotation.py +2 -2
  47. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/missing_return_annotation.py +2 -2
  48. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/object_is_not_a_class.py +2 -2
  49. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/object_is_not_an_enum.py +2 -2
  50. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/permission_fail_silently_requires_optional.py +2 -2
  51. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/private_strawberry_field.py +2 -2
  52. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/scalar_already_registered.py +2 -2
  53. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/syntax.py +3 -3
  54. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/unresolved_field_type.py +2 -2
  55. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/utils/source_finder.py +25 -25
  56. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/_compat.py +9 -7
  57. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/conversion.py +2 -2
  58. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/conversion_types.py +2 -2
  59. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/error_type.py +11 -12
  60. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/fields.py +10 -15
  61. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/object_type.py +15 -23
  62. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/utils.py +2 -2
  63. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/ext/mypy_plugin.py +12 -14
  64. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/base_extension.py +2 -1
  65. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/context.py +13 -18
  66. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/directives.py +3 -1
  67. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/field_extension.py +4 -4
  68. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/mask_errors.py +5 -7
  69. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/max_aliases.py +1 -3
  70. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/parser_cache.py +1 -2
  71. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/query_depth_limiter.py +18 -14
  72. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/runner.py +2 -2
  73. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/tracing/apollo.py +3 -3
  74. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/tracing/datadog.py +3 -3
  75. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/tracing/opentelemetry.py +6 -8
  76. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/tracing/utils.py +3 -1
  77. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/utils.py +2 -2
  78. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/validation_cache.py +1 -2
  79. strawberry_graphql-0.284.3/strawberry/fastapi/context.py +23 -0
  80. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/fastapi/router.py +41 -42
  81. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/argument.py +4 -5
  82. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/enum.py +18 -21
  83. strawberry_graphql-0.284.3/strawberry/federation/field.py +272 -0
  84. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/object_type.py +56 -58
  85. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/scalar.py +27 -35
  86. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/schema.py +15 -16
  87. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/schema_directive.py +7 -6
  88. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/schema_directives.py +11 -11
  89. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/union.py +4 -4
  90. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/flask/views.py +14 -85
  91. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/__init__.py +14 -14
  92. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/async_base_view.py +28 -62
  93. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/base.py +13 -13
  94. strawberry_graphql-0.284.3/strawberry/http/exceptions.py +17 -0
  95. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/ides.py +2 -3
  96. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/sync_base_view.py +12 -47
  97. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/types.py +3 -3
  98. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/litestar/controller.py +41 -77
  99. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/permission.py +4 -6
  100. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/printer/ast_from_value.py +3 -5
  101. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/printer/printer.py +8 -13
  102. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/quart/views.py +13 -47
  103. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/relay/exceptions.py +4 -4
  104. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/relay/fields.py +33 -32
  105. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/relay/types.py +31 -34
  106. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/relay/utils.py +11 -23
  107. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/resolvers.py +2 -1
  108. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/sanic/context.py +1 -0
  109. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/sanic/utils.py +3 -3
  110. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/sanic/views.py +13 -55
  111. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/scalars.py +2 -2
  112. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/_graphql_core.py +5 -5
  113. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/base.py +32 -33
  114. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/compat.py +9 -9
  115. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/config.py +5 -2
  116. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/exceptions.py +1 -3
  117. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/name_converter.py +6 -6
  118. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/schema.py +57 -60
  119. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/schema_converter.py +34 -22
  120. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/types/base_scalars.py +1 -1
  121. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/types/concrete_type.py +5 -5
  122. strawberry_graphql-0.284.3/strawberry/schema/validation_rules/maybe_null.py +136 -0
  123. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema_codegen/__init__.py +3 -3
  124. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema_directive.py +7 -6
  125. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +5 -16
  126. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +20 -20
  127. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +5 -12
  128. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/subscriptions/protocols/graphql_ws/types.py +14 -14
  129. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/test/client.py +18 -18
  130. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/tools/create_type.py +2 -3
  131. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/arguments.py +41 -28
  132. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/auto.py +3 -4
  133. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/base.py +25 -27
  134. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/enum.py +22 -25
  135. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/execution.py +14 -15
  136. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/field.py +108 -108
  137. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/fields/resolver.py +19 -21
  138. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/info.py +5 -11
  139. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/lazy_type.py +2 -3
  140. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/maybe.py +12 -3
  141. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/mutation.py +115 -118
  142. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/nodes.py +2 -2
  143. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/object_type.py +43 -63
  144. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/scalar.py +37 -43
  145. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/union.py +12 -14
  146. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/aio.py +12 -9
  147. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/await_maybe.py +3 -3
  148. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/deprecations.py +2 -2
  149. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/importer.py +1 -2
  150. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/inspect.py +4 -6
  151. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/logging.py +2 -2
  152. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/operation.py +4 -4
  153. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/typing.py +18 -83
  154. strawberry_graphql-0.279.0.dev1754138688/strawberry/chalice/views.py +0 -156
  155. strawberry_graphql-0.279.0.dev1754138688/strawberry/cli/commands/server.py +0 -82
  156. strawberry_graphql-0.279.0.dev1754138688/strawberry/cli/constants.py +0 -2
  157. strawberry_graphql-0.279.0.dev1754138688/strawberry/fastapi/context.py +0 -23
  158. strawberry_graphql-0.279.0.dev1754138688/strawberry/federation/field.py +0 -275
  159. strawberry_graphql-0.279.0.dev1754138688/strawberry/http/exceptions.py +0 -19
  160. strawberry_graphql-0.279.0.dev1754138688/strawberry/pydantic/__init__.py +0 -21
  161. strawberry_graphql-0.279.0.dev1754138688/strawberry/pydantic/fields.py +0 -202
  162. strawberry_graphql-0.279.0.dev1754138688/strawberry/pydantic/object_type.py +0 -348
  163. strawberry_graphql-0.279.0.dev1754138688/strawberry/types/fields/__init__.py +0 -0
  164. strawberry_graphql-0.279.0.dev1754138688/strawberry/utils/dataclasses.py +0 -37
  165. strawberry_graphql-0.279.0.dev1754138688/strawberry/utils/debug.py +0 -46
  166. strawberry_graphql-0.279.0.dev1754138688/strawberry/utils/graphql_lexer.py +0 -35
  167. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/LICENSE +0 -0
  168. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/__main__.py +0 -0
  169. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/aiohttp/__init__.py +0 -0
  170. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/aiohttp/test/__init__.py +0 -0
  171. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/asgi/test/__init__.py +0 -0
  172. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/chalice/__init__.py +0 -0
  173. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/__init__.py +0 -0
  174. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/channels/handlers/__init__.py +0 -0
  175. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/app.py +0 -0
  176. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/__init__.py +0 -0
  177. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/export_schema.py +0 -0
  178. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/locate_definition.py +0 -0
  179. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
  180. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/utils/__init__.py +0 -0
  181. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/cli/utils/load_schema.py +0 -0
  182. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/__init__.py +0 -0
  183. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/exceptions.py +0 -0
  184. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/plugins/__init__.py +0 -0
  185. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codegen/plugins/typescript.py +0 -0
  186. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/codemods/update_imports.py +0 -0
  187. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/django/__init__.py +0 -0
  188. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/django/apps.py +0 -0
  189. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/django/context.py +0 -0
  190. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/django/test/__init__.py +0 -0
  191. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/exceptions/exception_source.py +0 -0
  192. {strawberry_graphql-0.279.0.dev1754138688/strawberry/codemods → strawberry_graphql-0.284.3/strawberry/exceptions/utils}/__init__.py +0 -0
  193. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/__init__.py +0 -0
  194. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/__init__.py +0 -0
  195. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/experimental/pydantic/exceptions.py +0 -0
  196. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/ext/LICENSE +0 -0
  197. {strawberry_graphql-0.279.0.dev1754138688/strawberry/exceptions/utils → strawberry_graphql-0.284.3/strawberry/ext}/__init__.py +0 -0
  198. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/ext/dataclasses/LICENSE +0 -0
  199. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/ext/dataclasses/README.md +0 -0
  200. {strawberry_graphql-0.279.0.dev1754138688/strawberry/ext → strawberry_graphql-0.284.3/strawberry/ext/dataclasses}/__init__.py +0 -0
  201. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/ext/dataclasses/dataclasses.py +0 -0
  202. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/__init__.py +0 -0
  203. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/add_validation_rules.py +0 -0
  204. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/disable_introspection.py +0 -0
  205. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/disable_validation.py +0 -0
  206. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/max_tokens.py +0 -0
  207. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/pyinstrument.py +0 -0
  208. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/extensions/tracing/__init__.py +0 -0
  209. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/fastapi/__init__.py +0 -0
  210. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/__init__.py +0 -0
  211. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/mutation.py +0 -0
  212. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/federation/types.py +0 -0
  213. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/field_extensions/__init__.py +0 -0
  214. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/field_extensions/input_mutation.py +0 -0
  215. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/file_uploads/__init__.py +0 -0
  216. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/file_uploads/scalars.py +0 -0
  217. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/file_uploads/utils.py +0 -0
  218. {strawberry_graphql-0.279.0.dev1754138688/strawberry/ext/dataclasses → strawberry_graphql-0.284.3/strawberry/flask}/__init__.py +0 -0
  219. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/parse_content_type.py +0 -0
  220. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/temporal_response.py +0 -0
  221. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/http/typevars.py +0 -0
  222. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/litestar/__init__.py +0 -0
  223. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/parent.py +0 -0
  224. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/printer/__init__.py +0 -0
  225. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/py.typed +0 -0
  226. {strawberry_graphql-0.279.0.dev1754138688/strawberry/flask → strawberry_graphql-0.284.3/strawberry/quart}/__init__.py +0 -0
  227. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/relay/__init__.py +0 -0
  228. {strawberry_graphql-0.279.0.dev1754138688/strawberry/quart → strawberry_graphql-0.284.3/strawberry/sanic}/__init__.py +0 -0
  229. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/__init__.py +0 -0
  230. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/types/__init__.py +0 -0
  231. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/types/scalar.py +0 -0
  232. {strawberry_graphql-0.279.0.dev1754138688/strawberry/sanic → strawberry_graphql-0.284.3/strawberry/schema/validation_rules}/__init__.py +0 -0
  233. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema/validation_rules/one_of.py +0 -0
  234. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/schema_directives.py +0 -0
  235. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/static/apollo-sandbox.html +0 -0
  236. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/static/graphiql.html +0 -0
  237. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/static/pathfinder.html +0 -0
  238. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/streamable.py +0 -0
  239. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/subscriptions/__init__.py +0 -0
  240. {strawberry_graphql-0.279.0.dev1754138688/strawberry/schema/validation_rules → strawberry_graphql-0.284.3/strawberry/subscriptions/protocols}/__init__.py +0 -0
  241. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
  242. {strawberry_graphql-0.279.0.dev1754138688/strawberry/subscriptions/protocols → strawberry_graphql-0.284.3/strawberry/subscriptions/protocols/graphql_ws}/__init__.py +0 -0
  243. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/test/__init__.py +0 -0
  244. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/tools/__init__.py +0 -0
  245. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/tools/merge_types.py +0 -0
  246. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/__init__.py +0 -0
  247. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/cast.py +0 -0
  248. {strawberry_graphql-0.279.0.dev1754138688/strawberry/subscriptions/protocols/graphql_ws → strawberry_graphql-0.284.3/strawberry/types/fields}/__init__.py +0 -0
  249. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/graphql.py +0 -0
  250. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/private.py +0 -0
  251. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/type_resolver.py +0 -0
  252. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/types/unset.py +0 -0
  253. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/__init__.py +0 -0
  254. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/locate_definition.py +0 -0
  255. {strawberry_graphql-0.279.0.dev1754138688 → strawberry_graphql-0.284.3}/strawberry/utils/str_converters.py +0 -0
@@ -1,12 +1,13 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: strawberry-graphql
3
- Version: 0.279.0.dev1754138688
3
+ Version: 0.284.3
4
4
  Summary: A library for creating GraphQL APIs
5
5
  License: MIT
6
+ License-File: LICENSE
6
7
  Keywords: graphql,api,rest,starlette,async
7
8
  Author: Patrick Arminio
8
9
  Author-email: patrick.arminio@gmail.com
9
- Requires-Python: >=3.9,<4.0
10
+ Requires-Python: >=3.10,<4.0
10
11
  Classifier: Development Status :: 5 - Production/Stable
11
12
  Classifier: Intended Audience :: Developers
12
13
  Classifier: Topic :: Software Development :: Libraries
@@ -37,6 +38,7 @@ Requires-Dist: channels (>=3.0.5) ; extra == "channels"
37
38
  Requires-Dist: fastapi (>=0.65.2) ; extra == "fastapi"
38
39
  Requires-Dist: flask (>=1.1) ; extra == "flask"
39
40
  Requires-Dist: graphql-core (>=3.2.0,<3.4.0)
41
+ Requires-Dist: lia-web (>=0.2.1)
40
42
  Requires-Dist: libcst ; extra == "cli"
41
43
  Requires-Dist: libcst ; extra == "debug"
42
44
  Requires-Dist: libcst ; extra == "debug-server"
@@ -50,6 +52,7 @@ Requires-Dist: pygments (>=2.3,<3.0) ; extra == "debug-server"
50
52
  Requires-Dist: pyinstrument (>=4.0.0) ; extra == "pyinstrument"
51
53
  Requires-Dist: python-dateutil (>=2.7,<3.0)
52
54
  Requires-Dist: python-multipart (>=0.0.7) ; extra == "asgi"
55
+ Requires-Dist: python-multipart (>=0.0.7) ; extra == "cli"
53
56
  Requires-Dist: python-multipart (>=0.0.7) ; extra == "debug-server"
54
57
  Requires-Dist: python-multipart (>=0.0.7) ; extra == "fastapi"
55
58
  Requires-Dist: quart (>=0.19.3) ; extra == "quart"
@@ -58,11 +61,14 @@ Requires-Dist: rich (>=12.0.0) ; extra == "debug"
58
61
  Requires-Dist: rich (>=12.0.0) ; extra == "debug-server"
59
62
  Requires-Dist: sanic (>=20.12.2) ; extra == "sanic"
60
63
  Requires-Dist: starlette (>=0.18.0) ; extra == "asgi"
64
+ Requires-Dist: starlette (>=0.18.0) ; extra == "cli"
61
65
  Requires-Dist: starlette (>=0.18.0) ; extra == "debug-server"
62
66
  Requires-Dist: typer (>=0.7.0) ; extra == "cli"
63
67
  Requires-Dist: typer (>=0.7.0) ; extra == "debug-server"
64
68
  Requires-Dist: typing-extensions (>=4.5.0)
69
+ Requires-Dist: uvicorn (>=0.11.6) ; extra == "cli"
65
70
  Requires-Dist: uvicorn (>=0.11.6) ; extra == "debug-server"
71
+ Requires-Dist: websockets (>=15.0.1,<16) ; extra == "cli"
66
72
  Requires-Dist: websockets (>=15.0.1,<16) ; extra == "debug-server"
67
73
  Project-URL: Changelog, https://strawberry.rocks/changelog
68
74
  Project-URL: Documentation, https://strawberry.rocks/
@@ -91,7 +97,7 @@ The quick start method provides a server and CLI to get going quickly. Install
91
97
  with:
92
98
 
93
99
  ```shell
94
- pip install "strawberry-graphql[debug-server]"
100
+ pip install "strawberry-graphql[cli]"
95
101
  ```
96
102
 
97
103
  ## Getting Started
@@ -121,13 +127,13 @@ schema = strawberry.Schema(query=Query)
121
127
  This will create a GraphQL schema defining a `User` type and a single query
122
128
  field `user` that will return a hardcoded user.
123
129
 
124
- To run the debug server run the following command:
130
+ To serve the schema using the dev server run the following command:
125
131
 
126
132
  ```shell
127
- strawberry server app
133
+ strawberry dev app
128
134
  ```
129
135
 
130
- Open the debug server by clicking on the following link:
136
+ Open the dev server by clicking on the following link:
131
137
  [http://0.0.0.0:8000/graphql](http://0.0.0.0:8000/graphql)
132
138
 
133
139
  This will open GraphiQL where you can test the API.
@@ -184,7 +190,7 @@ get started follow these steps:
184
190
  ```shell
185
191
  git clone https://github.com/strawberry-graphql/strawberry
186
192
  cd strawberry
187
- poetry install --with integrations
193
+ poetry install
188
194
  poetry run pytest
189
195
  ```
190
196
 
@@ -14,7 +14,7 @@ The quick start method provides a server and CLI to get going quickly. Install
14
14
  with:
15
15
 
16
16
  ```shell
17
- pip install "strawberry-graphql[debug-server]"
17
+ pip install "strawberry-graphql[cli]"
18
18
  ```
19
19
 
20
20
  ## Getting Started
@@ -44,13 +44,13 @@ schema = strawberry.Schema(query=Query)
44
44
  This will create a GraphQL schema defining a `User` type and a single query
45
45
  field `user` that will return a hardcoded user.
46
46
 
47
- To run the debug server run the following command:
47
+ To serve the schema using the dev server run the following command:
48
48
 
49
49
  ```shell
50
- strawberry server app
50
+ strawberry dev app
51
51
  ```
52
52
 
53
- Open the debug server by clicking on the following link:
53
+ Open the dev server by clicking on the following link:
54
54
  [http://0.0.0.0:8000/graphql](http://0.0.0.0:8000/graphql)
55
55
 
56
56
  This will open GraphiQL where you can test the API.
@@ -107,7 +107,7 @@ get started follow these steps:
107
107
  ```shell
108
108
  git clone https://github.com/strawberry-graphql/strawberry
109
109
  cd strawberry
110
- poetry install --with integrations
110
+ poetry install
111
111
  poetry run pytest
112
112
  ```
113
113
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "strawberry-graphql"
3
- version = "0.279.0.dev.1754138688"
3
+ version = "0.284.3"
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" }
@@ -13,12 +13,13 @@ classifiers = [
13
13
  "Topic :: Software Development :: Libraries :: Python Modules",
14
14
  "License :: OSI Approved :: MIT License",
15
15
  ]
16
- requires-python = ">=3.9,<4.0"
16
+ requires-python = ">=3.10,<4.0"
17
17
  dependencies = [
18
18
  "graphql-core>=3.2.0,<3.4.0",
19
19
  "typing-extensions>=4.5.0",
20
20
  "python-dateutil~=2.7",
21
21
  "packaging>=23",
22
+ "lia-web (>=0.2.1)",
22
23
  ]
23
24
 
24
25
  [project.urls]
@@ -58,79 +59,88 @@ pydantic = ["pydantic>1.6.1"]
58
59
  sanic = ["sanic>=20.12.2"]
59
60
  fastapi = ["fastapi>=0.65.2", "python-multipart>=0.0.7"]
60
61
  chalice = ["chalice~=1.22"]
61
- cli = ["typer>=0.7.0", "pygments~=2.3", "rich>=12.0.0", "libcst"]
62
+ cli = [
63
+ "typer>=0.7.0",
64
+ "pygments~=2.3",
65
+ "rich>=12.0.0",
66
+ "libcst",
67
+ "starlette>=0.18.0",
68
+ "uvicorn>=0.11.6",
69
+ "websockets>=15.0.1,<16",
70
+ "python-multipart>=0.0.7",
71
+ ]
62
72
  litestar = ["litestar>=2; python_version~='3.10'"]
63
73
  pyinstrument = ["pyinstrument>=4.0.0"]
64
74
 
75
+ [dependency-groups]
76
+ dev = [
77
+ "ruff (>=0.14.1,<0.15.0)",
78
+ "asgiref (>=3.2,<4.0)",
79
+ "email-validator (>=1.1.3,<3.0.0)",
80
+ "freezegun (>=1.2.1,<2.0.0)",
81
+ "libcst (>=1.8.2,<2.0.0)",
82
+ "markupsafe (==2.1.3)",
83
+ "nox (>=2024.4.15,<2025.0.0)",
84
+ "nox-poetry (>=1.0.3,<2.0.0)",
85
+ "opentelemetry-api (<2)",
86
+ "opentelemetry-sdk (<2)",
87
+ "pygments (>=2.3,<3.0)",
88
+ "pyinstrument (>=4.0.0)",
89
+ "pytest (>=7.2,<8.0)",
90
+ "pytest-asyncio (>=0.20.3)",
91
+ "pytest-codspeed (>=3.0.0)",
92
+ "pytest-cov (>=4.0.0,<5.0.0)",
93
+ "pytest-emoji (>=0.2.0,<0.3.0)",
94
+ "pytest-mock (>=3.10,<4.0)",
95
+ "pytest-snapshot (>=0.9.0,<0.10.0)",
96
+ "pytest-xdist[psutil] (>=3.1.0,<4.0.0)",
97
+ "python-multipart (>=0.0.7)",
98
+ "rich (>=12.5.1)",
99
+ "sanic-testing (>=22.9,<24.0)",
100
+ "typer (>=0.7.0)",
101
+ "types-aiofiles (>=24.1.0.20250326,<25.0.0.0)",
102
+ "types-certifi (>=2021.10.8,<2022.0.0)",
103
+ "types-chardet (>=5.0.4,<6.0.0)",
104
+ "types-freezegun (>=1.1.9,<2.0.0)",
105
+ "types-python-dateutil (>=2.8.19,<3.0.0)",
106
+ "types-toml (>=0.10.8,<0.11.0)",
107
+ "types-typed-ast (>=1.5.8,<2.0.0)",
108
+ "types-ujson (>=5.10.0.20250326,<6.0.0.0)",
109
+ "types-protobuf (>=5.29.1.20250403,<6.0.0.0)",
110
+ "poetry-plugin-export (>=1.6.0,<2.0.0)",
111
+ # another bug in poetry
112
+ "urllib3 (<2)",
113
+ "inline-snapshot (>=0.10.1,<0.11.0)",
114
+ "types-deprecated (>=1.2.15.20241117,<2.0.0.0)",
115
+ "types-six (>=1.17.0.20250403,<2.0.0.0)",
116
+ "types-pyyaml (>=6.0.12.20240917,<7.0.0.0)",
117
+ "mypy (>=1.15.0,<2.0.0)",
118
+ "pyright (==1.1.401)",
119
+ "codeflash (>=0.9.2)",
120
+ "pre-commit",
121
+ ]
122
+ integrations = [
123
+ "aiohttp (>=3.7.4.post0,<4.0.0)",
124
+ "chalice (>=1.22,<2.0)",
125
+ "channels (>=3.0.5,<5.0.0)",
126
+ "django (>=3.2)",
127
+ "fastapi (>=0.65.0)",
128
+ "flask (>=1.1)",
129
+ "quart (>=0.19.3)",
130
+ "pydantic (>=2.0)",
131
+ "pytest-aiohttp (>=1.0.3,<2.0.0)",
132
+ "pytest-django (>=4.5,<5.0)",
133
+ "sanic (>=20.12.2)",
134
+ "starlette (>=0.13.6)",
135
+ "litestar (>=2) ; python_version >= \"3.10\"",
136
+ "uvicorn (>=0.11.6)",
137
+ "daphne (>=4.0.0,<5.0.0)",
138
+ ]
139
+
65
140
  [tool.poetry]
66
141
  packages = [{ include = "strawberry" }]
67
142
  include = ["strawberry/py.typed"]
68
143
 
69
- [tool.poetry.group.dev.dependencies]
70
- ruff = "^0.12.3"
71
- asgiref = "^3.2"
72
- email-validator = { version = ">=1.1.3,<3.0.0", optional = false }
73
- freezegun = "^1.2.1"
74
- libcst = { version = "^1.8.2", optional = false }
75
- MarkupSafe = "2.1.3"
76
- nox = "^2024.4.15"
77
- nox-poetry = "^1.0.3"
78
- opentelemetry-api = "<2"
79
- opentelemetry-sdk = "<2"
80
- pygments = "^2.3"
81
- pyinstrument = { version = ">=4.0.0", optional = false }
82
- pytest = "^7.2"
83
- pytest-asyncio = ">=0.20.3"
84
- pytest-codspeed = { version = ">=3.0.0", python = ">=3.9" }
85
- pytest-cov = "^4.0.0"
86
- pytest-emoji = "^0.2.0"
87
- pytest-mock = "^3.10"
88
- pytest-snapshot = "^0.9.0"
89
- pytest-xdist = { extras = ["psutil"], version = "^3.1.0" }
90
- python-multipart = ">=0.0.7"
91
- rich = { version = ">=12.5.1", optional = false }
92
- sanic-testing = ">=22.9,<24.0"
93
- typer = { version = ">=0.7.0", optional = false }
94
- types-aiofiles = "^24.1.0.20250326"
95
- types-certifi = "^2021.10.8"
96
- types-chardet = "^5.0.4"
97
- types-freezegun = "^1.1.9"
98
- types-python-dateutil = "^2.8.19"
99
- types-toml = "^0.10.8"
100
- types-typed-ast = "^1.5.8"
101
- types-ujson = "^5.10.0.20250326"
102
- types-protobuf = "^5.29.1.20250403"
103
- poetry-plugin-export = { version = "^1.6.0", python = "<4.0", optional = false }
104
- # another bug in poetry
105
- urllib3 = "<2"
106
- inline-snapshot = "^0.10.1"
107
- types-deprecated = "^1.2.15.20241117"
108
- types-six = "^1.17.0.20250403"
109
- types-pyyaml = "^6.0.12.20240917"
110
- mypy = "^1.15.0"
111
- pyright = "1.1.401"
112
- codeflash = ">=0.9.2"
113
-
114
- [tool.poetry.group.integrations]
115
- optional = true
116
-
117
- [tool.poetry.group.integrations.dependencies]
118
- aiohttp = "^3.7.4.post0"
119
- chalice = { version = "^1.22" }
120
- channels = ">=3.0.5,<5.0.0"
121
- Django = ">=3.2"
122
- fastapi = { version = ">=0.65.0", optional = false }
123
- flask = ">=1.1"
124
- quart = ">=0.19.3"
125
- pydantic = { version = ">=2.0", optional = false }
126
- pytest-aiohttp = "^1.0.3"
127
- pytest-django = { version = "^4.5" }
128
- sanic = ">=20.12.2"
129
- starlette = ">=0.13.6"
130
- litestar = { version = ">=2", python = ">=3.10,<4.0", optional = false }
131
- uvicorn = ">=0.11.6"
132
- daphne = "^4.0.0"
133
-
134
144
  [tool.pytest.ini_options]
135
145
  addopts = "--emoji"
136
146
  DJANGO_SETTINGS_MODULE = "tests.django.django_settings"
@@ -181,12 +191,12 @@ append-github-contributor = true
181
191
  exclude = ["**/__pycache__", "**/.venv", "**/.pytest_cache", "**/.nox"]
182
192
  reportMissingImports = true
183
193
  reportMissingTypeStubs = false
184
- pythonVersion = "3.9"
194
+ pythonVersion = "3.10"
185
195
  stubPath = ""
186
196
 
187
197
  [tool.ruff]
188
198
  line-length = 88
189
- target-version = "py39"
199
+ target-version = "py310"
190
200
  fix = true
191
201
  exclude = [
192
202
  ".bzr",
@@ -215,13 +225,8 @@ src = ["strawberry", "tests"]
215
225
  [tool.ruff.lint]
216
226
  select = ["ALL"]
217
227
  ignore = [
218
- # https://github.com/astral-sh/ruff/pull/4427
219
- # equivalent to keep-runtime-typing. We might want to enable those
220
- # after we drop support for Python 3.9
221
- "UP006",
222
- "UP007",
223
- "UP045",
224
-
228
+ # × this should be fine to use :)
229
+ "RUF002",
225
230
  # we use asserts in tests and to hint mypy
226
231
  "S101",
227
232
 
@@ -329,7 +334,6 @@ ignore = [
329
334
  "W191",
330
335
  "PLR0915",
331
336
  ]
332
- exclude = ["tests/python_312/*"] # SyntaxError because we support Python 3.9+
333
337
 
334
338
  [tool.ruff.lint.per-file-ignores]
335
339
  ".github/*" = ["INP001"]
@@ -363,11 +367,24 @@ exclude = ["tests/python_312/*"] # SyntaxError because we support Python 3.9+
363
367
  "TCH002",
364
368
  "TCH003",
365
369
  "TRY002",
370
+ "UP007",
371
+ "UP045",
366
372
  ]
367
373
 
368
374
  [tool.ruff.lint.isort]
369
375
  known-first-party = ["strawberry"]
370
- known-third-party = ["django", "graphql"]
376
+ known-third-party = [
377
+ "django",
378
+ "graphql",
379
+ "fastapi",
380
+ "pydantic",
381
+ "litestar",
382
+ "aiohttp",
383
+ "channels",
384
+ "sanic",
385
+ "chalice",
386
+ "quart",
387
+ ]
371
388
  extra-standard-library = ["typing_extensions"]
372
389
 
373
390
  [tool.ruff.format]
@@ -4,7 +4,7 @@ Strawberry is a Python library for GraphQL that aims to stay close to the GraphQ
4
4
  specification and allow for a more natural way of defining GraphQL schemas.
5
5
  """
6
6
 
7
- from . import experimental, federation, pydantic, relay
7
+ from . import experimental, federation, relay
8
8
  from .directive import directive, directive_field
9
9
  from .parent import Parent
10
10
  from .permission import BasePermission
@@ -54,7 +54,6 @@ __all__ = [
54
54
  "interface",
55
55
  "lazy",
56
56
  "mutation",
57
- "pydantic",
58
57
  "relay",
59
58
  "scalar",
60
59
  "schema_directive",
@@ -1,27 +1,20 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import warnings
4
- from typing import (
5
- TYPE_CHECKING,
6
- Any,
7
- Optional,
8
- )
4
+ from typing import Any
9
5
 
10
6
  from strawberry.test.client import BaseGraphQLTestClient, Response
11
7
 
12
- if TYPE_CHECKING:
13
- from collections.abc import Mapping
14
-
15
8
 
16
9
  class GraphQLTestClient(BaseGraphQLTestClient):
17
10
  async def query(
18
11
  self,
19
12
  query: str,
20
- variables: Optional[dict[str, Mapping]] = None,
21
- headers: Optional[dict[str, object]] = None,
22
- asserts_errors: Optional[bool] = None,
23
- files: Optional[dict[str, object]] = None,
24
- assert_no_errors: Optional[bool] = True,
13
+ variables: dict[str, Any] | None = None,
14
+ headers: dict[str, object] | None = None,
15
+ asserts_errors: bool | None = None,
16
+ files: dict[str, object] | None = None,
17
+ assert_no_errors: bool | None = True,
25
18
  ) -> Response:
26
19
  body = self._build_body(query, variables, files)
27
20
 
@@ -54,8 +47,8 @@ class GraphQLTestClient(BaseGraphQLTestClient):
54
47
  async def request(
55
48
  self,
56
49
  body: dict[str, object],
57
- headers: Optional[dict[str, object]] = None,
58
- files: Optional[dict[str, object]] = None,
50
+ headers: dict[str, object] | None = None,
51
+ files: dict[str, object] | None = None,
59
52
  ) -> Any:
60
53
  return await self._client.post(
61
54
  self.url,
@@ -3,32 +3,24 @@ from __future__ import annotations
3
3
  import asyncio
4
4
  import warnings
5
5
  from datetime import timedelta
6
- from io import BytesIO
7
6
  from json.decoder import JSONDecodeError
8
7
  from typing import (
9
8
  TYPE_CHECKING,
10
- Any,
11
- Callable,
12
- Optional,
13
- Union,
14
- cast,
9
+ TypeGuard,
15
10
  )
16
- from typing_extensions import TypeGuard
17
11
 
18
12
  from aiohttp import ClientConnectionResetError, http, web
19
- from aiohttp.multipart import BodyPartReader
13
+ from lia import AiohttpHTTPRequestAdapter, HTTPException
14
+
20
15
  from strawberry.http.async_base_view import (
21
16
  AsyncBaseHTTPView,
22
- AsyncHTTPRequestAdapter,
23
17
  AsyncWebSocketAdapter,
24
18
  )
25
19
  from strawberry.http.exceptions import (
26
- HTTPException,
27
20
  NonJsonMessageReceived,
28
21
  NonTextMessageReceived,
29
22
  WebSocketDisconnected,
30
23
  )
31
- from strawberry.http.types import FormData, HTTPMethod, QueryParams
32
24
  from strawberry.http.typevars import (
33
25
  Context,
34
26
  RootValue,
@@ -36,54 +28,13 @@ from strawberry.http.typevars import (
36
28
  from strawberry.subscriptions import GRAPHQL_TRANSPORT_WS_PROTOCOL, GRAPHQL_WS_PROTOCOL
37
29
 
38
30
  if TYPE_CHECKING:
39
- from collections.abc import AsyncGenerator, Mapping, Sequence
31
+ from collections.abc import AsyncGenerator, Callable, Mapping, Sequence
40
32
 
41
33
  from strawberry.http import GraphQLHTTPResponse
42
34
  from strawberry.http.ides import GraphQL_IDE
43
35
  from strawberry.schema import BaseSchema
44
36
 
45
37
 
46
- class AiohttpHTTPRequestAdapter(AsyncHTTPRequestAdapter):
47
- def __init__(self, request: web.Request) -> None:
48
- self.request = request
49
-
50
- @property
51
- def query_params(self) -> QueryParams:
52
- return self.request.query.copy() # type: ignore[attr-defined]
53
-
54
- async def get_body(self) -> str:
55
- return (await self.request.content.read()).decode()
56
-
57
- @property
58
- def method(self) -> HTTPMethod:
59
- return cast("HTTPMethod", self.request.method.upper())
60
-
61
- @property
62
- def headers(self) -> Mapping[str, str]:
63
- return self.request.headers
64
-
65
- async def get_form_data(self) -> FormData:
66
- reader = await self.request.multipart()
67
-
68
- data: dict[str, Any] = {}
69
- files: dict[str, Any] = {}
70
-
71
- while field := await reader.next():
72
- assert isinstance(field, BodyPartReader)
73
- assert field.name
74
-
75
- if field.filename:
76
- files[field.name] = BytesIO(await field.read(decode=False))
77
- else:
78
- data[field.name] = await field.text()
79
-
80
- return FormData(files=files, form=data)
81
-
82
- @property
83
- def content_type(self) -> Optional[str]:
84
- return self.headers.get("content-type")
85
-
86
-
87
38
  class AiohttpWebSocketAdapter(AsyncWebSocketAdapter):
88
39
  def __init__(
89
40
  self, view: AsyncBaseHTTPView, request: web.Request, ws: web.WebSocketResponse
@@ -119,7 +70,7 @@ class AiohttpWebSocketAdapter(AsyncWebSocketAdapter):
119
70
  class GraphQLView(
120
71
  AsyncBaseHTTPView[
121
72
  web.Request,
122
- Union[web.Response, web.StreamResponse],
73
+ web.Response | web.StreamResponse,
123
74
  web.Response,
124
75
  web.Request,
125
76
  web.WebSocketResponse,
@@ -133,17 +84,16 @@ class GraphQLView(
133
84
 
134
85
  allow_queries_via_get = True
135
86
  request_adapter_class = AiohttpHTTPRequestAdapter
136
- websocket_adapter_class = AiohttpWebSocketAdapter
87
+ websocket_adapter_class = AiohttpWebSocketAdapter # type: ignore
137
88
 
138
89
  def __init__(
139
90
  self,
140
91
  schema: BaseSchema,
141
- graphiql: Optional[bool] = None,
142
- graphql_ide: Optional[GraphQL_IDE] = "graphiql",
92
+ graphiql: bool | None = None,
93
+ graphql_ide: GraphQL_IDE | None = "graphiql",
143
94
  allow_queries_via_get: bool = True,
144
95
  keep_alive: bool = True,
145
96
  keep_alive_interval: float = 1,
146
- debug: bool = False,
147
97
  subscription_protocols: Sequence[str] = (
148
98
  GRAPHQL_TRANSPORT_WS_PROTOCOL,
149
99
  GRAPHQL_WS_PROTOCOL,
@@ -155,7 +105,6 @@ class GraphQLView(
155
105
  self.allow_queries_via_get = allow_queries_via_get
156
106
  self.keep_alive = keep_alive
157
107
  self.keep_alive_interval = keep_alive_interval
158
- self.debug = debug
159
108
  self.subscription_protocols = subscription_protocols
160
109
  self.connection_init_wait_timeout = connection_init_wait_timeout
161
110
  self.multipart_uploads_enabled = multipart_uploads_enabled
@@ -180,12 +129,12 @@ class GraphQLView(
180
129
  ws = web.WebSocketResponse(protocols=self.subscription_protocols)
181
130
  return ws.can_prepare(request).ok
182
131
 
183
- async def pick_websocket_subprotocol(self, request: web.Request) -> Optional[str]:
132
+ async def pick_websocket_subprotocol(self, request: web.Request) -> str | None:
184
133
  ws = web.WebSocketResponse(protocols=self.subscription_protocols)
185
134
  return ws.can_prepare(request).protocol
186
135
 
187
136
  async def create_websocket_response(
188
- self, request: web.Request, subprotocol: Optional[str]
137
+ self, request: web.Request, subprotocol: str | None
189
138
  ) -> web.WebSocketResponse:
190
139
  protocols = [subprotocol] if subprotocol else []
191
140
  ws = web.WebSocketResponse(protocols=protocols)
@@ -201,17 +150,17 @@ class GraphQLView(
201
150
  status=e.status_code,
202
151
  )
203
152
 
204
- async def get_root_value(self, request: web.Request) -> Optional[RootValue]:
153
+ async def get_root_value(self, request: web.Request) -> RootValue | None:
205
154
  return None
206
155
 
207
156
  async def get_context(
208
- self, request: web.Request, response: Union[web.Response, web.WebSocketResponse]
157
+ self, request: web.Request, response: web.Response | web.WebSocketResponse
209
158
  ) -> Context:
210
159
  return {"request": request, "response": response} # type: ignore
211
160
 
212
161
  def create_response(
213
162
  self,
214
- response_data: Union[GraphQLHTTPResponse, list[GraphQLHTTPResponse]],
163
+ response_data: GraphQLHTTPResponse | list[GraphQLHTTPResponse],
215
164
  sub_response: web.Response,
216
165
  ) -> web.Response:
217
166
  sub_response.text = self.encode_json(response_data)