strawberry-graphql 0.274.2__tar.gz → 0.275.0__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.2 → strawberry_graphql-0.275.0}/PKG-INFO +4 -4
  2. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/pyproject.toml +5 -5
  3. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/__init__.py +3 -0
  4. strawberry_graphql-0.275.0/strawberry/cli/commands/locate_definition.py +36 -0
  5. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/commands/upgrade/_run_codemod.py +9 -21
  6. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/utils/source_finder.py +77 -17
  7. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/enum.py +4 -0
  8. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/union.py +4 -0
  9. strawberry_graphql-0.275.0/strawberry/utils/locate_definition.py +46 -0
  10. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/LICENSE +0 -0
  11. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/README.md +0 -0
  12. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/__init__.py +0 -0
  13. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/__main__.py +0 -0
  14. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/aiohttp/__init__.py +0 -0
  15. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/aiohttp/test/__init__.py +0 -0
  16. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/aiohttp/test/client.py +0 -0
  17. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/aiohttp/views.py +0 -0
  18. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/annotation.py +0 -0
  19. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/asgi/__init__.py +0 -0
  20. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/asgi/test/__init__.py +0 -0
  21. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/asgi/test/client.py +0 -0
  22. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/chalice/__init__.py +0 -0
  23. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/chalice/views.py +0 -0
  24. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/channels/__init__.py +0 -0
  25. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/channels/handlers/__init__.py +0 -0
  26. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/channels/handlers/base.py +0 -0
  27. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/channels/handlers/http_handler.py +0 -0
  28. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/channels/handlers/ws_handler.py +0 -0
  29. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/channels/router.py +0 -0
  30. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/channels/testing.py +0 -0
  31. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/app.py +0 -0
  32. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/commands/__init__.py +0 -0
  33. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/commands/codegen.py +0 -0
  34. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/commands/export_schema.py +0 -0
  35. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/commands/schema_codegen.py +0 -0
  36. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/commands/server.py +0 -0
  37. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/commands/upgrade/__init__.py +0 -0
  38. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/commands/upgrade/_fake_progress.py +0 -0
  39. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/constants.py +0 -0
  40. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/debug_server.py +0 -0
  41. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/utils/__init__.py +0 -0
  42. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/cli/utils/load_schema.py +0 -0
  43. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/codegen/__init__.py +0 -0
  44. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/codegen/exceptions.py +0 -0
  45. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/codegen/plugins/__init__.py +0 -0
  46. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/codegen/plugins/print_operation.py +0 -0
  47. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/codegen/plugins/python.py +0 -0
  48. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/codegen/plugins/typescript.py +0 -0
  49. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/codegen/query_codegen.py +0 -0
  50. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/codegen/types.py +0 -0
  51. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/codemods/__init__.py +0 -0
  52. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/codemods/annotated_unions.py +0 -0
  53. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/codemods/update_imports.py +0 -0
  54. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/dataloader.py +0 -0
  55. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/directive.py +0 -0
  56. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/django/__init__.py +0 -0
  57. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/django/apps.py +0 -0
  58. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/django/context.py +0 -0
  59. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/django/test/__init__.py +0 -0
  60. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/django/test/client.py +0 -0
  61. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/django/views.py +0 -0
  62. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/__init__.py +0 -0
  63. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/conflicting_arguments.py +0 -0
  64. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/duplicated_type_name.py +0 -0
  65. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/exception.py +0 -0
  66. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/exception_source.py +0 -0
  67. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/handler.py +0 -0
  68. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/invalid_argument_type.py +0 -0
  69. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/invalid_superclass_interface.py +0 -0
  70. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/invalid_union_type.py +0 -0
  71. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/missing_arguments_annotations.py +0 -0
  72. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/missing_dependencies.py +0 -0
  73. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/missing_field_annotation.py +0 -0
  74. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/missing_return_annotation.py +0 -0
  75. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/object_is_not_a_class.py +0 -0
  76. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/object_is_not_an_enum.py +0 -0
  77. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/permission_fail_silently_requires_optional.py +0 -0
  78. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/private_strawberry_field.py +0 -0
  79. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/scalar_already_registered.py +0 -0
  80. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/syntax.py +0 -0
  81. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/unresolved_field_type.py +0 -0
  82. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/exceptions/utils/__init__.py +0 -0
  83. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/experimental/__init__.py +0 -0
  84. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/experimental/pydantic/__init__.py +0 -0
  85. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/experimental/pydantic/_compat.py +0 -0
  86. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/experimental/pydantic/conversion.py +0 -0
  87. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/experimental/pydantic/conversion_types.py +0 -0
  88. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/experimental/pydantic/error_type.py +0 -0
  89. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/experimental/pydantic/exceptions.py +0 -0
  90. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/experimental/pydantic/fields.py +0 -0
  91. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/experimental/pydantic/object_type.py +0 -0
  92. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/experimental/pydantic/utils.py +0 -0
  93. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/ext/LICENSE +0 -0
  94. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/ext/__init__.py +0 -0
  95. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/ext/dataclasses/LICENSE +0 -0
  96. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/ext/dataclasses/README.md +0 -0
  97. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/ext/dataclasses/__init__.py +0 -0
  98. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/ext/dataclasses/dataclasses.py +0 -0
  99. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/ext/mypy_plugin.py +0 -0
  100. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/__init__.py +0 -0
  101. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/add_validation_rules.py +0 -0
  102. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/base_extension.py +0 -0
  103. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/context.py +0 -0
  104. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/directives.py +0 -0
  105. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/disable_introspection.py +0 -0
  106. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/disable_validation.py +0 -0
  107. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/field_extension.py +0 -0
  108. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/mask_errors.py +0 -0
  109. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/max_aliases.py +0 -0
  110. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/max_tokens.py +0 -0
  111. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/parser_cache.py +0 -0
  112. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/pyinstrument.py +0 -0
  113. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/query_depth_limiter.py +0 -0
  114. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/runner.py +0 -0
  115. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/tracing/__init__.py +0 -0
  116. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/tracing/apollo.py +0 -0
  117. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/tracing/datadog.py +0 -0
  118. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/tracing/opentelemetry.py +0 -0
  119. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/tracing/utils.py +0 -0
  120. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/utils.py +0 -0
  121. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/extensions/validation_cache.py +0 -0
  122. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/fastapi/__init__.py +0 -0
  123. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/fastapi/context.py +0 -0
  124. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/fastapi/router.py +0 -0
  125. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/federation/__init__.py +0 -0
  126. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/federation/argument.py +0 -0
  127. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/federation/enum.py +0 -0
  128. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/federation/field.py +0 -0
  129. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/federation/mutation.py +0 -0
  130. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/federation/object_type.py +0 -0
  131. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/federation/scalar.py +0 -0
  132. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/federation/schema.py +0 -0
  133. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/federation/schema_directive.py +0 -0
  134. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/federation/schema_directives.py +0 -0
  135. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/federation/types.py +0 -0
  136. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/federation/union.py +0 -0
  137. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/field_extensions/__init__.py +0 -0
  138. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/field_extensions/input_mutation.py +0 -0
  139. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/file_uploads/__init__.py +0 -0
  140. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/file_uploads/scalars.py +0 -0
  141. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/file_uploads/utils.py +0 -0
  142. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/flask/__init__.py +0 -0
  143. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/flask/views.py +0 -0
  144. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/http/__init__.py +0 -0
  145. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/http/async_base_view.py +0 -0
  146. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/http/base.py +0 -0
  147. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/http/exceptions.py +0 -0
  148. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/http/ides.py +0 -0
  149. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/http/parse_content_type.py +0 -0
  150. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/http/sync_base_view.py +0 -0
  151. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/http/temporal_response.py +0 -0
  152. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/http/types.py +0 -0
  153. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/http/typevars.py +0 -0
  154. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/litestar/__init__.py +0 -0
  155. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/litestar/controller.py +0 -0
  156. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/parent.py +0 -0
  157. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/permission.py +0 -0
  158. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/printer/__init__.py +0 -0
  159. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/printer/ast_from_value.py +0 -0
  160. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/printer/printer.py +0 -0
  161. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/py.typed +0 -0
  162. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/quart/__init__.py +0 -0
  163. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/quart/views.py +0 -0
  164. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/relay/__init__.py +0 -0
  165. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/relay/exceptions.py +0 -0
  166. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/relay/fields.py +0 -0
  167. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/relay/types.py +0 -0
  168. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/relay/utils.py +0 -0
  169. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/resolvers.py +0 -0
  170. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/sanic/__init__.py +0 -0
  171. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/sanic/context.py +0 -0
  172. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/sanic/utils.py +0 -0
  173. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/sanic/views.py +0 -0
  174. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/scalars.py +0 -0
  175. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/__init__.py +0 -0
  176. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/base.py +0 -0
  177. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/compat.py +0 -0
  178. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/config.py +0 -0
  179. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/exceptions.py +0 -0
  180. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/name_converter.py +0 -0
  181. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/schema.py +0 -0
  182. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/schema_converter.py +0 -0
  183. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/types/__init__.py +0 -0
  184. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/types/base_scalars.py +0 -0
  185. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/types/concrete_type.py +0 -0
  186. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/types/scalar.py +0 -0
  187. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/validation_rules/__init__.py +0 -0
  188. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema/validation_rules/one_of.py +0 -0
  189. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema_codegen/__init__.py +0 -0
  190. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema_directive.py +0 -0
  191. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/schema_directives.py +0 -0
  192. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/static/apollo-sandbox.html +0 -0
  193. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/static/graphiql.html +0 -0
  194. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/static/pathfinder.html +0 -0
  195. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/subscriptions/__init__.py +0 -0
  196. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/subscriptions/protocols/__init__.py +0 -0
  197. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/subscriptions/protocols/graphql_transport_ws/__init__.py +0 -0
  198. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/subscriptions/protocols/graphql_transport_ws/handlers.py +0 -0
  199. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/subscriptions/protocols/graphql_transport_ws/types.py +0 -0
  200. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/subscriptions/protocols/graphql_ws/__init__.py +0 -0
  201. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/subscriptions/protocols/graphql_ws/handlers.py +0 -0
  202. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/subscriptions/protocols/graphql_ws/types.py +0 -0
  203. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/test/__init__.py +0 -0
  204. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/test/client.py +0 -0
  205. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/tools/__init__.py +0 -0
  206. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/tools/create_type.py +0 -0
  207. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/tools/merge_types.py +0 -0
  208. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/__init__.py +0 -0
  209. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/arguments.py +0 -0
  210. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/auto.py +0 -0
  211. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/base.py +0 -0
  212. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/cast.py +0 -0
  213. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/execution.py +0 -0
  214. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/field.py +0 -0
  215. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/fields/__init__.py +0 -0
  216. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/fields/resolver.py +0 -0
  217. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/graphql.py +0 -0
  218. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/info.py +0 -0
  219. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/lazy_type.py +0 -0
  220. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/maybe.py +0 -0
  221. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/mutation.py +0 -0
  222. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/nodes.py +0 -0
  223. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/object_type.py +0 -0
  224. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/private.py +0 -0
  225. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/scalar.py +0 -0
  226. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/type_resolver.py +0 -0
  227. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/types/unset.py +0 -0
  228. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/utils/__init__.py +0 -0
  229. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/utils/aio.py +0 -0
  230. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/utils/await_maybe.py +0 -0
  231. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/utils/dataclasses.py +0 -0
  232. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/utils/debug.py +0 -0
  233. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/utils/deprecations.py +0 -0
  234. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/utils/graphql_lexer.py +0 -0
  235. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/utils/importer.py +0 -0
  236. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/utils/inspect.py +0 -0
  237. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/utils/logging.py +0 -0
  238. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/utils/operation.py +0 -0
  239. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/strawberry/utils/str_converters.py +0 -0
  240. {strawberry_graphql-0.274.2 → strawberry_graphql-0.275.0}/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.2
