strawberry-graphql 0.267.0.dev1746643548__tar.gz → 0.269.0.dev1746905409__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 (238) hide show
  1. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/PKG-INFO +1 -1
  2. strawberry_graphql-0.269.0.dev1746905409/pyproject.toml +403 -0
  3. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/parent.py +21 -2
  4. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/scalars.py +3 -1
  5. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/compat.py +2 -1
  6. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/config.py +1 -0
  7. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/schema.py +6 -13
  8. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/schema_converter.py +49 -7
  9. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/types/scalar.py +2 -16
  10. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/arguments.py +2 -2
  11. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/fields/resolver.py +12 -5
  12. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/typing.py +18 -0
  13. strawberry_graphql-0.267.0.dev1746643548/pyproject.toml +0 -398
  14. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/LICENSE +0 -0
  15. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/README.md +0 -0
  16. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/__init__.py +0 -0
  17. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/__main__.py +0 -0
  18. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/aiohttp/__init__.py +0 -0
  19. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/aiohttp/test/__init__.py +0 -0
  20. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/aiohttp/test/client.py +0 -0
  21. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/aiohttp/views.py +0 -0
  22. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/annotation.py +0 -0
  23. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/asgi/__init__.py +0 -0
  24. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/asgi/test/__init__.py +0 -0
  25. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/asgi/test/client.py +0 -0
  26. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/chalice/__init__.py +0 -0
  27. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/chalice/views.py +0 -0
  28. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/channels/__init__.py +0 -0
  29. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/channels/handlers/__init__.py +0 -0
  30. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/channels/handlers/base.py +0 -0
  31. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/channels/handlers/http_handler.py +0 -0
  32. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/channels/handlers/ws_handler.py +0 -0
  33. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/channels/router.py +0 -0
  34. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/channels/testing.py +0 -0
  35. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/__init__.py +0 -0
  36. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/app.py +0 -0
  37. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/commands/__init__.py +0 -0
  38. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/commands/codegen.py +0 -0
  39. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/commands/export_schema.py +0 -0
  40. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/commands/schema_codegen.py +0 -0
  41. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/commands/server.py +0 -0
  42. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/commands/upgrade/__init__.py +0 -0
  43. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
  44. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/commands/upgrade/_run_codemod.py +0 -0
  45. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/constants.py +0 -0
  46. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/debug_server.py +0 -0
  47. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/utils/__init__.py +0 -0
  48. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/cli/utils/load_schema.py +0 -0
  49. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/codegen/__init__.py +0 -0
  50. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/codegen/exceptions.py +0 -0
  51. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/codegen/plugins/__init__.py +0 -0
  52. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/codegen/plugins/print_operation.py +0 -0
  53. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/codegen/plugins/python.py +0 -0
  54. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/codegen/plugins/typescript.py +0 -0
  55. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/codegen/query_codegen.py +0 -0
  56. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/codegen/types.py +0 -0
  57. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/codemods/__init__.py +0 -0
  58. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/codemods/annotated_unions.py +0 -0
  59. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/codemods/update_imports.py +0 -0
  60. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/dataloader.py +0 -0
  61. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/directive.py +0 -0
  62. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/django/__init__.py +0 -0
  63. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/django/apps.py +0 -0
  64. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/django/context.py +0 -0
  65. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/django/test/__init__.py +0 -0
  66. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/django/test/client.py +0 -0
  67. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/django/views.py +0 -0
  68. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/__init__.py +0 -0
  69. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/conflicting_arguments.py +0 -0
  70. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/duplicated_type_name.py +0 -0
  71. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/exception.py +0 -0
  72. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/exception_source.py +0 -0
  73. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/handler.py +0 -0
  74. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/invalid_argument_type.py +0 -0
  75. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/invalid_union_type.py +0 -0
  76. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/missing_arguments_annotations.py +0 -0
  77. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/missing_dependencies.py +0 -0
  78. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/missing_field_annotation.py +0 -0
  79. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/missing_return_annotation.py +0 -0
  80. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/object_is_not_a_class.py +0 -0
  81. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/object_is_not_an_enum.py +0 -0
  82. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/permission_fail_silently_requires_optional.py +0 -0
  83. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/private_strawberry_field.py +0 -0
  84. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/scalar_already_registered.py +0 -0
  85. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/syntax.py +0 -0
  86. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/unresolved_field_type.py +0 -0
  87. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/utils/__init__.py +0 -0
  88. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/exceptions/utils/source_finder.py +0 -0
  89. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/experimental/__init__.py +0 -0
  90. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/experimental/pydantic/__init__.py +0 -0
  91. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/experimental/pydantic/_compat.py +0 -0
  92. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/experimental/pydantic/conversion.py +0 -0
  93. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/experimental/pydantic/conversion_types.py +0 -0
  94. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/experimental/pydantic/error_type.py +0 -0
  95. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/experimental/pydantic/exceptions.py +0 -0
  96. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/experimental/pydantic/fields.py +0 -0
  97. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/experimental/pydantic/object_type.py +0 -0
  98. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/experimental/pydantic/utils.py +0 -0
  99. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/ext/LICENSE +0 -0
  100. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/ext/__init__.py +0 -0
  101. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/ext/dataclasses/LICENSE +0 -0
  102. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/ext/dataclasses/__init__.py +0 -0
  103. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/ext/dataclasses/dataclasses.py +0 -0
  104. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/ext/mypy_plugin.py +0 -0
  105. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/__init__.py +0 -0
  106. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/add_validation_rules.py +0 -0
  107. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/base_extension.py +0 -0
  108. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/context.py +0 -0
  109. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/directives.py +0 -0
  110. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/disable_validation.py +0 -0
  111. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/field_extension.py +0 -0
  112. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/mask_errors.py +0 -0
  113. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/max_aliases.py +0 -0
  114. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/max_tokens.py +0 -0
  115. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/parser_cache.py +0 -0
  116. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/pyinstrument.py +0 -0
  117. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/query_depth_limiter.py +0 -0
  118. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/runner.py +0 -0
  119. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/tracing/__init__.py +0 -0
  120. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/tracing/apollo.py +0 -0
  121. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/tracing/datadog.py +0 -0
  122. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/tracing/opentelemetry.py +0 -0
  123. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/tracing/utils.py +0 -0
  124. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/utils.py +0 -0
  125. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/extensions/validation_cache.py +0 -0
  126. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/fastapi/__init__.py +0 -0
  127. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/fastapi/context.py +0 -0
  128. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/fastapi/router.py +0 -0
  129. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/federation/__init__.py +0 -0
  130. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/federation/argument.py +0 -0
  131. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/federation/enum.py +0 -0
  132. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/federation/field.py +0 -0
  133. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/federation/mutation.py +0 -0
  134. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/federation/object_type.py +0 -0
  135. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/federation/scalar.py +0 -0
  136. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/federation/schema.py +0 -0
  137. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/federation/schema_directive.py +0 -0
  138. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/federation/schema_directives.py +0 -0
  139. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/federation/types.py +0 -0
  140. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/federation/union.py +0 -0
  141. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/field_extensions/__init__.py +0 -0
  142. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/field_extensions/input_mutation.py +0 -0
  143. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/file_uploads/__init__.py +0 -0
  144. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/file_uploads/scalars.py +0 -0
  145. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/file_uploads/utils.py +0 -0
  146. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/flask/__init__.py +0 -0
  147. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/flask/views.py +0 -0
  148. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/http/__init__.py +0 -0
  149. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/http/async_base_view.py +0 -0
  150. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/http/base.py +0 -0
  151. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/http/exceptions.py +0 -0
  152. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/http/ides.py +0 -0
  153. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/http/parse_content_type.py +0 -0
  154. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/http/sync_base_view.py +0 -0
  155. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/http/temporal_response.py +0 -0
  156. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/http/types.py +0 -0
  157. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/http/typevars.py +0 -0
  158. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/litestar/__init__.py +0 -0
  159. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/litestar/controller.py +0 -0
  160. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/permission.py +0 -0
  161. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/printer/__init__.py +0 -0
  162. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/printer/ast_from_value.py +0 -0
  163. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/printer/printer.py +0 -0
  164. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/py.typed +0 -0
  165. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/quart/__init__.py +0 -0
  166. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/quart/views.py +0 -0
  167. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/relay/__init__.py +0 -0
  168. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/relay/exceptions.py +0 -0
  169. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/relay/fields.py +0 -0
  170. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/relay/types.py +0 -0
  171. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/relay/utils.py +0 -0
  172. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/resolvers.py +0 -0
  173. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/sanic/__init__.py +0 -0
  174. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/sanic/context.py +0 -0
  175. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/sanic/utils.py +0 -0
  176. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/sanic/views.py +0 -0
  177. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/__init__.py +0 -0
  178. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/_graphql_core.py +0 -0
  179. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/base.py +0 -0
  180. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/exceptions.py +0 -0
  181. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/name_converter.py +0 -0
  182. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/types/__init__.py +0 -0
  183. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/types/base_scalars.py +0 -0
  184. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/types/concrete_type.py +0 -0
  185. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/validation_rules/__init__.py +0 -0
  186. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema/validation_rules/one_of.py +0 -0
  187. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema_codegen/__init__.py +0 -0
  188. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema_directive.py +0 -0
  189. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/schema_directives.py +0 -0
  190. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/static/apollo-sandbox.html +0 -0
  191. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/static/graphiql.html +0 -0
  192. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/static/pathfinder.html +0 -0
  193. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/streamable.py +0 -0
  194. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/subscriptions/__init__.py +0 -0
  195. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/subscriptions/protocols/__init__.py +0 -0
  196. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
  197. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +0 -0
  198. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +0 -0
  199. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/subscriptions/protocols/graphql_ws/__init__.py +0 -0
  200. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +0 -0
  201. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/subscriptions/protocols/graphql_ws/types.py +0 -0
  202. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/test/__init__.py +0 -0
  203. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/test/client.py +0 -0
  204. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/tools/__init__.py +0 -0
  205. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/tools/create_type.py +0 -0
  206. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/tools/merge_types.py +0 -0
  207. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/__init__.py +0 -0
  208. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/auto.py +0 -0
  209. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/base.py +0 -0
  210. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/cast.py +0 -0
  211. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/enum.py +0 -0
  212. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/execution.py +0 -0
  213. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/field.py +0 -0
  214. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/fields/__init__.py +0 -0
  215. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/graphql.py +0 -0
  216. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/info.py +0 -0
  217. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/lazy_type.py +0 -0
  218. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/maybe.py +0 -0
  219. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/mutation.py +0 -0
  220. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/nodes.py +0 -0
  221. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/object_type.py +0 -0
  222. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/private.py +0 -0
  223. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/scalar.py +0 -0
  224. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/type_resolver.py +0 -0
  225. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/union.py +0 -0
  226. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/types/unset.py +0 -0
  227. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/__init__.py +0 -0
  228. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/aio.py +0 -0
  229. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/await_maybe.py +0 -0
  230. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/dataclasses.py +0 -0
  231. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/debug.py +0 -0
  232. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/deprecations.py +0 -0
  233. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/graphql_lexer.py +0 -0
  234. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/importer.py +0 -0
  235. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/inspect.py +0 -0
  236. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/logging.py +0 -0
  237. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/operation.py +0 -0
  238. {strawberry_graphql-0.267.0.dev1746643548 → strawberry_graphql-0.269.0.dev1746905409}/strawberry/utils/str_converters.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: strawberry-graphql
