strawberry-graphql 0.233.3__tar.gz → 0.234.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.
Files changed (251) hide show
  1. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/PKG-INFO +1 -1
  2. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/pyproject.toml +1 -1
  3. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/relay/types.py +46 -73
  4. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/relay/utils.py +88 -3
  5. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/LICENSE +0 -0
  6. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/README.md +0 -0
  7. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/__init__.py +0 -0
  8. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/__main__.py +0 -0
  9. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/aiohttp/__init__.py +0 -0
  10. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/aiohttp/handlers/__init__.py +0 -0
  11. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/aiohttp/handlers/graphql_transport_ws_handler.py +0 -0
  12. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/aiohttp/handlers/graphql_ws_handler.py +0 -0
  13. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/aiohttp/test/__init__.py +0 -0
  14. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/aiohttp/test/client.py +0 -0
  15. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/aiohttp/views.py +0 -0
  16. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/annotation.py +0 -0
  17. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/arguments.py +0 -0
  18. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/asgi/__init__.py +0 -0
  19. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/asgi/handlers/__init__.py +0 -0
  20. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/asgi/handlers/graphql_transport_ws_handler.py +0 -0
  21. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/asgi/handlers/graphql_ws_handler.py +0 -0
  22. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/asgi/test/__init__.py +0 -0
  23. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/asgi/test/client.py +0 -0
  24. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/auto.py +0 -0
  25. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/chalice/__init__.py +0 -0
  26. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/chalice/views.py +0 -0
  27. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/channels/__init__.py +0 -0
  28. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/channels/handlers/base.py +0 -0
  29. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/channels/handlers/graphql_transport_ws_handler.py +0 -0
  30. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/channels/handlers/graphql_ws_handler.py +0 -0
  31. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/channels/handlers/http_handler.py +0 -0
  32. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/channels/handlers/ws_handler.py +0 -0
  33. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/channels/router.py +0 -0
  34. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/channels/testing.py +0 -0
  35. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/__init__.py +0 -0
  36. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/app.py +0 -0
  37. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/commands/__init__.py +0 -0
  38. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/commands/codegen.py +0 -0
  39. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/commands/export_schema.py +0 -0
  40. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/commands/schema_codegen.py +0 -0
  41. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/commands/server.py +0 -0
  42. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/commands/upgrade/__init__.py +0 -0
  43. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
  44. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/commands/upgrade/_run_codemod.py +0 -0
  45. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/constants.py +0 -0
  46. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/debug_server.py +0 -0
  47. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/utils/__init__.py +0 -0
  48. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/cli/utils/load_schema.py +0 -0
  49. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/codegen/__init__.py +0 -0
  50. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/codegen/exceptions.py +0 -0
  51. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/codegen/plugins/__init__.py +0 -0
  52. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/codegen/plugins/print_operation.py +0 -0
  53. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/codegen/plugins/python.py +0 -0
  54. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/codegen/plugins/typescript.py +0 -0
  55. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/codegen/query_codegen.py +0 -0
  56. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/codegen/types.py +0 -0
  57. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/codemods/__init__.py +0 -0
  58. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/codemods/annotated_unions.py +0 -0
  59. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/custom_scalar.py +0 -0
  60. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/dataloader.py +0 -0
  61. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/directive.py +0 -0
  62. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/django/__init__.py +0 -0
  63. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/django/apps.py +0 -0
  64. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/django/context.py +0 -0
  65. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/django/test/__init__.py +0 -0
  66. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/django/test/client.py +0 -0
  67. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/django/views.py +0 -0
  68. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/enum.py +0 -0
  69. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/__init__.py +0 -0
  70. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/conflicting_arguments.py +0 -0
  71. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/duplicated_type_name.py +0 -0
  72. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/exception.py +0 -0
  73. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/exception_source.py +0 -0
  74. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/handler.py +0 -0
  75. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/invalid_argument_type.py +0 -0
  76. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/invalid_union_type.py +0 -0
  77. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/missing_arguments_annotations.py +0 -0
  78. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/missing_dependencies.py +0 -0
  79. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/missing_field_annotation.py +0 -0
  80. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/missing_return_annotation.py +0 -0
  81. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/not_a_strawberry_enum.py +0 -0
  82. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/object_is_not_a_class.py +0 -0
  83. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/object_is_not_an_enum.py +0 -0
  84. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/permission_fail_silently_requires_optional.py +0 -0
  85. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/private_strawberry_field.py +0 -0
  86. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/scalar_already_registered.py +0 -0
  87. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/syntax.py +0 -0
  88. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/unresolved_field_type.py +0 -0
  89. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/utils/__init__.py +0 -0
  90. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/exceptions/utils/source_finder.py +0 -0
  91. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/experimental/__init__.py +0 -0
  92. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/experimental/pydantic/__init__.py +0 -0
  93. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/experimental/pydantic/_compat.py +0 -0
  94. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/experimental/pydantic/conversion.py +0 -0
  95. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/experimental/pydantic/conversion_types.py +0 -0
  96. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/experimental/pydantic/error_type.py +0 -0
  97. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/experimental/pydantic/exceptions.py +0 -0
  98. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/experimental/pydantic/fields.py +0 -0
  99. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/experimental/pydantic/object_type.py +0 -0
  100. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/experimental/pydantic/utils.py +0 -0
  101. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/ext/LICENSE +0 -0
  102. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/ext/__init__.py +0 -0
  103. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/ext/dataclasses/LICENSE +0 -0
  104. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/ext/dataclasses/__init__.py +0 -0
  105. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/ext/dataclasses/dataclasses.py +0 -0
  106. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/ext/mypy_plugin.py +0 -0
  107. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/__init__.py +0 -0
  108. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/add_validation_rules.py +0 -0
  109. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/base_extension.py +0 -0
  110. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/context.py +0 -0
  111. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/directives.py +0 -0
  112. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/disable_validation.py +0 -0
  113. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/field_extension.py +0 -0
  114. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/mask_errors.py +0 -0
  115. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/max_aliases.py +0 -0
  116. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/max_tokens.py +0 -0
  117. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/parser_cache.py +0 -0
  118. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/pyinstrument.py +0 -0
  119. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/query_depth_limiter.py +0 -0
  120. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/runner.py +0 -0
  121. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/tracing/__init__.py +0 -0
  122. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/tracing/apollo.py +0 -0
  123. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/tracing/datadog.py +0 -0
  124. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/tracing/opentelemetry.py +0 -0
  125. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/tracing/sentry.py +0 -0
  126. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/tracing/utils.py +0 -0
  127. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/utils.py +0 -0
  128. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/extensions/validation_cache.py +0 -0
  129. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/fastapi/__init__.py +0 -0
  130. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/fastapi/context.py +0 -0
  131. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/fastapi/handlers/__init__.py +0 -0
  132. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/fastapi/handlers/graphql_transport_ws_handler.py +0 -0
  133. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/fastapi/handlers/graphql_ws_handler.py +0 -0
  134. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/fastapi/router.py +0 -0
  135. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/federation/__init__.py +0 -0
  136. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/federation/argument.py +0 -0
  137. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/federation/enum.py +0 -0
  138. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/federation/field.py +0 -0
  139. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/federation/mutation.py +0 -0
  140. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/federation/object_type.py +0 -0
  141. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/federation/scalar.py +0 -0
  142. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/federation/schema.py +0 -0
  143. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/federation/schema_directive.py +0 -0
  144. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/federation/schema_directives.py +0 -0
  145. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/federation/types.py +0 -0
  146. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/federation/union.py +0 -0
  147. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/field.py +0 -0
  148. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/field_extensions/__init__.py +0 -0
  149. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/field_extensions/input_mutation.py +0 -0
  150. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/file_uploads/__init__.py +0 -0
  151. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/file_uploads/scalars.py +0 -0
  152. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/file_uploads/utils.py +0 -0
  153. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/flask/__init__.py +0 -0
  154. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/flask/views.py +0 -0
  155. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/http/__init__.py +0 -0
  156. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/http/async_base_view.py +0 -0
  157. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/http/base.py +0 -0
  158. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/http/exceptions.py +0 -0
  159. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/http/ides.py +0 -0
  160. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/http/sync_base_view.py +0 -0
  161. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/http/temporal_response.py +0 -0
  162. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/http/types.py +0 -0
  163. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/http/typevars.py +0 -0
  164. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/lazy_type.py +0 -0
  165. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/litestar/__init__.py +0 -0
  166. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/litestar/controller.py +0 -0
  167. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/litestar/handlers/graphql_transport_ws_handler.py +0 -0
  168. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/litestar/handlers/graphql_ws_handler.py +0 -0
  169. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/mutation.py +0 -0
  170. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/object_type.py +0 -0
  171. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/parent.py +0 -0
  172. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/permission.py +0 -0
  173. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/printer/__init__.py +0 -0
  174. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/printer/ast_from_value.py +0 -0
  175. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/printer/printer.py +0 -0
  176. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/private.py +0 -0
  177. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/py.typed +0 -0
  178. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/quart/__init__.py +0 -0
  179. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/quart/views.py +0 -0
  180. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/relay/__init__.py +0 -0
  181. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/relay/exceptions.py +0 -0
  182. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/relay/fields.py +0 -0
  183. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/resolvers.py +0 -0
  184. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/sanic/__init__.py +0 -0
  185. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/sanic/context.py +0 -0
  186. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/sanic/utils.py +0 -0
  187. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/sanic/views.py +0 -0
  188. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/scalars.py +0 -0
  189. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/__init__.py +0 -0
  190. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/base.py +0 -0
  191. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/compat.py +0 -0
  192. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/config.py +0 -0
  193. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/exceptions.py +0 -0
  194. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/execute.py +0 -0
  195. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/name_converter.py +0 -0
  196. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/schema.py +0 -0
  197. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/schema_converter.py +0 -0
  198. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/types/__init__.py +0 -0
  199. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/types/base_scalars.py +0 -0
  200. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/types/concrete_type.py +0 -0
  201. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/types/scalar.py +0 -0
  202. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/validation_rules/__init__.py +0 -0
  203. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema/validation_rules/one_of.py +0 -0
  204. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema_codegen/__init__.py +0 -0
  205. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema_directive.py +0 -0
  206. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/schema_directives.py +0 -0
  207. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/starlite/__init__.py +0 -0
  208. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/starlite/controller.py +0 -0
  209. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/starlite/handlers/graphql_transport_ws_handler.py +0 -0
  210. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/starlite/handlers/graphql_ws_handler.py +0 -0
  211. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/static/apollo-sandbox.html +0 -0
  212. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/static/graphiql.html +0 -0
  213. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/static/pathfinder.html +0 -0
  214. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/subscriptions/__init__.py +0 -0
  215. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/subscriptions/protocols/__init__.py +0 -0
  216. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
  217. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +0 -0
  218. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +0 -0
  219. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/subscriptions/protocols/graphql_ws/__init__.py +0 -0
  220. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +0 -0
  221. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/subscriptions/protocols/graphql_ws/types.py +0 -0
  222. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/test/__init__.py +0 -0
  223. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/test/client.py +0 -0
  224. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/tools/__init__.py +0 -0
  225. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/tools/create_type.py +0 -0
  226. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/tools/merge_types.py +0 -0
  227. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/type.py +0 -0
  228. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/types/__init__.py +0 -0
  229. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/types/execution.py +0 -0
  230. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/types/fields/__init__.py +0 -0
  231. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/types/fields/resolver.py +0 -0
  232. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/types/graphql.py +0 -0
  233. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/types/info.py +0 -0
  234. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/types/nodes.py +0 -0
  235. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/types/type_resolver.py +0 -0
  236. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/types/types.py +0 -0
  237. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/union.py +0 -0
  238. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/unset.py +0 -0
  239. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/__init__.py +0 -0
  240. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/aio.py +0 -0
  241. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/await_maybe.py +0 -0
  242. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/dataclasses.py +0 -0
  243. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/debug.py +0 -0
  244. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/deprecations.py +0 -0
  245. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/graphql_lexer.py +0 -0
  246. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/importer.py +0 -0
  247. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/inspect.py +0 -0
  248. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/logging.py +0 -0
  249. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/operation.py +0 -0
  250. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/str_converters.py +0 -0
  251. {strawberry_graphql-0.233.3 → strawberry_graphql-0.234.1}/strawberry/utils/typing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: strawberry-graphql