3
+ Version: 0.275.0
4
4
  Summary: A library for creating GraphQL APIs
5
5
  License: MIT
6
6
  Keywords: graphql,api,rest,starlette,async
@@ -37,9 +37,9 @@ Requires-Dist: channels (>=3.0.5) ; extra == "channels"
37
37
  Requires-Dist: fastapi (>=0.65.2) ; extra == "fastapi"
38
38
  Requires-Dist: flask (>=1.1) ; extra == "flask"
39
39
  Requires-Dist: graphql-core (>=3.2.0,<3.4.0)
40
- Requires-Dist: libcst (>=0.4.7,<1.8.0) ; extra == "cli"
41
- Requires-Dist: libcst (>=0.4.7,<1.8.0) ; extra == "debug"
42
- Requires-Dist: libcst (>=0.4.7,<1.8.0) ; extra == "debug-server"
40
+ Requires-Dist: libcst ; extra == "cli"
41
+ Requires-Dist: libcst ; extra == "debug"
42
+ Requires-Dist: libcst ; extra == "debug-server"
43
43
  Requires-Dist: litestar (>=2) ; (python_version ~= "3.10") and (extra == "litestar")
44
44
  Requires-Dist: opentelemetry-api (<2) ; extra == "opentelemetry"
45
45
  Requires-Dist: opentelemetry-sdk (<2) ; extra == "opentelemetry"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "strawberry-graphql"
