strawberry-graphql 0.282.0__tar.gz → 0.283.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of strawberry-graphql might be problematic. Click here for more details.

Files changed (246) hide show
  1. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/PKG-INFO +12 -7
  2. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/README.md +5 -5
  3. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/pyproject.toml +76 -67
  4. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/aiohttp/views.py +1 -1
  5. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/asgi/__init__.py +1 -1
  6. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/channels/handlers/ws_handler.py +1 -1
  7. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/cli/__init__.py +1 -0
  8. strawberry_graphql-0.283.1/strawberry/cli/commands/dev.py +72 -0
  9. strawberry_graphql-0.283.1/strawberry/cli/commands/server.py +41 -0
  10. strawberry_graphql-0.283.1/strawberry/cli/constants.py +1 -0
  11. strawberry_graphql-0.282.0/strawberry/cli/debug_server.py → strawberry_graphql-0.283.1/strawberry/cli/dev_server.py +2 -2
  12. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/codegen/query_codegen.py +2 -7
  13. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/ext/mypy_plugin.py +1 -1
  14. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/fastapi/router.py +1 -1
  15. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/http/base.py +6 -7
  16. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/litestar/controller.py +1 -1
  17. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/quart/views.py +1 -1
  18. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/_graphql_core.py +8 -8
  19. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/field.py +1 -1
  20. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/info.py +1 -1
  21. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/utils/typing.py +2 -5
  22. strawberry_graphql-0.282.0/strawberry/cli/commands/server.py +0 -72
  23. strawberry_graphql-0.282.0/strawberry/cli/constants.py +0 -1
  24. strawberry_graphql-0.282.0/strawberry/utils/graphql_lexer.py +0 -35
  25. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/LICENSE +0 -0
  26. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/__init__.py +0 -0
  27. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/__main__.py +0 -0
  28. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/aiohttp/__init__.py +0 -0
  29. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/aiohttp/test/__init__.py +0 -0
  30. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/aiohttp/test/client.py +0 -0
  31. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/annotation.py +0 -0
  32. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/asgi/test/__init__.py +0 -0
  33. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/asgi/test/client.py +0 -0
  34. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/chalice/__init__.py +0 -0
  35. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/chalice/views.py +0 -0
  36. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/channels/__init__.py +0 -0
  37. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/channels/handlers/__init__.py +0 -0
  38. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/channels/handlers/base.py +0 -0
  39. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/channels/handlers/http_handler.py +0 -0
  40. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/channels/router.py +0 -0
  41. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/channels/testing.py +0 -0
  42. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/cli/app.py +0 -0
  43. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/cli/commands/__init__.py +0 -0
  44. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/cli/commands/codegen.py +0 -0
  45. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/cli/commands/export_schema.py +0 -0
  46. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/cli/commands/locate_definition.py +0 -0
  47. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/cli/commands/schema_codegen.py +0 -0
  48. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/cli/commands/upgrade/__init__.py +0 -0
  49. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
  50. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/cli/commands/upgrade/_run_codemod.py +0 -0
  51. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/cli/utils/__init__.py +0 -0
  52. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/cli/utils/load_schema.py +0 -0
  53. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/codegen/__init__.py +0 -0
  54. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/codegen/exceptions.py +0 -0
  55. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/codegen/plugins/__init__.py +0 -0
  56. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/codegen/plugins/print_operation.py +0 -0
  57. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/codegen/plugins/python.py +0 -0
  58. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/codegen/plugins/typescript.py +0 -0
  59. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/codegen/types.py +0 -0
  60. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/codemods/__init__.py +0 -0
  61. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/codemods/annotated_unions.py +0 -0
  62. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/codemods/maybe_optional.py +0 -0
  63. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/codemods/update_imports.py +0 -0
  64. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/dataloader.py +0 -0
  65. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/directive.py +0 -0
  66. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/django/__init__.py +0 -0
  67. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/django/apps.py +0 -0
  68. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/django/context.py +0 -0
  69. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/django/test/__init__.py +0 -0
  70. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/django/test/client.py +0 -0
  71. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/django/views.py +0 -0
  72. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/__init__.py +0 -0
  73. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/conflicting_arguments.py +0 -0
  74. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/duplicated_type_name.py +0 -0
  75. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/exception.py +0 -0
  76. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/exception_source.py +0 -0
  77. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/handler.py +0 -0
  78. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/invalid_argument_type.py +0 -0
  79. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/invalid_superclass_interface.py +0 -0
  80. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/invalid_union_type.py +0 -0
  81. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/missing_arguments_annotations.py +0 -0
  82. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/missing_dependencies.py +0 -0
  83. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/missing_field_annotation.py +0 -0
  84. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/missing_return_annotation.py +0 -0
  85. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/object_is_not_a_class.py +0 -0
  86. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/object_is_not_an_enum.py +0 -0
  87. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/permission_fail_silently_requires_optional.py +0 -0
  88. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/private_strawberry_field.py +0 -0
  89. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/scalar_already_registered.py +0 -0
  90. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/syntax.py +0 -0
  91. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/unresolved_field_type.py +0 -0
  92. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/utils/__init__.py +0 -0
  93. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/exceptions/utils/source_finder.py +0 -0
  94. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/experimental/__init__.py +0 -0
  95. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/experimental/pydantic/__init__.py +0 -0
  96. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/experimental/pydantic/_compat.py +0 -0
  97. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/experimental/pydantic/conversion.py +0 -0
  98. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/experimental/pydantic/conversion_types.py +0 -0
  99. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/experimental/pydantic/error_type.py +0 -0
  100. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/experimental/pydantic/exceptions.py +0 -0
  101. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/experimental/pydantic/fields.py +0 -0
  102. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/experimental/pydantic/object_type.py +0 -0
  103. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/experimental/pydantic/utils.py +0 -0
  104. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/ext/LICENSE +0 -0
  105. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/ext/__init__.py +0 -0
  106. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/ext/dataclasses/LICENSE +0 -0
  107. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/ext/dataclasses/README.md +0 -0
  108. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/ext/dataclasses/__init__.py +0 -0
  109. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/ext/dataclasses/dataclasses.py +0 -0
  110. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/__init__.py +0 -0
  111. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/add_validation_rules.py +0 -0
  112. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/base_extension.py +0 -0
  113. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/context.py +0 -0
  114. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/directives.py +0 -0
  115. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/disable_introspection.py +0 -0
  116. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/disable_validation.py +0 -0
  117. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/field_extension.py +0 -0
  118. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/mask_errors.py +0 -0
  119. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/max_aliases.py +0 -0
  120. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/max_tokens.py +0 -0
  121. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/parser_cache.py +0 -0
  122. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/pyinstrument.py +0 -0
  123. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/query_depth_limiter.py +0 -0
  124. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/runner.py +0 -0
  125. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/tracing/__init__.py +0 -0
  126. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/tracing/apollo.py +0 -0
  127. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/tracing/datadog.py +0 -0
  128. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/tracing/opentelemetry.py +0 -0
  129. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/tracing/utils.py +0 -0
  130. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/utils.py +0 -0
  131. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/extensions/validation_cache.py +0 -0
  132. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/fastapi/__init__.py +0 -0
  133. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/fastapi/context.py +0 -0
  134. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/federation/__init__.py +0 -0
  135. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/federation/argument.py +0 -0
  136. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/federation/enum.py +0 -0
  137. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/federation/field.py +0 -0
  138. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/federation/mutation.py +0 -0
  139. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/federation/object_type.py +0 -0
  140. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/federation/scalar.py +0 -0
  141. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/federation/schema.py +0 -0
  142. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/federation/schema_directive.py +0 -0
  143. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/federation/schema_directives.py +0 -0
  144. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/federation/types.py +0 -0
  145. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/federation/union.py +0 -0
  146. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/field_extensions/__init__.py +0 -0
  147. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/field_extensions/input_mutation.py +0 -0
  148. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/file_uploads/__init__.py +0 -0
  149. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/file_uploads/scalars.py +0 -0
  150. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/file_uploads/utils.py +0 -0
  151. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/flask/__init__.py +0 -0
  152. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/flask/views.py +0 -0
  153. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/http/__init__.py +0 -0
  154. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/http/async_base_view.py +0 -0
  155. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/http/exceptions.py +0 -0
  156. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/http/ides.py +0 -0
  157. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/http/parse_content_type.py +0 -0
  158. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/http/sync_base_view.py +0 -0
  159. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/http/temporal_response.py +0 -0
  160. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/http/types.py +0 -0
  161. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/http/typevars.py +0 -0
  162. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/litestar/__init__.py +0 -0
  163. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/parent.py +0 -0
  164. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/permission.py +0 -0
  165. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/printer/__init__.py +0 -0
  166. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/printer/ast_from_value.py +0 -0
  167. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/printer/printer.py +0 -0
  168. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/py.typed +0 -0
  169. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/quart/__init__.py +0 -0
  170. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/relay/__init__.py +0 -0
  171. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/relay/exceptions.py +0 -0
  172. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/relay/fields.py +0 -0
  173. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/relay/types.py +0 -0
  174. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/relay/utils.py +0 -0
  175. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/resolvers.py +0 -0
  176. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/sanic/__init__.py +0 -0
  177. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/sanic/context.py +0 -0
  178. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/sanic/utils.py +0 -0
  179. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/sanic/views.py +0 -0
  180. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/scalars.py +0 -0
  181. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/__init__.py +0 -0
  182. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/base.py +0 -0
  183. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/compat.py +0 -0
  184. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/config.py +0 -0
  185. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/exceptions.py +0 -0
  186. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/name_converter.py +0 -0
  187. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/schema.py +0 -0
  188. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/schema_converter.py +0 -0
  189. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/types/__init__.py +0 -0
  190. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/types/base_scalars.py +0 -0
  191. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/types/concrete_type.py +0 -0
  192. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/types/scalar.py +0 -0
  193. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/validation_rules/__init__.py +0 -0
  194. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/validation_rules/maybe_null.py +0 -0
  195. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema/validation_rules/one_of.py +0 -0
  196. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema_codegen/__init__.py +0 -0
  197. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema_directive.py +0 -0
  198. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/schema_directives.py +0 -0
  199. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/static/apollo-sandbox.html +0 -0
  200. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/static/graphiql.html +0 -0
  201. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/static/pathfinder.html +0 -0
  202. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/streamable.py +0 -0
  203. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/subscriptions/__init__.py +0 -0
  204. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/subscriptions/protocols/__init__.py +0 -0
  205. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
  206. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +0 -0
  207. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +0 -0
  208. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/subscriptions/protocols/graphql_ws/__init__.py +0 -0
  209. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +0 -0
  210. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/subscriptions/protocols/graphql_ws/types.py +0 -0
  211. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/test/__init__.py +0 -0
  212. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/test/client.py +0 -0
  213. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/tools/__init__.py +0 -0
  214. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/tools/create_type.py +0 -0
  215. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/tools/merge_types.py +0 -0
  216. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/__init__.py +0 -0
  217. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/arguments.py +0 -0
  218. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/auto.py +0 -0
  219. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/base.py +0 -0
  220. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/cast.py +0 -0
  221. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/enum.py +0 -0
  222. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/execution.py +0 -0
  223. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/fields/__init__.py +0 -0
  224. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/fields/resolver.py +0 -0
  225. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/graphql.py +0 -0
  226. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/lazy_type.py +0 -0
  227. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/maybe.py +0 -0
  228. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/mutation.py +0 -0
  229. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/nodes.py +0 -0
  230. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/object_type.py +0 -0
  231. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/private.py +0 -0
  232. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/scalar.py +0 -0
  233. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/type_resolver.py +0 -0
  234. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/union.py +0 -0
  235. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/types/unset.py +0 -0
  236. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/utils/__init__.py +0 -0
  237. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/utils/aio.py +0 -0
  238. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/utils/await_maybe.py +0 -0
  239. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/utils/dataclasses.py +0 -0
  240. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/utils/deprecations.py +0 -0
  241. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/utils/importer.py +0 -0
  242. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/utils/inspect.py +0 -0
  243. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/utils/locate_definition.py +0 -0
  244. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/utils/logging.py +0 -0
  245. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/utils/operation.py +0 -0
  246. {strawberry_graphql-0.282.0 → strawberry_graphql-0.283.1}/strawberry/utils/str_converters.py +0 -0