3
- Version: 0.233.3
3
+ Version: 0.234.1
4
4
  Summary: A library for creating GraphQL APIs
5
5
  Home-page: https://strawberry.rocks/
6
6
  License: MIT
@@ -1,7 +1,7 @@
1
1
  [tool.poetry]
2
2
  name = "strawberry-graphql"
3
3
  packages = [ { include = "strawberry" } ]
4
- version = "0.233.3"
4
+ version = "0.234.1"
5
5
  description = "A library for creating GraphQL APIs"
6
6
  authors = ["Patrick Arminio <patrick.arminio@gmail.com>"]
7
7
  license = "MIT"
@@ -38,7 +38,12 @@ from strawberry.utils.aio import aenumerate, aislice, resolve_awaitable
38
38
  from strawberry.utils.inspect import in_async_context
39
39
  from strawberry.utils.typing import eval_type, is_classvar
40
40
 
41
- from .utils import from_base64, should_resolve_list_connection_edges, to_base64
41
+ from .utils import (
42
+ SliceMetadata,
43
+ from_base64,
44
+ should_resolve_list_connection_edges,
45
+ to_base64,
46
+ )
42
47
 
43
48
  if TYPE_CHECKING:
44
49
  from strawberry.scalars import ID
@@ -215,14 +220,22 @@ class GlobalID:
215
220
 