3
- version = "0.274.2"
3
+ version = "0.275.0"
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" }
@@ -38,7 +38,7 @@ strawberry = "strawberry.cli:run"
38
38
  [project.optional-dependencies]
39
39
  aiohttp = ["aiohttp>=3.7.4.post0,<4"]
40
40
  asgi = ["starlette>=0.18.0", "python-multipart>=0.0.7"]
41
- debug = ["rich>=12.0.0", "libcst>=0.4.7,<1.8.0"]
41
+ debug = ["rich>=12.0.0", "libcst"]
42
42
  debug-server = [
43
43
  "starlette>=0.18.0",
44
44
  "uvicorn>=0.11.6",
@@ -47,7 +47,7 @@ debug-server = [
47
47
  "typer>=0.7.0",
48
48
  "pygments~=2.3",
49
49
  "rich>=12.0.0",
50
- "libcst>=0.4.7,<1.8.0",
50
+ "libcst",
51
51
  ]
52
52
  django = ["Django>=3.2", "asgiref~=3.2"]
53
53
  channels = ["channels>=3.0.5", "asgiref~=3.2"]
@@ -58,7 +58,7 @@ pydantic = ["pydantic>1.6.1"]
58
58
  sanic = ["sanic>=20.12.2"]
59
59
  fastapi = ["fastapi>=0.65.2", "python-multipart>=0.0.7"]
60
60
  chalice = ["chalice~=1.22"]
61
- cli = ["typer>=0.7.0", "pygments~=2.3", "rich>=12.0.0", "libcst>=0.4.7,<1.8.0"]
61
+ cli = ["typer>=0.7.0", "pygments~=2.3", "rich>=12.0.0", "libcst"]
62
62
  litestar = ["litestar>=2; python_version~='3.10'"]
63
63
  pyinstrument = ["pyinstrument>=4.0.0"]
64
64
 
@@ -71,7 +71,7 @@ ruff = "^0.11.4"
71
71
  asgiref = "^3.2"
72
72
  email-validator = { version = ">=1.1.3,<3.0.0", optional = false }
73
73
  freezegun = "^1.2.1"
74
- libcst = { version = ">=1.0.0", optional = false }
74
+ libcst = { version = "^1.8.2", optional = false }
75
75
  MarkupSafe = "2.1.3"
76
76
  nox = "^2024.4.15"
77
77
  nox-poetry = "^1.0.3"
@@ -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)
@@ -7,7 +7,6 @@ from multiprocessing import Pool, cpu_count
7
7
  from typing import TYPE_CHECKING, Any, Union