@@ -1,8 +1,9 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: strawberry-graphql
3
- Version: 0.282.0
3
+ Version: 0.283.1
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
@@ -51,6 +52,7 @@ Requires-Dist: pygments (>=2.3,<3.0) ; extra == "debug-server"
51
52
  Requires-Dist: pyinstrument (>=4.0.0) ; extra == "pyinstrument"
52
53
  Requires-Dist: python-dateutil (>=2.7,<3.0)
53
54
  Requires-Dist: python-multipart (>=0.0.7) ; extra == "asgi"
55
+ Requires-Dist: python-multipart (>=0.0.7) ; extra == "cli"
54
56
  Requires-Dist: python-multipart (>=0.0.7) ; extra == "debug-server"
55
57
  Requires-Dist: python-multipart (>=0.0.7) ; extra == "fastapi"
56
58
  Requires-Dist: quart (>=0.19.3) ; extra == "quart"
@@ -59,11 +61,14 @@ Requires-Dist: rich (>=12.0.0) ; extra == "debug"
59
61
  Requires-Dist: rich (>=12.0.0) ; extra == "debug-server"
60
62
  Requires-Dist: sanic (>=20.12.2) ; extra == "sanic"
61
63
  Requires-Dist: starlette (>=0.18.0) ; extra == "asgi"