216
221
  """
217
222
  type_def = info.schema.get_type_by_name(self.type_name)
218
- assert isinstance(type_def, StrawberryObjectDefinition)
223
+ if not isinstance(type_def, StrawberryObjectDefinition):
224
+ raise GlobalIDValueError(
225
+ f"Cannot resolve. GlobalID requires a GraphQL type, "
226
+ f"received `{self.type_name}`."
227
+ )
219
228
 
220
229
  origin = (
221
230
  type_def.origin.resolve_type
222
231
  if isinstance(type_def.origin, LazyType)
223
232
  else type_def.origin
224
233
  )
225
- assert issubclass(origin, Node)
234
+ if not issubclass(origin, Node):
235
+ raise GlobalIDValueError(
236
+ f"Cannot resolve. GlobalID requires a GraphQL Node type, "
237
+ f"received `{self.type_name}`."
238
+ )
226
239
  return origin
227
240
 
228
241
  @overload
@@ -790,61 +803,13 @@ class ListConnection(Connection[NodeType]):
790
803
  https://relay.dev/graphql/connections.htm#sec-Pagination-algorithm
791
804
 
792
805
  """
793
- max_results = info.schema.config.relay_max_results
794
- start = 0
795
- end: Optional[int] = None
796
-
797
- if after:
798
- after_type, after_parsed = from_base64(after)
799
- if after_type != PREFIX:
800
- # When the base64 hash doesnt exist, the after_type seems to return
801
- # arrayconnEction instead of PREFIX. Let's raise a predictable
802
- # instead of "An unknown error occurred."
803
- raise TypeError("Argument 'after' contains a non-existing value.")
804
-
805
- start = int(after_parsed) + 1
806
- if before:
807
- before_type, before_parsed = from_base64(before)
808
- if before_type != PREFIX:
809
- # When the base64 hash doesnt exist, the after_type seems to return
810
- # arrayconnEction instead of PREFIX. Let's raise a predictable
811
- # instead of "An unknown error occurred.
812
- raise TypeError("Argument 'before' contains a non-existing value.")
813
- end = int(before_parsed)
814
-
815
- if isinstance(first, int):
816
- if first < 0:
817
- raise ValueError("Argument 'first' must be a non-negative integer.")
818
-
819
- if first > max_results:
820
- raise ValueError(
821
- f"Argument 'first' cannot be higher than {max_results}."
822
- )
823
-
824
- if end is not None:
825
- start = max(0, end - 1)
826
-
827
- end = start + first
828
- if isinstance(last, int):
829
- if last < 0:
830
- raise ValueError("Argument 'last' must be a non-negative integer.")
831
-
832
- if last > max_results:
833
- raise ValueError(
834
- f"Argument 'last' cannot be higher than {max_results}."
835
- )
836
-
837
- if end is not None:
838
- start = max(start, end - last)
839
- else:
840
- end = sys.maxsize
841
-
842
- if end is None:
843
- end = start + max_results
844
-
845
- expected = end - start if end != sys.maxsize else None
846
- # Overfetch by 1 to check if we have a next result
847
- overfetch = end + 1 if end != sys.maxsize else end
806
+ slice_metadata = SliceMetadata.from_arguments(
807
+ info,
808
+ before=before,
809
+ after=after,
810
+ first=first,
811
+ last=last,
812
+ )
848
813
 