3
- Version: 0.267.0.dev1746643548
3
+ Version: 0.269.0.dev1746905409
4
4
  Summary: A library for creating GraphQL APIs
5
5
  License: MIT
6
6
  Keywords: graphql,api,rest,starlette,async
@@ -0,0 +1,403 @@
1
+ [tool.poetry]
2
+ name = "strawberry-graphql"
3
+ version = "0.269.0.dev.1746905409"
4
+ packages = [{ include = "strawberry" }]
5
+ description = "A library for creating GraphQL APIs"
6
+ authors = ["Patrick Arminio <patrick.arminio@gmail.com>"]
7
+ license = "MIT"
8
+ readme = "README.md"
9
+ keywords = ["graphql", "api", "rest", "starlette", "async"]
10
+ homepage = "https://strawberry.rocks/"
11
+ repository = "https://github.com/strawberry-graphql/strawberry"
12
+ documentation = "https://strawberry.rocks/"
13
+ classifiers = [
14
+ "Development Status :: 5 - Production/Stable",
15
+ "Intended Audience :: Developers",
16
+ "Topic :: Software Development :: Libraries",
17
+ "Topic :: Software Development :: Libraries :: Python Modules",
18
+ "License :: OSI Approved :: MIT License",
19
+ ]
20
+ include = ["strawberry/py.typed"]
21
+
22
+ [tool.poetry.urls]
23
+ "Changelog" = "https://strawberry.rocks/changelog"
24
+ "Discord" = "https://discord.com/invite/3uQ2PaY"
25
+ "Twitter" = "https://twitter.com/strawberry_gql"
26
+ "Mastodon" = "https://farbun.social/@strawberry"
27
+ "Sponsor on GitHub" = "https://github.com/sponsors/strawberry-graphql"
28
+ "Sponsor on Open Collective" = "https://opencollective.com/strawberry-graphql"
29
+
30
+ [tool.poetry.dependencies]
31
+ python = ">=3.9"
32
+ graphql-core = { version = ">=3.2.0,<3.4.0", python = ">=3.9,<4.0" }
33
+ typing-extensions = ">=4.5.0"
34
+ python-dateutil = "^2.7.0"
35
+ packaging = ">=23"
36
+ starlette = { version = ">=0.18.0", optional = true }
37
+ typer = { version = ">=0.7.0", optional = true }
38
+ pygments = { version = "^2.3", optional = true }
39
+ uvicorn = { version = ">=0.11.6", optional = true }
40
+ Django = { version = ">=3.2", optional = true }
41
+ asgiref = { version = "^3.2", optional = true }
42
+ flask = { version = ">=1.1", optional = true }
43
+ quart = { version = ">=0.19.3", optional = true }
44
+ opentelemetry-api = { version = "<2", optional = true }
45
+ opentelemetry-sdk = { version = "<2", optional = true }
46
+ chalice = { version = "^1.22", optional = true }
47
+ pydantic = { version = ">1.6.1", optional = true }
48
+ python-multipart = { version = ">=0.0.7", optional = true }
49
+ sanic = { version = ">=20.12.2", optional = true }
50
+ aiohttp = { version = "^3.7.4.post0", optional = true }
51
+ fastapi = { version = ">=0.65.2", optional = true }
52
+ litestar = { version = ">=2", python = ">=3.10,<4.0", optional = true }
53
+ channels = { version = ">=3.0.5", optional = true }
54
+ libcst = { version = ">=0.4.7", optional = true }
55
+ rich = { version = ">=12.0.0", optional = true }
56
+ pyinstrument = { version = ">=4.0.0", optional = true }
57
+
58
+ [tool.poetry.group.dev.dependencies]
59
+ ruff = "^0.11.4"
60
+ asgiref = "^3.2"
61
+ email-validator = { version = ">=1.1.3,<3.0.0", optional = false }
62
+ freezegun = "^1.2.1"
63
+ libcst = { version = ">=1.0.0", optional = false }
64
+ MarkupSafe = "2.1.3"
65
+ nox = "^2024.4.15"
66
+ nox-poetry = "^1.0.3"
67
+ opentelemetry-api = "<2"
68
+ opentelemetry-sdk = "<2"
69
+ pygments = "^2.3"
70
+ pyinstrument = { version = ">=4.0.0", optional = false }
71
+ pytest = "^7.2"
72
+ pytest-asyncio = ">=0.20.3"
73
+ pytest-codspeed = { version = ">=3.0.0", python = ">=3.9" }
74
+ pytest-cov = "^4.0.0"
75
+ pytest-emoji = "^0.2.0"
76
+ pytest-mock = "^3.10"
77
+ pytest-snapshot = "^0.9.0"
78
+ pytest-xdist = { extras = ["psutil"], version = "^3.1.0" }
79
+ python-multipart = ">=0.0.7"
80
+ rich = { version = ">=12.5.1", optional = false }
81
+ sanic-testing = ">=22.9,<24.0"
82
+ typer = { version = ">=0.7.0", optional = false }
83
+ types-aiofiles = "^24.1.0.20250326"
84
+ types-certifi = "^2021.10.8"
85
+ types-chardet = "^5.0.4"
86
+ types-freezegun = "^1.1.9"
87
+ types-python-dateutil = "^2.8.19"
88
+ types-toml = "^0.10.8"
89
+ types-typed-ast = "^1.5.8"
90
+ types-ujson = "^5.10.0.20250326"
91
+ types-protobuf = "^5.29.1.20250403"
92
+ poetry-plugin-export = { version = "^1.6.0", python = "<4.0", optional = false }
93
+ # another bug in poetry
94
+ urllib3 = "<2"
95
+ graphlib_backport = { version = "*", python = "<3.9", optional = false }
96
+ inline-snapshot = "^0.10.1"
97
+ types-deprecated = "^1.2.15.20241117"
98
+ types-six = "^1.17.0.20250403"
99
+ types-pyyaml = "^6.0.12.20240917"
100
+ mypy = "^1.15.0"
101
+ codeflash = ">=0.9.2"
102
+
103
+ [tool.poetry.group.integrations]
104
+ optional = true
105
+
106
+ [tool.poetry.group.integrations.dependencies]
107
+ aiohttp = "^3.7.4.post0"
108
+ chalice = { version = "^1.22" }
109
+ channels = ">=3.0.5,<5.0.0"
110
+ Django = ">=3.2"
111
+ fastapi = { version = ">=0.65.0", optional = false }
112
+ flask = ">=1.1"
113
+ quart = ">=0.19.3"
114
+ pydantic = { version = ">=2.0", optional = false }
115
+ pytest-aiohttp = "^1.0.3"
116
+ pytest-django = { version = "^4.5" }
117
+ sanic = ">=20.12.2"
118
+ starlette = ">=0.13.6"
119
+ litestar = { version = ">=2", python = ">=3.10,<4.0", optional = false }
120
+ uvicorn = ">=0.11.6"
121
+ daphne = "^4.0.0"
122
+
123
+
124
+ [tool.poetry.extras]
125
+ aiohttp = ["aiohttp"]
126
+ asgi = ["starlette", "python-multipart"]
127
+ debug = ["rich", "libcst"]
128
+ debug-server = [
129
+ "starlette",
130
+ "uvicorn",
131
+ "python-multipart",
132
+ "typer",
133
+ "pygments",
134
+ "rich",
135
+ "libcst",
136
+ ]
137
+ django = ["Django", "pytest-django", "asgiref"]
138
+ channels = ["channels", "asgiref"]
139
+ flask = ["flask"]
140
+ quart = ["quart"]
141
+ opentelemetry = ["opentelemetry-api", "opentelemetry-sdk"]
142
+ pydantic = ["pydantic"]
143
+ sanic = ["sanic"]
144
+ fastapi = ["fastapi", "python-multipart"]
145
+ chalice = ["chalice"]
146
+ cli = ["typer", "pygments", "rich", "libcst", "graphlib_backport"]
147
+ litestar = ["litestar"]
148
+ pyinstrument = ["pyinstrument"]
149
+
150
+ [tool.poetry.scripts]
151
+ strawberry = "strawberry.cli:run"
152
+
153
+
154
+ [tool.pytest.ini_options]
155
+ addopts = "--emoji"
156
+ DJANGO_SETTINGS_MODULE = "tests.django.django_settings"
157
+ testpaths = ["tests/"]
158
+ markers = [
159
+ "aiohttp",
160
+ "asgi",
161
+ "chalice",
162
+ "channels",
163
+ "django_db",
164
+ "django",
165
+ "fastapi",
166
+ "flaky",
167
+ "flask",
168
+ "litestar",
169
+ "pydantic",
170
+ "quart",
171
+ "relay",
172
+ "sanic",
173
+ "starlette",
174
+ ]
175
+ asyncio_mode = "auto"
176
+ filterwarnings = [
177
+ "ignore::DeprecationWarning:strawberry.*.resolver",
178
+ "ignore:LazyType is deprecated:DeprecationWarning",
179
+ "ignore::DeprecationWarning:ddtrace.internal",
180
+ "ignore::DeprecationWarning:django.utils.encoding",
181
+ # ignoring the text instead of the whole warning because we'd
182
+ # get an error when django is not installed
183
+ "ignore:The default value of USE_TZ",
184
+ "ignore::DeprecationWarning:pydantic_openapi_schema.*",
185
+ "ignore::DeprecationWarning:graphql.*",
186
+ "ignore::DeprecationWarning:websockets.*",
187
+ "ignore::DeprecationWarning:pydantic.*",
188
+ "ignore::UserWarning:pydantic.*",
189
+ "ignore::DeprecationWarning:pkg_resources.*",
190
+ ]
191
+
192
+
193
+ [tool.autopub]
194
+ git-username = "Botberry"
195
+ git-email = "bot@strawberry.rocks"
196
+ project-name = "🍓"
197
+ append-github-contributor = true
198
+
199
+ [tool.pyright]
200
+ # include = ["strawberry"]
201
+ exclude = ["**/__pycache__", "**/.venv", "**/.pytest_cache", "**/.nox"]
202
+ reportMissingImports = true
203
+ reportMissingTypeStubs = false
204
+ pythonVersion = "3.9"
205
+ stubPath = ""
206
+
207
+ [tool.ruff]
208
+ line-length = 88
209
+ target-version = "py39"
210
+ fix = true
211
+ exclude = [
212
+ ".bzr",
213
+ ".direnv",
214
+ ".eggs",
215
+ ".git",
216
+ ".hg",
217
+ ".mypy_cache",
218
+ ".nox",
219
+ ".pants.d",
220
+ ".ruff_cache",
221
+ ".svn",
222
+ ".tox",
223
+ ".venv",
224
+ "__pypackages__",
225
+ "_build",
226
+ "buck-out",
227
+ "build",
228
+ "dist",
229
+ "node_modules",
230
+ "venv",
231
+ "tests/*/snapshots",
232
+ ]
233
+ src = ["strawberry", "tests"]
234
+
235
+ [tool.ruff.lint]
236
+ select = ["ALL"]
237
+ ignore = [
238
+ # https://github.com/astral-sh/ruff/pull/4427
239
+ # equivalent to keep-runtime-typing. We might want to enable those
240
+ # after we drop support for Python 3.9
241
+ "UP006",
242
+ "UP007",
243
+
244
+ # we use asserts in tests and to hint mypy
245
+ "S101",
246
+
247
+ # Allow "Any" for annotations. We have too many Any annotations and some
248
+ # are legit. Maybe reconsider in the future, except for tests?
249
+ "ANN401",
250
+
251
+ # Allow our exceptions to have names that don't end in "Error". Maybe refactor
252
+ # in the future? But that would be a breaking change.
253
+ "N818",
254
+
255
+ # Allow "type: ignore" without rule code. Because we support both mypy and
256
+ # pyright, and they have different codes for the same error, we can't properly
257
+ # fix those issues.
258
+ "PGH003",
259
+
260
+ # Variable `T` in function should be lowercase
261
+ # this seems a potential bug or opportunity for improvement in ruff
262
+ "N806",
263
+
264
+ # shadowing builtins
265
+ "A001",
266
+ "A002",
267
+ "A003",
268
+ "A005",
269
+
270
+ # Unused arguments
271
+ "ARG001",
272
+ "ARG002",
273
+ "ARG003",
274
+ "ARG004",
275
+ "ARG005",
276
+
277
+ # Boolean positional arguments
278
+ "FBT001",
279
+ "FBT002",
280
+ "FBT003",
281
+
282
+ # Too many arguments/branches/return statements
283
+ "PLR0913",
284
+ "PLR0912",
285
+ "PLR0911",
286
+
287
+ # Do not force adding _co to covariant typevars
288
+ "PLC0105",
289
+
290
+ # Allow private access to attributes
291
+ "SLF001",
292
+
293
+ # code complexity
294
+ "C901",
295
+
296
+ # Allow todo/fixme/etc comments
297
+ "TD002",
298
+ "TD003",
299
+ "FIX001",
300
+ "FIX002",
301
+
302
+ # We don't want to add "from __future__ mport annotations" everywhere
303
+ "FA100",
304
+
305
+ # Docstrings, maybe to enable later
306
+ "D100",
307
+ "D101",
308
+ "D102",
309
+ "D103",
310
+ "D104",
311
+ "D105",
312
+ "D106",
313
+ "D107",
314
+ "D412",
315
+
316
+ # Allow to define exceptions text in the exception body
317
+ "TRY003",
318
+ "EM101",
319
+ "EM102",
320
+ "EM103",
321
+
322
+ # Allow comparisons with magic numbers
323
+ "PLR2004",
324
+
325
+ # Allow methods to use lru_cache
326
+ "B019",
327
+
328
+ # Don't force if branches to be converted to "or"
329
+ "SIM114",
330
+
331
+ # ruff formatter recommends to disable those, as they conflict with it
332
+ # we don't need to ever enable those.
333
+ "COM812",
334
+ "COM819",
335
+ "D206",
336
+ "E111",
337
+ "E114",
338
+ "E117",
339
+ "E501",
340
+ "ISC001",
341
+ "Q000",
342
+ "Q001",
343
+ "Q002",
344
+ "Q003",
345
+ "W191",
346
+ ]
347
+
348
+ [tool.ruff.lint.per-file-ignores]
349
+ ".github/*" = ["INP001"]
350
+ "federation-compatibility/*" = ["INP001"]
351
+ "strawberry/cli/*" = ["B008"]
352
+ "strawberry/extensions/tracing/__init__.py" = ["TCH004"]
353
+ "strawberry/fastapi/*" = ["B008"]
354
+ "strawberry/annotation.py" = ["RET505"]
355
+ "tests/*" = [
356
+ "ANN001",
357
+ "ANN201",
358
+ "ANN202",
359
+ "ANN204",
360
+ "B008",
361
+ "B018",
362
+ "D",
363
+ "DTZ001",
364
+ "DTZ005",
365
+ "FA102",
366
+ "N805",
367
+ "PLC1901",
368
+ "PLR2004",
369
+ "PLW0603",
370
+ "PT011",
371
+ "RUF012",
372
+ "S105",
373
+ "S106",
374
+ "S603",
375
+ "S607",
376
+ "TCH001",
377
+ "TCH002",
378
+ "TCH003",
379
+ "TRY002",
380
+ ]
381
+
382
+ [tool.ruff.lint.isort]
383
+ known-first-party = ["strawberry"]
384
+ known-third-party = ["django", "graphql"]
385
+ extra-standard-library = ["typing_extensions"]
386
+
387
+ [tool.ruff.format]
388
+ exclude = ['tests/codegen/snapshots/', 'tests/cli/snapshots/']
389
+
390
+ [tool.ruff.lint.pydocstyle]
391
+ convention = "google"
392
+
393
+ [tool.codeflash]
394
+ # All paths are relative to this pyproject.toml's directory.
395
+ module-root = "strawberry"
396
+ tests-root = "tests"
397
+ test-framework = "pytest"
398
+ ignore-paths = []
399
+ formatter-cmds = ["ruff check --exit-zero --fix $file", "ruff format $file"]
400
+
401
+ [build-system]
402
+ requires = ["poetry-core>=1.6"]
403
+ build-backend = "poetry.core.masonry.api"
@@ -1,4 +1,7 @@
1
- from typing import Annotated, TypeVar
1
+ import re
2
+ from typing import Annotated, Any, ForwardRef, TypeVar
3
+
4
+ _parent_re = re.compile(r"^(?:strawberry\.)?Parent\[(.*)\]$")
2
5
 