64
+ Requires-Dist: starlette (>=0.18.0) ; extra == "cli"
62
65
  Requires-Dist: starlette (>=0.18.0) ; extra == "debug-server"
63
66
  Requires-Dist: typer (>=0.7.0) ; extra == "cli"
64
67
  Requires-Dist: typer (>=0.7.0) ; extra == "debug-server"
65
68
  Requires-Dist: typing-extensions (>=4.5.0)
69
+ Requires-Dist: uvicorn (>=0.11.6) ; extra == "cli"
66
70
  Requires-Dist: uvicorn (>=0.11.6) ; extra == "debug-server"
71
+ Requires-Dist: websockets (>=15.0.1,<16) ; extra == "cli"
67
72
  Requires-Dist: websockets (>=15.0.1,<16) ; extra == "debug-server"
68
73
  Project-URL: Changelog, https://strawberry.rocks/changelog
69
74
  Project-URL: Documentation, https://strawberry.rocks/
@@ -92,7 +97,7 @@ The quick start method provides a server and CLI to get going quickly. Install
92
97
  with:
93
98
 
94
99
  ```shell
95
- pip install "strawberry-graphql[debug-server]"
100
+ pip install "strawberry-graphql[cli]"
96
101
  ```
97
102
 
98
103
  ## Getting Started