849
814
  type_def = get_object_definition(cls)
850
815
  assert type_def
@@ -863,15 +828,17 @@ class ListConnection(Connection[NodeType]):
863
828
  try:
864
829
  iterator = cast(
865
830
  Union[AsyncIterator[NodeType], AsyncIterable[NodeType]],
866
- cast(Sequence, nodes)[start:overfetch],
831
+ cast(Sequence, nodes)[
832
+ slice_metadata.start : slice_metadata.overfetch
833
+ ],
867
834
  )
868
835
  except TypeError:
869
836
  # TODO: Why mypy isn't narrowing this based on the if above?
870
837
  assert isinstance(nodes, (AsyncIterator, AsyncIterable))
871
838
  iterator = aislice(
872
839
  nodes,
873
- start,
874
- overfetch,
840
+ slice_metadata.start,
841
+ slice_metadata.overfetch,
875
842
  )
876
843
 
877
844
  # The slice above might return an object that now is not async
@@ -880,7 +847,7 @@ class ListConnection(Connection[NodeType]):
880
847
  edges: List[Edge] = [
881
848
  edge_class.resolve_edge(
882
849
  cls.resolve_node(v, info=info, **kwargs),
883
- cursor=start + i,
850
+ cursor=slice_metadata.start + i,
884
851
  )
885
852
  async for i, v in aenumerate(iterator)
886
853
  ]