3
6
 
4
7
  class StrawberryParent: ...
@@ -40,4 +43,20 @@ class Query:
40
43
  ```
41
44
  """
42
45
 
43
- __all__ = ["Parent"]
46
+
47
+ def resolve_parent_forward_arg(annotation: Any) -> Any:
48
+ if isinstance(annotation, str):
49
+ str_annotation = annotation
50
+ elif isinstance(annotation, ForwardRef):
51
+ str_annotation = annotation.__forward_arg__
52
+ else:
53
+ # If neither, return the annotation as is
54
+ return annotation
55
+
56
+ if parent_match := _parent_re.match(str_annotation):
57
+ annotation = Parent[ForwardRef(parent_match.group(1))] # type: ignore[misc]
58
+
59
+ return annotation
60
+
61
+
62
+ __all__ = ["Parent", "StrawberryParent", "resolve_parent_forward_arg"]
@@ -6,6 +6,8 @@ from typing import TYPE_CHECKING, Any, NewType, Union
6
6
  from strawberry.types.scalar import scalar
7
7
 
8
8
  if TYPE_CHECKING:
9
+ from collections.abc import Mapping
10
+
9
11
  from strawberry.types.scalar import ScalarDefinition, ScalarWrapper
10
12
 
11
13
 
@@ -57,7 +59,7 @@ Base64 = scalar(
57
59
 
58
60
  def is_scalar(
59
61
  annotation: Any,
60
- scalar_registry: dict[object, Union[ScalarWrapper, ScalarDefinition]],
62
+ scalar_registry: Mapping[object, Union[ScalarWrapper, ScalarDefinition]],
61
63
  ) -> bool:
62
64
  if annotation in scalar_registry:
63
65
  return True
@@ -10,6 +10,7 @@ from strawberry.types.base import StrawberryType, has_object_definition
10
10
  # TYPE_CHECKING is enabled.
11
11
 
12
12
  if TYPE_CHECKING:
13
+ from collections.abc import Mapping
13
14
  from typing_extensions import TypeGuard
14
15
 
15
16
  from strawberry.types.scalar import ScalarDefinition, ScalarWrapper
@@ -29,7 +30,7 @@ def is_interface_type(type_: Union[StrawberryType, type]) -> TypeGuard[type]:
29
30
 
30
31
  def is_scalar(
31
32
  type_: Union[StrawberryType, type],
32
- scalar_registry: dict[object, Union[ScalarWrapper, ScalarDefinition]],
33
+ scalar_registry: Mapping[object, Union[ScalarWrapper, ScalarDefinition]],
33
34
  ) -> TypeGuard[type]:
34
35
  return is_strawberry_scalar(type_, scalar_registry)
35
36
 
@@ -14,6 +14,7 @@ class StrawberryConfig:
14
14
  name_converter: NameConverter = field(default_factory=NameConverter)
15
15
  default_resolver: Callable[[Any, str], object] = getattr
16
16
  relay_max_results: int = 100
17
+ relay_use_legacy_global_id: bool = False
17
18
  disable_field_suggestions: bool = False
18
19
  info_class: type[Info] = Info
19
20
  enable_experimental_incremental_execution: bool = False
@@ -44,7 +44,6 @@ from strawberry.extensions.directives import (
44
44
  from strawberry.extensions.runner import SchemaExtensionsRunner
45
45
  from strawberry.printer import print_schema
46
46
  from strawberry.schema.schema_converter import GraphQLCoreConverter
47
- from strawberry.schema.types.scalar import DEFAULT_SCALAR_REGISTRY
48
47
  from strawberry.schema.validation_rules.one_of import OneOfInputValidationRule
49
48
  from strawberry.types.base import (
50
49
  StrawberryObjectDefinition,
@@ -76,7 +75,7 @@ from .config import StrawberryConfig
76
75
  from .exceptions import InvalidOperationTypeError
77
76
 
78
77
  if TYPE_CHECKING:
79
- from collections.abc import Iterable
78
+ from collections.abc import Iterable, Mapping
80
79
  from typing_extensions import TypeAlias
81
80
 
82
81
  from graphql import ExecutionContext as GraphQLExecutionContext
@@ -159,7 +158,7 @@ class Schema(BaseSchema):
159
158
  execution_context_class: Optional[type[GraphQLExecutionContext]] = None,
160
159
  config: Optional[StrawberryConfig] = None,
161
160
  scalar_overrides: Optional[
162
- dict[object, Union[type, ScalarWrapper, ScalarDefinition]],
161
+ Mapping[object, Union[type, ScalarWrapper, ScalarDefinition]],
163
162
  ] = None,
164
163
  schema_directives: Iterable[object] = (),
165
164
  ) -> None:
@@ -207,18 +206,12 @@ class Schema(BaseSchema):
207
206
  self.execution_context_class = execution_context_class
208
207
  self.config = config or StrawberryConfig()
209
208
 
210
- SCALAR_OVERRIDES_DICT_TYPE = dict[
211
- object, Union["ScalarWrapper", "ScalarDefinition"]
212
- ]
213
-
214
- scalar_registry: SCALAR_OVERRIDES_DICT_TYPE = {**DEFAULT_SCALAR_REGISTRY}
215
- if scalar_overrides:
216
- # TODO: check that the overrides are valid
217
- scalar_registry.update(cast("SCALAR_OVERRIDES_DICT_TYPE", scalar_overrides))
218
-
219
209
  self.schema_converter = GraphQLCoreConverter(
220
- self.config, scalar_registry, self.get_fields
210
+ self.config,
211
+ scalar_overrides=scalar_overrides or {}, # type: ignore
212
+ get_fields=self.get_fields,
221
213
  )
214
+
222
215
  self.directives = directives
223
216
  self.schema_directives = list(schema_directives)
224
217
 
@@ -23,6 +23,7 @@ from graphql import (
23
23
  GraphQLEnumValue,
24
24
  GraphQLError,
25
25
  GraphQLField,
26
+ GraphQLID,
26
27
  GraphQLInputField,
27
28
  GraphQLInputObjectType,
28
29
  GraphQLInterfaceType,
@@ -30,6 +31,7 @@ from graphql import (
30
31
  GraphQLNamedType,
31
32
  GraphQLNonNull,
32
33
  GraphQLObjectType,
34
+ GraphQLScalarType,
33
35
  GraphQLType,
34
36
  GraphQLUnionType,
35
37
  Undefined,
@@ -48,7 +50,12 @@ from strawberry.exceptions import (
48
50
  UnresolvedFieldTypeError,
49
51
  )
50
52
  from strawberry.extensions.field_extension import build_field_extension_resolvers
51
- from strawberry.schema.types.scalar import _make_scalar_type
53
+ from strawberry.relay.types import GlobalID
54
+ from strawberry.schema.types.scalar import (
55
+ DEFAULT_SCALAR_REGISTRY,
56
+ _get_scalar_definition,
57
+ _make_scalar_type,
58
+ )
52
59
  from strawberry.types.arguments import StrawberryArgument, convert_arguments
53
60
  from strawberry.types.base import (
54
61
  StrawberryList,
@@ -64,7 +71,7 @@ from strawberry.types.enum import EnumDefinition
64
71
  from strawberry.types.field import UNRESOLVED
65
72
  from strawberry.types.lazy_type import LazyType
66
73
  from strawberry.types.private import is_private
67
- from strawberry.types.scalar import ScalarWrapper
74
+ from strawberry.types.scalar import ScalarWrapper, scalar
68
75
  from strawberry.types.union import StrawberryUnion
69
76
  from strawberry.types.unset import UNSET
70
77
  from strawberry.utils.await_maybe import await_maybe
@@ -73,14 +80,13 @@ from . import compat
73
80
  from .types.concrete_type import ConcreteType
74
81
 
75
82
  if TYPE_CHECKING:
76
- from collections.abc import Awaitable
83
+ from collections.abc import Awaitable, Mapping
77
84
 
78
85
  from graphql import (
79
86
  GraphQLInputType,
80
87
  GraphQLNullableType,
81
88
  GraphQLOutputType,
82
89
  GraphQLResolveInfo,
83
- GraphQLScalarType,
84
90
  )
85
91
 
86
92
  from strawberry.directive import StrawberryDirective
@@ -186,7 +192,7 @@ def get_arguments(
186
192
  info: Info,
187
193
  kwargs: Any,
188
194
  config: StrawberryConfig,
189
- scalar_registry: dict[object, Union[ScalarWrapper, ScalarDefinition]],
195
+ scalar_registry: Mapping[object, Union[ScalarWrapper, ScalarDefinition]],
190
196
  ) -> tuple[list[Any], dict[str, Any]]:
191
197
  # TODO: An extension might have changed the resolver arguments,
192
198
  # but we need them here since we are calling it.
@@ -243,14 +249,42 @@ class GraphQLCoreConverter:
243
249
  def __init__(
244
250
  self,
245
251
  config: StrawberryConfig,
246
- scalar_registry: dict[object, Union[ScalarWrapper, ScalarDefinition]],
252
+ scalar_overrides: Mapping[object, Union[ScalarWrapper, ScalarDefinition]],
247
253
  get_fields: Callable[[StrawberryObjectDefinition], list[StrawberryField]],
248
254
  ) -> None:
249
255
  self.type_map: dict[str, ConcreteType] = {}
250
256
  self.config = config
251
- self.scalar_registry = scalar_registry
257
+ self.scalar_registry = self._get_scalar_registry(scalar_overrides)
252
258
  self.get_fields = get_fields
253
259
 
260
+ def _get_scalar_registry(
261
+ self,
262
+ scalar_overrides: Mapping[object, Union[ScalarWrapper, ScalarDefinition]],
263
+ ) -> Mapping[object, Union[ScalarWrapper, ScalarDefinition]]:
264
+ scalar_registry = {**DEFAULT_SCALAR_REGISTRY}
265
+
266
+ global_id_name = "GlobalID" if self.config.relay_use_legacy_global_id else "ID"
267
+
268
+ scalar_registry[GlobalID] = _get_scalar_definition(
269
+ scalar(
270
+ GlobalID,
271
+ name=global_id_name,
272
+ description=GraphQLID.description,
273
+ parse_literal=lambda v, vars=None: GlobalID.from_id( # noqa: A006
274
+ GraphQLID.parse_literal(v, vars)
275
+ ),
276
+ parse_value=GlobalID.from_id,
277
+ serialize=str,
278
+ specified_by_url=("https://relay.dev/graphql/objectidentification.htm"),
279
+ )
280
+ )
281
+
282
+ if scalar_overrides:
283
+ # TODO: check that the overrides are valid
284
+ scalar_registry.update(scalar_overrides) # type: ignore
285
+
286
+ return scalar_registry
287
+
254
288
  def from_argument(self, argument: StrawberryArgument) -> GraphQLArgument:
255
289
  argument_type = cast(
256
290
  "GraphQLInputType", self.from_maybe_optional(argument.type)
@@ -784,12 +818,20 @@ class GraphQLCoreConverter:
784
818
  scalar_name = self.config.name_converter.from_type(scalar_definition)
785
819
 
786
820
  if scalar_name not in self.type_map:
821
+ from strawberry.relay import GlobalID
822
+
823
+ if scalar is GlobalID and hasattr(GraphQLNamedType, "reserved_types"):
824
+ GraphQLNamedType.reserved_types.pop("ID")
825
+
787
826
  implementation = (
788
827
  scalar_definition.implementation
789
828
  if scalar_definition.implementation is not None
790
829
  else _make_scalar_type(scalar_definition)
791
830
  )
792
831
 
832
+ if scalar is GlobalID and hasattr(GraphQLNamedType, "reserved_types"):
833
+ GraphQLNamedType.reserved_types["ID"] = implementation
834
+
793
835
  self.type_map[scalar_name] = ConcreteType(
794
836
  definition=scalar_definition, implementation=implementation
795
837
  )