@@ -122,13 +127,13 @@ schema = strawberry.Schema(query=Query)
122
127
  This will create a GraphQL schema defining a `User` type and a single query
123
128
  field `user` that will return a hardcoded user.
124
129
 
125
- To run the debug server run the following command:
130
+ To serve the schema using the dev server run the following command:
126
131
 
127
132
  ```shell
128
- strawberry server app
133
+ strawberry dev app
129
134
  ```
130
135
 
131
- Open the debug server by clicking on the following link:
136
+ Open the dev server by clicking on the following link:
132
137
  [http://0.0.0.0:8000/graphql](http://0.0.0.0:8000/graphql)
133
138
 
134
139
  This will open GraphiQL where you can test the API.
@@ -185,7 +190,7 @@ get started follow these steps:
185
190
  ```shell
186
191
  git clone https://github.com/strawberry-graphql/strawberry
187
192
  cd strawberry
188
- poetry install --with integrations
193
+ poetry install
189
194
  poetry run pytest
190
195
  ```
191
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.282.0"
3
+ version = "0.283.1"
4
4
  description = "A library for creating GraphQL APIs"
5
5
  authors = [{ name = "Patrick Arminio", email = "patrick.arminio@gmail.com" }]
6
6
  license = { text = "MIT" }
@@ -59,79 +59,88 @@ pydantic = ["pydantic>1.6.1"]
59
59
  sanic = ["sanic>=20.12.2"]
60
60
  fastapi = ["fastapi>=0.65.2", "python-multipart>=0.0.7"]
61
61
  chalice = ["chalice~=1.22"]
62
- 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
+ ]
63
72
  litestar = ["litestar>=2; python_version~='3.10'"]
64
73
  pyinstrument = ["pyinstrument>=4.0.0"]
65
74
 