@@ -888,17 +855,20 @@ class ListConnection(Connection[NodeType]):
888
855
  edges: List[Edge] = [ # type: ignore[no-redef]
889
856
  edge_class.resolve_edge(
890
857
  cls.resolve_node(v, info=info, **kwargs),
891
- cursor=start + i,
858
+ cursor=slice_metadata.start + i,
892
859
  )
893
860
  for i, v in enumerate(iterator)
894
861
  ]
895
862
 
896
- has_previous_page = start > 0
897
- if expected is not None and len(edges) == expected + 1:
863
+ has_previous_page = slice_metadata.start > 0
864
+ if (
865
+ slice_metadata.expected is not None
866
+ and len(edges) == slice_metadata.expected + 1
867
+ ):
898
868
  # Remove the overfetched result
899
869
  edges = edges[:-1]
900
870
  has_next_page = True
901
- elif end == sys.maxsize:
871
+ elif slice_metadata.end == sys.maxsize:
902
872
  # Last was asked without any after/before
903
873
  assert last is not None
904
874
  original_len = len(edges)
@@ -923,14 +893,14 @@ class ListConnection(Connection[NodeType]):
923
893
  try:
924
894
  iterator = cast(
925
895
  Union[Iterator[NodeType], Iterable[NodeType]],
926
- cast(Sequence, nodes)[start:overfetch],
896
+ cast(Sequence, nodes)[slice_metadata.start : slice_metadata.overfetch],
927
897
  )
928
898
  except TypeError:
929
899
  assert isinstance(nodes, (Iterable, Iterator))
930
900
  iterator = itertools.islice(
931
901
  nodes,
932
- start,
933
- overfetch,
902
+ slice_metadata.start,
903
+ slice_metadata.overfetch,
934
904
  )
935
905
 
936
906
  if not should_resolve_list_connection_edges(info):
@@ -947,17 +917,20 @@ class ListConnection(Connection[NodeType]):
947
917
  edges = [
948
918
  edge_class.resolve_edge(
949
919
  cls.resolve_node(v, info=info, **kwargs),
950
- cursor=start + i,
920
+ cursor=slice_metadata.start + i,
951
921
  )
952
922
  for i, v in enumerate(iterator)
953
923
  ]
