strawberry-graphql 0.274.3__tar.gz → 0.275.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 (240) hide show
  1. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/PKG-INFO +1 -1
  2. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/pyproject.toml +1 -1
  3. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/aiohttp/views.py +2 -2
  4. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/__init__.py +3 -0
  5. strawberry_graphql-0.275.1/strawberry/cli/commands/locate_definition.py +36 -0
  6. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/utils/source_finder.py +77 -17
  7. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/enum.py +4 -0
  8. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/union.py +4 -0
  9. strawberry_graphql-0.275.1/strawberry/utils/locate_definition.py +46 -0
  10. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/LICENSE +0 -0
  11. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/README.md +0 -0
  12. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/__init__.py +0 -0
  13. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/__main__.py +0 -0
  14. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/aiohttp/__init__.py +0 -0
  15. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/aiohttp/test/__init__.py +0 -0
  16. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/aiohttp/test/client.py +0 -0
  17. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/annotation.py +0 -0
  18. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/asgi/__init__.py +0 -0
  19. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/asgi/test/__init__.py +0 -0
  20. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/asgi/test/client.py +0 -0
  21. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/chalice/__init__.py +0 -0
  22. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/chalice/views.py +0 -0
  23. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/channels/__init__.py +0 -0
  24. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/channels/handlers/__init__.py +0 -0
  25. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/channels/handlers/base.py +0 -0
  26. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/channels/handlers/http_handler.py +0 -0
  27. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/channels/handlers/ws_handler.py +0 -0
  28. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/channels/router.py +0 -0
  29. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/channels/testing.py +0 -0
  30. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/app.py +0 -0
  31. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/commands/__init__.py +0 -0
  32. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/commands/codegen.py +0 -0
  33. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/commands/export_schema.py +0 -0
  34. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/commands/schema_codegen.py +0 -0
  35. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/commands/server.py +0 -0
  36. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/commands/upgrade/__init__.py +0 -0
  37. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
  38. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/commands/upgrade/_run_codemod.py +0 -0
  39. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/constants.py +0 -0
  40. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/debug_server.py +0 -0
  41. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/utils/__init__.py +0 -0
  42. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/cli/utils/load_schema.py +0 -0
  43. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/codegen/__init__.py +0 -0
  44. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/codegen/exceptions.py +0 -0
  45. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/codegen/plugins/__init__.py +0 -0
  46. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/codegen/plugins/print_operation.py +0 -0
  47. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/codegen/plugins/python.py +0 -0
  48. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/codegen/plugins/typescript.py +0 -0
  49. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/codegen/query_codegen.py +0 -0
  50. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/codegen/types.py +0 -0
  51. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/codemods/__init__.py +0 -0
  52. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/codemods/annotated_unions.py +0 -0
  53. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/codemods/update_imports.py +0 -0
  54. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/dataloader.py +0 -0
  55. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/directive.py +0 -0
  56. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/django/__init__.py +0 -0
  57. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/django/apps.py +0 -0
  58. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/django/context.py +0 -0
  59. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/django/test/__init__.py +0 -0
  60. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/django/test/client.py +0 -0
  61. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/django/views.py +0 -0
  62. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/__init__.py +0 -0
  63. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/conflicting_arguments.py +0 -0
  64. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/duplicated_type_name.py +0 -0
  65. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/exception.py +0 -0
  66. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/exception_source.py +0 -0
  67. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/handler.py +0 -0
  68. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/invalid_argument_type.py +0 -0
  69. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/invalid_superclass_interface.py +0 -0
  70. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/invalid_union_type.py +0 -0
  71. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/missing_arguments_annotations.py +0 -0
  72. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/missing_dependencies.py +0 -0
  73. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/missing_field_annotation.py +0 -0
  74. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/missing_return_annotation.py +0 -0
  75. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/object_is_not_a_class.py +0 -0
  76. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/object_is_not_an_enum.py +0 -0
  77. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/permission_fail_silently_requires_optional.py +0 -0
  78. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/private_strawberry_field.py +0 -0
  79. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/scalar_already_registered.py +0 -0
  80. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/syntax.py +0 -0
  81. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/unresolved_field_type.py +0 -0
  82. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/exceptions/utils/__init__.py +0 -0
  83. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/experimental/__init__.py +0 -0
  84. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/experimental/pydantic/__init__.py +0 -0
  85. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/experimental/pydantic/_compat.py +0 -0
  86. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/experimental/pydantic/conversion.py +0 -0
  87. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/experimental/pydantic/conversion_types.py +0 -0
  88. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/experimental/pydantic/error_type.py +0 -0
  89. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/experimental/pydantic/exceptions.py +0 -0
  90. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/experimental/pydantic/fields.py +0 -0
  91. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/experimental/pydantic/object_type.py +0 -0
  92. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/experimental/pydantic/utils.py +0 -0
  93. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/ext/LICENSE +0 -0
  94. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/ext/__init__.py +0 -0
  95. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/ext/dataclasses/LICENSE +0 -0
  96. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/ext/dataclasses/README.md +0 -0
  97. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/ext/dataclasses/__init__.py +0 -0
  98. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/ext/dataclasses/dataclasses.py +0 -0
  99. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/ext/mypy_plugin.py +0 -0
  100. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/__init__.py +0 -0
  101. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/add_validation_rules.py +0 -0
  102. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/base_extension.py +0 -0
  103. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/context.py +0 -0
  104. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/directives.py +0 -0
  105. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/disable_introspection.py +0 -0
  106. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/disable_validation.py +0 -0
  107. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/field_extension.py +0 -0
  108. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/mask_errors.py +0 -0
  109. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/max_aliases.py +0 -0
  110. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/max_tokens.py +0 -0
  111. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/parser_cache.py +0 -0
  112. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/pyinstrument.py +0 -0
  113. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/query_depth_limiter.py +0 -0
  114. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/runner.py +0 -0
  115. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/tracing/__init__.py +0 -0
  116. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/tracing/apollo.py +0 -0
  117. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/tracing/datadog.py +0 -0
  118. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/tracing/opentelemetry.py +0 -0
  119. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/tracing/utils.py +0 -0
  120. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/utils.py +0 -0
  121. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/extensions/validation_cache.py +0 -0
  122. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/fastapi/__init__.py +0 -0
  123. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/fastapi/context.py +0 -0
  124. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/fastapi/router.py +0 -0
  125. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/federation/__init__.py +0 -0
  126. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/federation/argument.py +0 -0
  127. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/federation/enum.py +0 -0
  128. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/federation/field.py +0 -0
  129. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/federation/mutation.py +0 -0
  130. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/federation/object_type.py +0 -0
  131. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/federation/scalar.py +0 -0
  132. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/federation/schema.py +0 -0
  133. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/federation/schema_directive.py +0 -0
  134. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/federation/schema_directives.py +0 -0
  135. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/federation/types.py +0 -0
  136. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/federation/union.py +0 -0
  137. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/field_extensions/__init__.py +0 -0
  138. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/field_extensions/input_mutation.py +0 -0
  139. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/file_uploads/__init__.py +0 -0
  140. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/file_uploads/scalars.py +0 -0
  141. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/file_uploads/utils.py +0 -0
  142. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/flask/__init__.py +0 -0
  143. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/flask/views.py +0 -0
  144. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/http/__init__.py +0 -0
  145. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/http/async_base_view.py +0 -0
  146. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/http/base.py +0 -0
  147. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/http/exceptions.py +0 -0
  148. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/http/ides.py +0 -0
  149. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/http/parse_content_type.py +0 -0
  150. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/http/sync_base_view.py +0 -0
  151. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/http/temporal_response.py +0 -0
  152. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/http/types.py +0 -0
  153. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/http/typevars.py +0 -0
  154. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/litestar/__init__.py +0 -0
  155. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/litestar/controller.py +0 -0
  156. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/parent.py +0 -0
  157. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/permission.py +0 -0
  158. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/printer/__init__.py +0 -0
  159. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/printer/ast_from_value.py +0 -0
  160. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/printer/printer.py +0 -0
  161. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/py.typed +0 -0
  162. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/quart/__init__.py +0 -0
  163. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/quart/views.py +0 -0
  164. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/relay/__init__.py +0 -0
  165. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/relay/exceptions.py +0 -0
  166. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/relay/fields.py +0 -0
  167. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/relay/types.py +0 -0
  168. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/relay/utils.py +0 -0
  169. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/resolvers.py +0 -0
  170. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/sanic/__init__.py +0 -0
  171. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/sanic/context.py +0 -0
  172. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/sanic/utils.py +0 -0
  173. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/sanic/views.py +0 -0
  174. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/scalars.py +0 -0
  175. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/__init__.py +0 -0
  176. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/base.py +0 -0
  177. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/compat.py +0 -0
  178. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/config.py +0 -0
  179. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/exceptions.py +0 -0
  180. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/name_converter.py +0 -0
  181. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/schema.py +0 -0
  182. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/schema_converter.py +0 -0
  183. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/types/__init__.py +0 -0
  184. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/types/base_scalars.py +0 -0
  185. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/types/concrete_type.py +0 -0
  186. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/types/scalar.py +0 -0
  187. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/validation_rules/__init__.py +0 -0
  188. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema/validation_rules/one_of.py +0 -0
  189. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema_codegen/__init__.py +0 -0
  190. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema_directive.py +0 -0
  191. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/schema_directives.py +0 -0
  192. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/static/apollo-sandbox.html +0 -0
  193. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/static/graphiql.html +0 -0
  194. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/static/pathfinder.html +0 -0
  195. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/subscriptions/__init__.py +0 -0
  196. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/subscriptions/protocols/__init__.py +0 -0
  197. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
  198. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +0 -0
  199. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +0 -0
  200. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/subscriptions/protocols/graphql_ws/__init__.py +0 -0
  201. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +0 -0
  202. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/subscriptions/protocols/graphql_ws/types.py +0 -0
  203. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/test/__init__.py +0 -0
  204. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/test/client.py +0 -0
  205. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/tools/__init__.py +0 -0
  206. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/tools/create_type.py +0 -0
  207. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/tools/merge_types.py +0 -0
  208. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/__init__.py +0 -0
  209. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/arguments.py +0 -0
  210. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/auto.py +0 -0
  211. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/base.py +0 -0
  212. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/cast.py +0 -0
  213. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/execution.py +0 -0
  214. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/field.py +0 -0
  215. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/fields/__init__.py +0 -0
  216. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/fields/resolver.py +0 -0
  217. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/graphql.py +0 -0
  218. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/info.py +0 -0
  219. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/lazy_type.py +0 -0
  220. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/maybe.py +0 -0
  221. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/mutation.py +0 -0
  222. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/nodes.py +0 -0
  223. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/object_type.py +0 -0
  224. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/private.py +0 -0
  225. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/scalar.py +0 -0
  226. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/type_resolver.py +0 -0
  227. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/types/unset.py +0 -0
  228. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/__init__.py +0 -0
  229. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/aio.py +0 -0
  230. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/await_maybe.py +0 -0
  231. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/dataclasses.py +0 -0
  232. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/debug.py +0 -0
  233. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/deprecations.py +0 -0
  234. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/graphql_lexer.py +0 -0
  235. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/importer.py +0 -0
  236. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/inspect.py +0 -0
  237. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/logging.py +0 -0
  238. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/operation.py +0 -0
  239. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/str_converters.py +0 -0
  240. {strawberry_graphql-0.274.3 → strawberry_graphql-0.275.1}/strawberry/utils/typing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: strawberry-graphql