8
8
 
9
9
  from libcst.codemod._cli import ExecutionConfig, ExecutionResult, _execute_transform
10
- from libcst.codemod._dummy_pool import DummyPool
11
10
  from rich.progress import Progress
12
11
 
13
12
  from ._fake_progress import FakeProgress
@@ -18,7 +17,6 @@ if TYPE_CHECKING:
18
17
  from libcst.codemod import Codemod
19
18
 
20
19
  ProgressType = Union[type[Progress], type[FakeProgress]]
21
- PoolType = Union[type[Pool], type[DummyPool]] # type: ignore
22
20
 
23
21
 
24
22
  def _get_libcst_version() -> tuple[int, int, int]:
@@ -37,29 +35,21 @@ def _execute_transform_wrap(
37
35
  ) -> ExecutionResult:
38
36
  additional_kwargs: dict[str, Any] = {}
39
37
 
40
- if _get_libcst_version() >= (1, 4, 0):
38
+ libcst_version = _get_libcst_version()
39
+
40
+ if (1, 4, 0) <= libcst_version < (1, 8, 0):
41
41
  additional_kwargs["scratch"] = {}
42
42
 
43
+ if libcst_version >= (1, 8, 0):
44
+ additional_kwargs["original_scratch"] = {}
45
+ additional_kwargs["codemod_args"] = {}
46
+ additional_kwargs["repo_manager"] = None
47
+
43
48
  # TODO: maybe capture warnings?
44
49
  with open(os.devnull, "w") as null, contextlib.redirect_stderr(null): # noqa: PTH123
45
50
  return _execute_transform(**job, **additional_kwargs)
46
51
 
47
52
 
48
- def _get_progress_and_pool(
49
- total_files: int, jobs: int
50
- ) -> tuple[PoolType, ProgressType]:
51
- poll_impl: PoolType = Pool # type: ignore
52
- progress_impl: ProgressType = Progress
53
-
54
- if total_files == 1 or jobs == 1:
55
- poll_impl = DummyPool
56
-
57
- if total_files == 1:
58
- progress_impl = FakeProgress
59
-
60
- return poll_impl, progress_impl
61
-
62
-
63
53
  def run_codemod(
64
54
  codemod: Codemod,
65
55
  files: Sequence[str],
@@ -70,8 +60,6 @@ def run_codemod(
70
60
 
71
61
  config = ExecutionConfig()
72
62
 
73
- pool_impl, progress_impl = _get_progress_and_pool(total, jobs)
74
-
75
63
  tasks = [
76
64
  {
77
65
  "transformer": codemod,
@@ -81,7 +69,7 @@ def run_codemod(
81
69
  for filename in files
82
70
  ]
83
71
 
84
- with pool_impl(processes=jobs) as p, progress_impl() as progress: # type: ignore
72
+ with Pool(processes=jobs) as p, Progress() as progress:
85
73
  task_id = progress.add_task("[cyan]Updating...", total=len(tasks))
86
74
 
87
75
  for result in p.imap_unordered(
@@ -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}"