954
924
 
955
- has_previous_page = start > 0
956
- if expected is not None and len(edges) == expected + 1:
925
+ has_previous_page = slice_metadata.start > 0
926
+ if (
927
+ slice_metadata.expected is not None
928
+ and len(edges) == slice_metadata.expected + 1
929
+ ):
957
930
  # Remove the overfetched result
958
931
  edges = edges[:-1]
959
932
  has_next_page = True
960
- elif end == sys.maxsize:
933
+ elif slice_metadata.end == sys.maxsize:
961
934
  # Last was asked without any after/before
962
935
  assert last is not None
963
936
  original_len = len(edges)
@@ -1,11 +1,17 @@
1
+ from __future__ import annotations
2
+
1
3
  import base64
2
- from typing import Any, Tuple, Union
3
- from typing_extensions import assert_never
4
+ import dataclasses
5
+ import sys
6
+ from typing import TYPE_CHECKING, Any, Tuple, Union
7
+ from typing_extensions import Self, assert_never
4
8
 
5
- from strawberry.types.info import Info
6
9
  from strawberry.types.nodes import InlineFragment, Selection
7
10
  from strawberry.types.types import StrawberryObjectDefinition
8
11
 
12
+ if TYPE_CHECKING:
13
+ from strawberry.types.info import Info
14
+
9
15
 
10
16
  def from_base64(value: str) -> Tuple[str, str]:
11
17
  """Parse the base64 encoded relay value.
@@ -102,3 +108,82 @@ def should_resolve_list_connection_edges(info: Info) -> bool:
102
108
  if _check_selection(selection):
103
109
  return True
104
110
  return False
111
+
112
+
113
+ @dataclasses.dataclass
114
+ class SliceMetadata:
115
+ start: int
116
+ end: int
117
+ expected: int | None
118
+
119
+ @property
120
+ def overfetch(self) -> int:
121
+ # Overfetch by 1 to check if we have a next result
122
+ return self.end + 1 if self.end != sys.maxsize else self.end
123
+
124
+ @classmethod
125
+ def from_arguments(
126
+ cls,
127
+ info: Info,
128
+ *,
129
+ before: str | None = None,
130
+ after: str | None = None,
131
+ first: int | None = None,
132
+ last: int | None = None,
133
+ ) -> Self:
134
+ """Get the slice metadata to use on ListConnection."""
135
+ from strawberry.relay.types import PREFIX
136
+
137
+ max_results = info.schema.config.relay_max_results
138
+ start = 0
139
+ end: int | None = None
140
+
141
+ if after:
142
+ after_type, after_parsed = from_base64(after)
143
+ if after_type != PREFIX:
144
+ raise TypeError("Argument 'after' contains a non-existing value.")
145
+
146
+ start = int(after_parsed) + 1
147
+ if before:
148
+ before_type, before_parsed = from_base64(before)
149
+ if before_type != PREFIX:
150
+ raise TypeError("Argument 'before' contains a non-existing value.")
151
+ end = int(before_parsed)
152
+
153
+ if isinstance(first, int):
154
+ if first < 0:
155
+ raise ValueError("Argument 'first' must be a non-negative integer.")
156
+
157
+ if first > max_results:
158
+ raise ValueError(
159
+ f"Argument 'first' cannot be higher than {max_results}."
160
+ )
161
+
162
+ if end is not None:
163
+ start = max(0, end - 1)
164
+
165
+ end = start + first
166
+ if isinstance(last, int):
167
+ if last < 0:
168
+ raise ValueError("Argument 'last' must be a non-negative integer.")
169
+
170
+ if last > max_results:
171
+ raise ValueError(
172
+ f"Argument 'last' cannot be higher than {max_results}."
173
+ )
174
+
175
+ if end is not None:
176
+ start = max(start, end - last)
177
+ else:
178
+ end = sys.maxsize
179
+
180
+ if end is None:
181
+ end = start + max_results
182
+
183
+ expected = end - start if end != sys.maxsize else None
184
+
185
+ return cls(
186
+ start=start,
187
+ end=end,
188
+ expected=expected,
189
+ )