3
- Version: 0.274.3
3
+ Version: 0.275.1
4
4
  Summary: A library for creating GraphQL APIs
5
5
  License: MIT
6
6
  Keywords: graphql,api,rest,starlette,async
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "strawberry-graphql"
3
- version = "0.274.3"
3
+ version = "0.275.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" }
@@ -15,7 +15,7 @@ from typing import (
15
15
  )
16
16
  from typing_extensions import TypeGuard
17
17
 
18
- from aiohttp import http, web
18
+ from aiohttp import ClientConnectionResetError, http, web
19
19
  from aiohttp.multipart import BodyPartReader
20
20
  from strawberry.http.async_base_view import (
21
21
  AsyncBaseHTTPView,
@@ -109,7 +109,7 @@ class AiohttpWebSocketAdapter(AsyncWebSocketAdapter):
109
109
  async def send_json(self, message: Mapping[str, object]) -> None:
110
110
  try:
111
111
  await self.ws.send_str(self.view.encode_json(message))
112
- except RuntimeError as exc:
112
+ except (RuntimeError, ClientConnectionResetError) as exc:
113
113
  raise WebSocketDisconnected from exc
114
114
 
115
115
  async def close(self, code: int, reason: str) -> None:
@@ -2,6 +2,9 @@ try:
2
2
  from .app import app
3
3
  from .commands.codegen import codegen as codegen # noqa: PLC0414
4
4
  from .commands.export_schema import export_schema as export_schema # noqa: PLC0414
5
+ from .commands.locate_definition import (
6
+ locate_definition as locate_definition, # noqa: PLC0414
7
+ )
5
8
  from .commands.schema_codegen import (
6
9
  schema_codegen as schema_codegen, # noqa: PLC0414
7
10
  )
@@ -0,0 +1,36 @@
1
+ import sys
2
+
3
+ import typer
4
+ from rich.console import Console
5
+
6
+ from strawberry.cli.app import app
7
+ from strawberry.cli.utils import load_schema
8
+ from strawberry.utils.locate_definition import (
9
+ locate_definition as locate_definition_util,
10
+ )
11
+
12
+ err_console = Console(stderr=True)
13
+
14
+
15
+ @app.command(help="Locate a definition in the schema (output: path:line:column)")
16
+ def locate_definition(
17
+ schema: str,
18
+ symbol: str,
19
+ app_dir: str = typer.Option(
20
+ ".",
21
+ "--app-dir",
22
+ show_default=True,
23
+ help=(
24
+ "Look for the module in the specified directory, by adding this to the "
25
+ "PYTHONPATH. Defaults to the current working directory. "
26
+ "Works the same as `--app-dir` in uvicorn."
27
+ ),
28
+ ),
29
+ ) -> None:
30
+ schema_symbol = load_schema(schema, app_dir)
31
+
32
+ if location := locate_definition_util(schema_symbol, symbol):
33
+ typer.echo(location)
34
+ else:
35
+ err_console.print(f"Definition not found: {symbol}")
36
+ sys.exit(1)
@@ -166,7 +166,8 @@ class LibCSTSourceFinder:
166
166
  attribute_definitions = m.findall(
167
167
  class_def,
168
168
  m.AssignTarget(target=m.Name(value=attribute_name))
169
- | m.AnnAssign(target=m.Name(value=attribute_name)),
169
+ | m.AnnAssign(target=m.Name(value=attribute_name))
170
+ | m.FunctionDef(name=m.Name(value=attribute_name)),
170
171
  )
171
172
 
172
173
  if not attribute_definitions:
@@ -511,7 +512,8 @@ class LibCSTSourceFinder:
511
512
  path = Path(scalar_definition._source_file)
512
513
  source = path.read_text()
513
514
 
514
- matcher = m.Call(
515
+ # Try to find direct strawberry.scalar() calls with name parameter
516
+ direct_matcher = m.Call(
515
517
  func=m.Attribute(value=m.Name(value="strawberry"), attr=m.Name("scalar"))
516
518
  | m.Name("scalar"),
517
519
  args=[
@@ -525,31 +527,89 @@ class LibCSTSourceFinder:
525
527
  ],
526
528
  )
527
529
 
528
- scalar_calls = self._find(source, matcher)
530
+ direct_calls = self._find(source, direct_matcher)
531
+ if direct_calls:
532
+ return self._create_scalar_exception_source(
533
+ path, source, direct_calls[0], scalar_definition, is_newtype=False
534
+ )
529
535
 
530
- if not scalar_calls:
531
- return None # pragma: no cover
536
+ # Try to find strawberry.scalar() calls with NewType pattern
537
+ newtype_matcher = m.Call(
538
+ func=m.Attribute(value=m.Name(value="strawberry"), attr=m.Name("scalar"))
539
+ | m.Name("scalar"),
540
+ args=[
541
+ m.Arg(
542
+ value=m.Call(
543
+ func=m.Name(value="NewType"),
544
+ args=[
545
+ m.Arg(
546
+ value=m.SimpleString(
547
+ value=f"'{scalar_definition.name}'"
548
+ )
549
+ | m.SimpleString(value=f'"{scalar_definition.name}"'),
550
+ ),
551
+ m.ZeroOrMore(),
552
+ ],
553
+ )
554
+ ),
555
+ m.ZeroOrMore(),
556
+ ],
557
+ )
532
558
 
533
- scalar_call_node = scalar_calls[0]
559
+ newtype_calls = self._find(source, newtype_matcher)
560
+ if newtype_calls:
561
+ return self._create_scalar_exception_source(
562
+ path, source, newtype_calls[0], scalar_definition, is_newtype=True
563
+ )
534
564
 
535
- argument_node = m.findall(
536
- scalar_call_node,
537
- m.Arg(
538
- keyword=m.Name(value="name"),
539
- ),
540
- )
565
+ return None # pragma: no cover
566
+
567
+ def _create_scalar_exception_source(
568
+ self,
569
+ path: Path,
570
+ source: str,
571
+ call_node: Any,
572
+ scalar_definition: ScalarDefinition,
573
+ is_newtype: bool,
574
+ ) -> Optional[ExceptionSource]:
575
+ """Helper method to create ExceptionSource for scalar calls."""
576
+ import libcst.matchers as m
577
+
578
+ if is_newtype:
579
+ # For NewType pattern, find the string argument within the NewType call
580
+ newtype_nodes = m.findall(call_node, m.Call(func=m.Name(value="NewType")))
581
+ if not newtype_nodes:
582
+ return None # pragma: no cover
583
+
584
+ target_node = newtype_nodes[0]
585
+ string_nodes = m.findall(
586
+ target_node,
587
+ m.SimpleString(value=f"'{scalar_definition.name}'")
588
+ | m.SimpleString(value=f'"{scalar_definition.name}"'),
589
+ )
590
+ if not string_nodes:
591
+ return None # pragma: no cover
592
+
593
+ target_node = string_nodes[0]
594
+ else:
595
+ # For direct calls, find the name argument
596
+ target_nodes = m.findall(call_node, m.Arg(keyword=m.Name(value="name")))
597
+ if not target_nodes:
598
+ return None # pragma: no cover
599
+
600
+ target_node = target_nodes[0]
541
601
 
542
- position = self._position_metadata[scalar_call_node]
543
- argument_node_position = self._position_metadata[argument_node[0]]
602
+ position = self._position_metadata[call_node]
603
+ target_position = self._position_metadata[target_node]
544
604
 
545
605
  return ExceptionSource(
546
606
  path=path,
547
607
  code=source,
548
608
  start_line=position.start.line,
549
609
  end_line=position.end.line,
550
- error_line=argument_node_position.start.line,
551
- error_column=argument_node_position.start.column,
552
- error_column_end=argument_node_position.end.column,
610
+ error_line=target_position.start.line,
611
+ error_column=target_position.start.column,
612
+ error_column_end=target_position.end.column,
553
613
  )
554
614
 
555
615
 
@@ -45,6 +45,10 @@ class EnumDefinition(StrawberryType):
45
45
  def is_graphql_generic(self) -> bool:
46
46
  return False
47
47
 
48
+ @property
49
+ def origin(self) -> type:
50
+ return self.wrapped_cls
51
+
48
52
 
49
53
  # TODO: remove duplication of EnumValueDefinition and EnumValue
50
54
  @dataclasses.dataclass
@@ -283,6 +283,10 @@ def union(
283
283
  union._source_file = frame.f_code.co_filename
284
284
  union._source_line = frame.f_lineno
285
285
 
286
+ # TODO: here union._source_file could be "<string>"
287
+ # (when using future annotations)
288
+ # we should find a better way to handle this
289
+
286
290
  return union
287
291
 
288
292
  warnings.warn(
@@ -0,0 +1,46 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from strawberry.exceptions.utils.source_finder import SourceFinder
6
+ from strawberry.types.scalar import ScalarDefinition
7
+ from strawberry.types.union import StrawberryUnion
8
+ from strawberry.utils.str_converters import to_snake_case
9
+
10
+ if TYPE_CHECKING:
11
+ from strawberry.schema.schema import Schema
12
+
13
+
14
+ def locate_definition(schema_symbol: Schema, symbol: str) -> str | None:
15
+ finder = SourceFinder()
16
+
17
+ if "." in symbol:
18
+ model, field = symbol.split(".", 1)
19
+ else:
20
+ model, field = symbol, None
21
+
22
+ schema_type = schema_symbol.get_type_by_name(model)
23
+
24
+ if not schema_type:
25
+ return None
26
+
27
+ if field:
28
+ assert not isinstance(schema_type, StrawberryUnion)
29
+
30
+ location = finder.find_class_attribute_from_object(
31
+ schema_type.origin, # type: ignore
32
+ to_snake_case(field)
33
+ if schema_symbol.config.name_converter.auto_camel_case
34
+ else field,
35
+ )
36
+ elif isinstance(schema_type, StrawberryUnion):
37
+ location = finder.find_annotated_union(schema_type, None)
38
+ elif isinstance(schema_type, ScalarDefinition):
39
+ location = finder.find_scalar_call(schema_type)
40
+ else:
41
+ location = finder.find_class_from_object(schema_type.origin)
42
+
43
+ if not location:
44
+ return None
45
+
46
+ return f"{location.path}:{location.error_line}:{location.error_column + 1}"