75
+ [dependency-groups]
76
+ dev = [
77
+ "ruff (>=0.12.3,<0.13.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) ; python_version >= \"3.9\"",
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 (>=4.3.0,<5.0.0)",
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
+
66
140
  [tool.poetry]
67
141
  packages = [{ include = "strawberry" }]
68
142
  include = ["strawberry/py.typed"]
69
143
 
70
- [tool.poetry.group.dev.dependencies]
71
- ruff = "^0.12.3"
72
- asgiref = "^3.2"
73
- email-validator = { version = ">=1.1.3,<3.0.0", optional = false }
74
- freezegun = "^1.2.1"
75
- libcst = { version = "^1.8.2", optional = false }
76
- MarkupSafe = "2.1.3"
77
- nox = "^2024.4.15"
78
- nox-poetry = "^1.0.3"
79
- opentelemetry-api = "<2"
80
- opentelemetry-sdk = "<2"
81
- pygments = "^2.3"
82
- pyinstrument = { version = ">=4.0.0", optional = false }
83
- pytest = "^7.2"
84
- pytest-asyncio = ">=0.20.3"
85
- pytest-codspeed = { version = ">=3.0.0", python = ">=3.9" }
86
- pytest-cov = "^4.0.0"
87
- pytest-emoji = "^0.2.0"
88
- pytest-mock = "^3.10"
89
- pytest-snapshot = "^0.9.0"
90
- pytest-xdist = { extras = ["psutil"], version = "^3.1.0" }
91
- python-multipart = ">=0.0.7"
92
- rich = { version = ">=12.5.1", optional = false }
93
- sanic-testing = ">=22.9,<24.0"
94
- typer = { version = ">=0.7.0", optional = false }
95
- types-aiofiles = "^24.1.0.20250326"
96
- types-certifi = "^2021.10.8"
97
- types-chardet = "^5.0.4"
98
- types-freezegun = "^1.1.9"
99
- types-python-dateutil = "^2.8.19"
100
- types-toml = "^0.10.8"
101
- types-typed-ast = "^1.5.8"
102
- types-ujson = "^5.10.0.20250326"
103
- types-protobuf = "^5.29.1.20250403"
104
- poetry-plugin-export = { version = "^1.6.0", python = "<4.0", optional = false }
105
- # another bug in poetry
106
- urllib3 = "<2"
107
- inline-snapshot = "^0.10.1"
108
- types-deprecated = "^1.2.15.20241117"
109
- types-six = "^1.17.0.20250403"
110
- types-pyyaml = "^6.0.12.20240917"
111
- mypy = "^1.15.0"
112
- pyright = "1.1.401"
113
- codeflash = ">=0.9.2"
114
-
115
- [tool.poetry.group.integrations]
116
- optional = true
117
-
118
- [tool.poetry.group.integrations.dependencies]
119
- aiohttp = "^3.7.4.post0"
120
- chalice = { version = "^1.22" }
121
- channels = ">=3.0.5,<5.0.0"
122
- Django = ">=3.2"
123
- fastapi = { version = ">=0.65.0", optional = false }
124
- flask = ">=1.1"
125
- quart = ">=0.19.3"
126
- pydantic = { version = ">=2.0", optional = false }
127
- pytest-aiohttp = "^1.0.3"
128
- pytest-django = { version = "^4.5" }
129
- sanic = ">=20.12.2"
130
- starlette = ">=0.13.6"
131
- litestar = { version = ">=2", python = ">=3.10,<4.0", optional = false }
132
- uvicorn = ">=0.11.6"
133
- daphne = "^4.0.0"
134
-
135
144
  [tool.pytest.ini_options]
136
145
  addopts = "--emoji"
137
146
  DJANGO_SETTINGS_MODULE = "tests.django.django_settings"
@@ -87,7 +87,7 @@ class GraphQLView(
87
87
 
88
88
  allow_queries_via_get = True
89
89
  request_adapter_class = AiohttpHTTPRequestAdapter
90
- websocket_adapter_class = AiohttpWebSocketAdapter
90
+ websocket_adapter_class = AiohttpWebSocketAdapter # type: ignore
91
91
 
92
92
  def __init__(
93
93
  self,
@@ -93,7 +93,7 @@ class GraphQL(
93
93
  ):
94
94
  allow_queries_via_get = True
95
95
  request_adapter_class = StarletteRequestAdapter
96
- websocket_adapter_class = ASGIWebSocketAdapter
96
+ websocket_adapter_class = ASGIWebSocketAdapter # type: ignore
97
97
 
98
98
  def __init__(
99
99
  self,
@@ -102,7 +102,7 @@ class GraphQLWSConsumer(
102
102
  ```
103
103
  """
104
104
 
105
- websocket_adapter_class = ChannelsWebSocketAdapter
105
+ websocket_adapter_class = ChannelsWebSocketAdapter # type: ignore
106
106
 
107
107
  def __init__(
108
108
  self,
@@ -1,6 +1,7 @@
1
1
  try:
2
2
  from .app import app
3
3
  from .commands.codegen import codegen as codegen
4
+ from .commands.dev import dev as dev
4
5
  from .commands.export_schema import export_schema as export_schema
5
6
  from .commands.locate_definition import (
6
7
  locate_definition as locate_definition,
@@ -0,0 +1,72 @@
1
+ import os
2
+ import sys
3
+ from enum import Enum
4
+ from typing import Annotated
5
+
6
+ import rich
7
+ import typer
8
+
9
+ from strawberry.cli.app import app
10
+ from strawberry.cli.constants import DEV_SERVER_SCHEMA_ENV_VAR_KEY
11
+ from strawberry.cli.utils import load_schema
12
+
13
+
14
+ class LogLevel(str, Enum):
15
+ critical = "critical"
16
+ error = "error"
17
+ warning = "warning"
18
+ info = "info"
19
+ debug = "debug"
20
+ trace = "trace"
21
+
22
+
23
+ @app.command(help="Starts the dev server")
24
+ def dev(
25
+ schema: str,
26
+ host: Annotated[
27
+ str, typer.Option("-h", "--host", help="Host to bind the server to.")
28
+ ] = "0.0.0.0", # noqa: S104
29
+ port: Annotated[
30
+ int, typer.Option("-p", "--port", help="Port to bind the server to.")
31
+ ] = 8000,
32
+ log_level: Annotated[
33
+ LogLevel,
34
+ typer.Option(
35
+ "--log-level", help="Passed to uvicorn to determine the server log level."
36
+ ),
37
+ ] = LogLevel.error,
38
+ app_dir: Annotated[
39
+ str,
40
+ typer.Option(
41
+ "--app-dir",
42
+ help="Look for the schema module in the specified directory, by adding this to the PYTHONPATH. Defaults to the current working directory.",
43
+ ),
44
+ ] = ".",
45
+ ) -> None:
46
+ try:
47
+ import starlette # noqa: F401
48
+ import uvicorn
49
+ except ImportError:
50
+ rich.print(
51
+ "[red]Error: The dev server requires additional packages, install them by running:\n"
52
+ r"pip install 'strawberry-graphql\[cli]'"
53
+ )
54
+ raise typer.Exit(1) from None
55
+
56
+ sys.path.insert(0, app_dir)
57
+ load_schema(schema, app_dir=app_dir)
58
+
59
+ os.environ[DEV_SERVER_SCHEMA_ENV_VAR_KEY] = schema
60
+ asgi_app = "strawberry.cli.dev_server:app"
61
+
62
+ end = " 🍓\n" if sys.platform != "win32" else "\n"
63
+ rich.print(f"Running strawberry on http://{host}:{port}/graphql", end=end)
64
+
65
+ uvicorn.run(
66
+ asgi_app,
67
+ host=host,
68
+ port=port,
69
+ log_level=log_level,
70
+ reload=True,
71
+ reload_dirs=[app_dir],
72
+ )
@@ -0,0 +1,41 @@
1
+ from enum import Enum
2
+
3
+ import typer
4
+
5
+ from strawberry.cli.app import app
6
+
7
+
8
+ class LogLevel(str, Enum):
9
+ debug = "debug"
10
+ info = "info"
11
+ warning = "warning"
12
+ error = "error"
13
+
14
+ __slots__ = ()
15
+
16
+
17
+ @app.command(help="Starts debug server")
18
+ def server(
19
+ schema: str,
20
+ host: str = typer.Option("0.0.0.0", "-h", "--host", show_default=True), # noqa: S104
21
+ port: int = typer.Option(8000, "-p", "--port", show_default=True),
22
+ log_level: LogLevel = typer.Option(
23
+ "error",
24
+ "--log-level",
25
+ help="passed to uvicorn to determine the log level",
26
+ ),
27
+ app_dir: str = typer.Option(
28
+ ".",
29
+ "--app-dir",
30
+ show_default=True,
31
+ help=(
32
+ "Look for the module in the specified directory, by adding this to the "
33
+ "PYTHONPATH. Defaults to the current working directory. "
34
+ "Works the same as `--app-dir` in uvicorn."
35
+ ),
36
+ ),
37
+ ) -> None:
38
+ typer.echo(
39
+ "The `strawberry server` command is deprecated, use `strawberry dev` instead."
40
+ )
41
+ raise typer.Exit(1)
@@ -0,0 +1 @@
1
+ DEV_SERVER_SCHEMA_ENV_VAR_KEY = "STRAWBERRY_DEV_SERVER_SCHEMA"
@@ -6,7 +6,7 @@ from starlette.middleware.cors import CORSMiddleware
6
6
 
7
7
  from strawberry import Schema
8
8
  from strawberry.asgi import GraphQL
9
- from strawberry.cli.constants import DEBUG_SERVER_SCHEMA_ENV_VAR_KEY
9
+ from strawberry.cli.constants import DEV_SERVER_SCHEMA_ENV_VAR_KEY
10
10
  from strawberry.utils.importer import import_module_symbol
11
11
 
12
12
  app = Starlette(debug=True)
@@ -14,7 +14,7 @@ app.add_middleware(
14
14
  CORSMiddleware, allow_headers=["*"], allow_origins=["*"], allow_methods=["*"]
15
15
  )
16
16
 
17
- schema_import_string = os.environ[DEBUG_SERVER_SCHEMA_ENV_VAR_KEY]
17
+ schema_import_string = os.environ[DEV_SERVER_SCHEMA_ENV_VAR_KEY]
18
18
  schema_symbol = import_module_symbol(schema_import_string, default_symbol_name="schema")
19
19
 
20
20
  assert isinstance(schema_symbol, Schema)
@@ -13,7 +13,7 @@ from typing import (
13
13
  Union,
14
14
  cast,
15
15
  )
16
- from typing_extensions import Literal, Protocol
16
+ from typing_extensions import Protocol
17
17
 
18
18
  import rich
19
19
  from graphql import (
@@ -473,18 +473,13 @@ class QueryCodegen:
473
473
  class_name=result_class_name,
474
474
  )
475
475
 
476
- operation_kind = cast(
477
- "Literal['query', 'mutation', 'subscription']",
478
- operation_definition.operation.value,
479
- )
480
-
481
476
  variables, variables_type = self._convert_variable_definitions(
482
477
  operation_definition.variable_definitions, operation_name=operation_name
483
478
  )
484
479
 
485
480
  return GraphQLOperation(
486
481
  operation_definition.name.value,
487
- kind=operation_kind,
482
+ kind=operation_definition.operation.value,
488
483
  selections=self._convert_selection_set(operation_definition.selection_set),
489
484
  directives=self._convert_directives(operation_definition.directives),
490
485
  variables=variables,
@@ -355,7 +355,7 @@ def add_static_method_to_class(
355
355
  arg_types, arg_kinds, arg_names, return_type, function_type
356
356
  )
357
357
  if tvar_def:
358
- signature.variables = [tvar_def]
358
+ signature.variables = [tvar_def] # type: ignore[assignment]
359
359
 
360
360
  func = FuncDef(name, args, Block([PassStmt()]))
361
361
 
@@ -62,7 +62,7 @@ class GraphQLRouter(
62
62
  ):
63
63
  allow_queries_via_get = True
64
64
  request_adapter_class = StarletteRequestAdapter
65
- websocket_adapter_class = ASGIWebSocketAdapter
65
+ websocket_adapter_class = ASGIWebSocketAdapter # type: ignore
66
66
 
67
67
  @staticmethod
68
68
  async def __get_root_value() -> None:
@@ -78,13 +78,12 @@ class BaseView(Generic[Request]):
78
78
  def _is_multipart_subscriptions(
79
79
  self, content_type: str, params: dict[str, str]
80
80
  ) -> bool:
81
- if content_type != "multipart/mixed":
82
- return False
83
-
84
- if params.get("boundary") != "graphql":
85
- return False
86
-
87
- return params.get("subscriptionspec", "").startswith("1.0")
81
+ subscription_spec = params.get("subscriptionspec", "").strip("'\"")
82
+ return (
83
+ content_type == "multipart/mixed"
84
+ and ("boundary" not in params or params["boundary"] == "graphql")
85
+ and subscription_spec.startswith("1.0")
86
+ )
88
87
 
89
88
  def _validate_batch_request(
90
89
  self, request_data: list[GraphQLRequestData], protocol: str
@@ -208,7 +208,7 @@ class GraphQLController(
208
208
  }
209
209
 
210
210
  request_adapter_class = LitestarRequestAdapter
211
- websocket_adapter_class = LitestarWebSocketAdapter
211
+ websocket_adapter_class = LitestarWebSocketAdapter # type: ignore
212
212
 
213
213
  allow_queries_via_get: bool = True
214
214
  graphiql_allowed_accept: frozenset[str] = frozenset({"text/html", "*/*"})
@@ -78,7 +78,7 @@ class GraphQLView(
78
78
  methods: ClassVar[list[str]] = ["GET", "POST"]
79
79
  allow_queries_via_get: bool = True
80
80
  request_adapter_class = QuartHTTPRequestAdapter
81
- websocket_adapter_class = QuartWebSocketAdapter
81
+ websocket_adapter_class = QuartWebSocketAdapter # type: ignore
82
82
 
83
83
  def __init__(
84
84
  self,
@@ -7,16 +7,16 @@ from graphql.execution import execute, subscribe
7
7
  from strawberry.types import ExecutionResult
8
8
 
9
9
  try:
10
- from graphql import ( # type: ignore[attr-defined]
11
- ExperimentalIncrementalExecutionResults as GraphQLIncrementalExecutionResults,
10
+ from graphql import (
11
+ ExperimentalIncrementalExecutionResults as GraphQLIncrementalExecutionResults, # type: ignore[attr-defined]
12
12
  )
13
- from graphql.execution import ( # type: ignore[attr-defined]
14
- InitialIncrementalExecutionResult,
15
- experimental_execute_incrementally,
13
+ from graphql.execution import (
14
+ InitialIncrementalExecutionResult, # type: ignore[attr-defined]
15
+ experimental_execute_incrementally, # type: ignore[attr-defined]
16
16
  )
17
- from graphql.type.directives import ( # type: ignore[attr-defined]
18
- GraphQLDeferDirective,
19
- GraphQLStreamDirective,
17
+ from graphql.type.directives import (
18
+ GraphQLDeferDirective, # type: ignore[attr-defined]
19
+ GraphQLStreamDirective, # type: ignore[attr-defined]
20
20
  )
21
21
 
22
22
  incremental_execution_directives = (
@@ -292,7 +292,7 @@ class StrawberryField(dataclasses.Field):
292
292
  # removed.
293
293
  _ = resolver.arguments
294
294
 
295
- @property # type: ignore
295
+ @property
296
296
  def type(
297
297
  self,
298
298
  ) -> Union[ # type: ignore [valid-type]
@@ -78,7 +78,7 @@ class Info(Generic[ContextType, RootValueType]):
78
78
  https://discuss.python.org/t/passing-only-one-typevar-of-two-when-using-defaults/49134
79
79
  """
80
80
  if not isinstance(types, tuple):
81
- types = (types, Any) # type: ignore
81
+ types = (types, Any)
82
82
 
83
83
  return super().__class_getitem__(types) # type: ignore
84
84
 
@@ -130,10 +130,7 @@ def is_concrete_generic(annotation: type) -> bool:
130
130
 
131
131
 
132
132
  def is_generic_subclass(annotation: type) -> bool:
133
- return isinstance(annotation, type) and issubclass(
134
- annotation,
135
- Generic, # type:ignore
136
- )
133
+ return isinstance(annotation, type) and issubclass(annotation, Generic)
137
134
 
138
135
 
139
136
  def is_generic(annotation: type) -> bool:
@@ -182,7 +179,7 @@ def type_has_annotation(type_: object, annotation: type) -> bool:
182
179
  def get_parameters(annotation: type) -> Union[tuple[object], tuple[()]]:
183
180
  if isinstance(annotation, _GenericAlias) or (
184
181
  isinstance(annotation, type)
185
- and issubclass(annotation, Generic) # type:ignore
182
+ and issubclass(annotation, Generic)
186
183
  and annotation is not Generic
187
184
  ):
188
185
  return annotation.__parameters__ # type: ignore[union-attr]
@@ -1,72 +0,0 @@
1
- import os
2
- import sys
3
- from enum import Enum
4
-
5
- import rich
6
- import typer
7
-
8
- from strawberry.cli.app import app
9
- from strawberry.cli.constants import DEBUG_SERVER_SCHEMA_ENV_VAR_KEY
10
- from strawberry.cli.utils import load_schema
11
-
12
-
13
- class LogLevel(str, Enum):
14
- debug = "debug"
15
- info = "info"
16
- warning = "warning"
17
- error = "error"
18
-
19
- __slots__ = ()
20
-
21
-
22
- @app.command(help="Starts debug server")
23
- def server(
24
- schema: str,
25
- host: str = typer.Option("0.0.0.0", "-h", "--host", show_default=True), # noqa: S104
26
- port: int = typer.Option(8000, "-p", "--port", show_default=True),
27
- log_level: LogLevel = typer.Option(
28
- "error",
29
- "--log-level",
30
- help="passed to uvicorn to determine the log level",
31
- ),
32
- app_dir: str = typer.Option(
33
- ".",
34
- "--app-dir",
35
- show_default=True,
36
- help=(
37
- "Look for the module in the specified directory, by adding this to the "
38
- "PYTHONPATH. Defaults to the current working directory. "
39
- "Works the same as `--app-dir` in uvicorn."
40
- ),
41
- ),
42
- ) -> None:
43
- sys.path.insert(0, app_dir)
44
-
45
- try:
46
- import starlette # noqa: F401
47
- import uvicorn
48
- except ImportError:
49
- rich.print(
50
- "[red]Error: The debug server requires additional packages, "
51
- "install them by running:\n"
52
- r"pip install 'strawberry-graphql\[debug-server]'"
53
- )
54
- raise typer.Exit(1) # noqa: B904
55
-
56
- load_schema(schema, app_dir=app_dir)
57
-
58
- os.environ[DEBUG_SERVER_SCHEMA_ENV_VAR_KEY] = schema
59
- app = "strawberry.cli.debug_server:app"
60
-
61
- # Windows doesn't support UTF-8 by default
62
- endl = " 🍓\n" if sys.platform != "win32" else "\n"
63
- print(f"Running strawberry on http://{host}:{port}/graphql", end=endl) # noqa: T201
64
-
65
- uvicorn.run(
66
- app,
67
- host=host,
68
- port=port,
69
- log_level=log_level,
70
- reload=True,
71
- reload_dirs=[app_dir],
72
- )