graphql-core 3.2.7__tar.gz → 3.2.8__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 (342) hide show
  1. {graphql_core-3.2.7 → graphql_core-3.2.8}/.bumpversion.cfg +1 -1
  2. {graphql_core-3.2.7 → graphql_core-3.2.8}/PKG-INFO +2 -2
  3. {graphql_core-3.2.7 → graphql_core-3.2.8}/README.md +1 -1
  4. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/conf.py +4 -2
  5. {graphql_core-3.2.7 → graphql_core-3.2.8}/poetry.lock +1 -1
  6. {graphql_core-3.2.7 → graphql_core-3.2.8}/pyproject.toml +2 -2
  7. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/print_location.py +0 -1
  8. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/description.py +4 -4
  9. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/introspection.py +3 -0
  10. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/validate.py +6 -0
  11. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/get_introspection_query.py +2 -4
  12. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/type_comparators.py +2 -2
  13. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/version.py +1 -1
  14. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql_core.egg-info/PKG-INFO +2 -2
  15. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_execution_async.py +0 -1
  16. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_execution_sync.py +0 -1
  17. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_validate_invalid_gql.py +2 -4
  18. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/error/test_graphql_error.py +10 -23
  19. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/error/test_print_location.py +10 -20
  20. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_abstract.py +8 -16
  21. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_directives.py +30 -60
  22. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_executor.py +34 -68
  23. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_mutations.py +4 -8
  24. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_nonnull.py +16 -32
  25. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_one_of.py +2 -5
  26. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_parallel.py +2 -4
  27. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_resolve.py +6 -12
  28. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_schema.py +2 -4
  29. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_subscribe.py +6 -12
  30. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_union_interface.py +14 -28
  31. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_variables.py +48 -96
  32. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_block_string_fuzz.py +4 -8
  33. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_lexer.py +10 -23
  34. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_parser.py +20 -44
  35. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_printer.py +14 -28
  36. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_schema_parser.py +22 -44
  37. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_schema_printer.py +2 -4
  38. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_source.py +2 -4
  39. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_visitor.py +2 -4
  40. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_description.py +2 -4
  41. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/test_star_wars_introspection.py +18 -36
  42. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_enum.py +6 -12
  43. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_introspection.py +30 -60
  44. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_schema.py +2 -4
  45. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_validation.py +215 -405
  46. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_ast_to_dict.py +8 -16
  47. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_build_ast_schema.py +126 -254
  48. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_build_client_schema.py +56 -112
  49. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_concat_ast.py +6 -12
  50. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_extend_schema.py +160 -324
  51. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_find_breaking_changes.py +126 -252
  52. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_get_introspection_query.py +2 -4
  53. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_get_operation_ast.py +8 -16
  54. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_get_operation_root_type.py +2 -5
  55. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_introspection_from_schema.py +4 -8
  56. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_lexicographic_sort_schema.py +40 -80
  57. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_print_schema.py +72 -144
  58. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_separate_operations.py +24 -50
  59. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_strip_ignored_characters.py +12 -24
  60. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_strip_ignored_characters_fuzz.py +2 -4
  61. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_type_info.py +8 -17
  62. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utils/__init__.py +0 -1
  63. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utils/test_dedent.py +14 -45
  64. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/harness.py +2 -4
  65. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_executable_definitions.py +4 -8
  66. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_fields_on_correct_type.py +34 -68
  67. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_fragments_on_composite_types.py +12 -24
  68. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_known_argument_names.py +22 -44
  69. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_known_directives.py +22 -44
  70. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_known_fragment_names.py +2 -4
  71. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_known_type_names.py +6 -12
  72. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_lone_anonymous_operation.py +8 -16
  73. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_lone_schema_definition.py +12 -24
  74. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_max_introspection_depth_rule.py +8 -16
  75. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_no_deprecated.py +30 -60
  76. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_no_fragment_cycles.py +10 -20
  77. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_no_schema_introspection.py +6 -12
  78. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_no_undefined_variables.py +14 -28
  79. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_no_unused_fragments.py +4 -8
  80. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_no_unused_variables.py +12 -24
  81. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_overlapping_fields_can_be_merged.py +38 -76
  82. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_possible_fragment_spreads.py +28 -56
  83. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_possible_type_extensions.py +10 -20
  84. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_provided_required_arguments.py +34 -68
  85. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_scalar_leafs.py +4 -8
  86. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_single_field_subscriptions.py +10 -20
  87. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_argument_definition_names.py +6 -12
  88. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_argument_names.py +18 -36
  89. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_directive_names.py +8 -16
  90. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_directives_per_location.py +14 -28
  91. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_enum_value_names.py +10 -20
  92. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_field_definition_names.py +14 -28
  93. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_fragment_names.py +10 -20
  94. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_input_field_names.py +8 -16
  95. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_operation_names.py +12 -24
  96. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_operation_types.py +14 -28
  97. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_type_names.py +8 -16
  98. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_variable_names.py +2 -4
  99. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_validation.py +10 -20
  100. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_values_of_correct_type.py +76 -152
  101. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_variables_are_input_types.py +4 -8
  102. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_variables_in_allowed_position.py +30 -60
  103. {graphql_core-3.2.7 → graphql_core-3.2.8}/tox.ini +4 -4
  104. {graphql_core-3.2.7 → graphql_core-3.2.8}/.coveragerc +0 -0
  105. {graphql_core-3.2.7 → graphql_core-3.2.8}/.editorconfig +0 -0
  106. {graphql_core-3.2.7 → graphql_core-3.2.8}/.flake8 +0 -0
  107. {graphql_core-3.2.7 → graphql_core-3.2.8}/.mypy.ini +0 -0
  108. {graphql_core-3.2.7 → graphql_core-3.2.8}/.readthedocs.yaml +0 -0
  109. {graphql_core-3.2.7 → graphql_core-3.2.8}/CODEOWNERS +0 -0
  110. {graphql_core-3.2.7 → graphql_core-3.2.8}/LICENSE +0 -0
  111. {graphql_core-3.2.7 → graphql_core-3.2.8}/MANIFEST.in +0 -0
  112. {graphql_core-3.2.7 → graphql_core-3.2.8}/SECURITY.md +0 -0
  113. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/Makefile +0 -0
  114. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/diffs.rst +0 -0
  115. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/index.rst +0 -0
  116. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/intro.rst +0 -0
  117. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/make.bat +0 -0
  118. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/error.rst +0 -0
  119. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/execution.rst +0 -0
  120. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/graphql.rst +0 -0
  121. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/language.rst +0 -0
  122. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/pyutils.rst +0 -0
  123. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/type.rst +0 -0
  124. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/utilities.rst +0 -0
  125. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/validation.rst +0 -0
  126. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/requirements.txt +0 -0
  127. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/extension.rst +0 -0
  128. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/index.rst +0 -0
  129. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/introspection.rst +0 -0
  130. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/methods.rst +0 -0
  131. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/other.rst +0 -0
  132. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/parser.rst +0 -0
  133. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/queries.rst +0 -0
  134. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/resolvers.rst +0 -0
  135. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/schema.rst +0 -0
  136. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/sdl.rst +0 -0
  137. {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/validator.rst +0 -0
  138. {graphql_core-3.2.7 → graphql_core-3.2.8}/setup.cfg +0 -0
  139. {graphql_core-3.2.7 → graphql_core-3.2.8}/setup.py +0 -0
  140. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/__init__.py +0 -0
  141. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/error/__init__.py +0 -0
  142. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/error/graphql_error.py +0 -0
  143. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/error/located_error.py +0 -0
  144. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/error/syntax_error.py +0 -0
  145. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/__init__.py +0 -0
  146. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/collect_fields.py +0 -0
  147. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/execute.py +0 -0
  148. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/map_async_iterator.py +0 -0
  149. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/middleware.py +0 -0
  150. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/subscribe.py +0 -0
  151. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/values.py +0 -0
  152. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/graphql.py +0 -0
  153. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/__init__.py +0 -0
  154. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/ast.py +0 -0
  155. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/block_string.py +0 -0
  156. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/character_classes.py +0 -0
  157. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/directive_locations.py +0 -0
  158. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/lexer.py +0 -0
  159. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/location.py +0 -0
  160. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/parser.py +0 -0
  161. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/predicates.py +0 -0
  162. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/print_string.py +0 -0
  163. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/printer.py +0 -0
  164. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/source.py +0 -0
  165. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/token_kind.py +0 -0
  166. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/visitor.py +0 -0
  167. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/py.typed +0 -0
  168. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/__init__.py +0 -0
  169. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/awaitable_or_value.py +0 -0
  170. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/cached_property.py +0 -0
  171. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/convert_case.py +0 -0
  172. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/did_you_mean.py +0 -0
  173. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/frozen_dict.py +0 -0
  174. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/frozen_error.py +0 -0
  175. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/frozen_list.py +0 -0
  176. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/group_by.py +0 -0
  177. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/identity_func.py +0 -0
  178. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/inspect.py +0 -0
  179. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/is_awaitable.py +0 -0
  180. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/is_iterable.py +0 -0
  181. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/merge_kwargs.py +0 -0
  182. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/natural_compare.py +0 -0
  183. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/path.py +0 -0
  184. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/print_path_list.py +0 -0
  185. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/simple_pub_sub.py +0 -0
  186. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/suggestion_list.py +0 -0
  187. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/undefined.py +0 -0
  188. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/subscription/__init__.py +0 -0
  189. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/__init__.py +0 -0
  190. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/assert_name.py +0 -0
  191. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/definition.py +0 -0
  192. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/directives.py +0 -0
  193. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/scalars.py +0 -0
  194. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/schema.py +0 -0
  195. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/__init__.py +0 -0
  196. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/assert_valid_name.py +0 -0
  197. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/ast_from_value.py +0 -0
  198. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/ast_to_dict.py +0 -0
  199. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/build_ast_schema.py +0 -0
  200. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/build_client_schema.py +0 -0
  201. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/coerce_input_value.py +0 -0
  202. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/concat_ast.py +0 -0
  203. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/extend_schema.py +0 -0
  204. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/find_breaking_changes.py +0 -0
  205. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/get_operation_ast.py +0 -0
  206. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/get_operation_root_type.py +0 -0
  207. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/introspection_from_schema.py +0 -0
  208. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/lexicographic_sort_schema.py +0 -0
  209. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/print_schema.py +0 -0
  210. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/separate_operations.py +0 -0
  211. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/sort_value_node.py +0 -0
  212. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/strip_ignored_characters.py +0 -0
  213. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/type_from_ast.py +0 -0
  214. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/type_info.py +0 -0
  215. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/value_from_ast.py +0 -0
  216. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/value_from_ast_untyped.py +0 -0
  217. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/__init__.py +0 -0
  218. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/__init__.py +0 -0
  219. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/custom/__init__.py +0 -0
  220. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/custom/no_deprecated.py +0 -0
  221. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/custom/no_schema_introspection.py +0 -0
  222. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/executable_definitions.py +0 -0
  223. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/fields_on_correct_type.py +0 -0
  224. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/fragments_on_composite_types.py +0 -0
  225. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/known_argument_names.py +0 -0
  226. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/known_directives.py +0 -0
  227. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/known_fragment_names.py +0 -0
  228. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/known_type_names.py +0 -0
  229. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/lone_anonymous_operation.py +0 -0
  230. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/lone_schema_definition.py +0 -0
  231. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/max_introspection_depth_rule.py +0 -0
  232. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/no_fragment_cycles.py +0 -0
  233. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/no_undefined_variables.py +0 -0
  234. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/no_unused_fragments.py +0 -0
  235. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/no_unused_variables.py +0 -0
  236. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/overlapping_fields_can_be_merged.py +0 -0
  237. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/possible_fragment_spreads.py +0 -0
  238. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/possible_type_extensions.py +0 -0
  239. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/provided_required_arguments.py +0 -0
  240. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/scalar_leafs.py +0 -0
  241. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/single_field_subscriptions.py +0 -0
  242. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_argument_definition_names.py +0 -0
  243. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_argument_names.py +0 -0
  244. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_directive_names.py +0 -0
  245. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_directives_per_location.py +0 -0
  246. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_enum_value_names.py +0 -0
  247. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_field_definition_names.py +0 -0
  248. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_fragment_names.py +0 -0
  249. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_input_field_names.py +0 -0
  250. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_operation_names.py +0 -0
  251. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_operation_types.py +0 -0
  252. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_type_names.py +0 -0
  253. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_variable_names.py +0 -0
  254. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/values_of_correct_type.py +0 -0
  255. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/variables_are_input_types.py +0 -0
  256. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/variables_in_allowed_position.py +0 -0
  257. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/specified_rules.py +0 -0
  258. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/validate.py +0 -0
  259. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/validation_context.py +0 -0
  260. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql_core.egg-info/SOURCES.txt +0 -0
  261. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql_core.egg-info/dependency_links.txt +0 -0
  262. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql_core.egg-info/not-zip-safe +0 -0
  263. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql_core.egg-info/requires.txt +0 -0
  264. {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql_core.egg-info/top_level.txt +0 -0
  265. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/__init__.py +0 -0
  266. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/__init__.py +0 -0
  267. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_build_ast_schema.py +0 -0
  268. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_build_client_schema.py +0 -0
  269. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_introspection_from_schema.py +0 -0
  270. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_parser.py +0 -0
  271. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_repeated_fields.py +0 -0
  272. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_validate_gql.py +0 -0
  273. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_validate_sdl.py +0 -0
  274. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_visit.py +0 -0
  275. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/conftest.py +0 -0
  276. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/error/__init__.py +0 -0
  277. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/error/test_located_error.py +0 -0
  278. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/__init__.py +0 -0
  279. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_customize.py +0 -0
  280. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_execution_result.py +0 -0
  281. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_lists.py +0 -0
  282. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_map_async_iterator.py +0 -0
  283. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_middleware.py +0 -0
  284. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_sync.py +0 -0
  285. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/fixtures/__init__.py +0 -0
  286. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/fixtures/github_schema.graphql +0 -0
  287. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/fixtures/github_schema.json +0 -0
  288. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/fixtures/kitchen_sink.graphql +0 -0
  289. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/fixtures/schema_kitchen_sink.graphql +0 -0
  290. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/__init__.py +0 -0
  291. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_ast.py +0 -0
  292. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_block_string.py +0 -0
  293. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_character_classes.py +0 -0
  294. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_location.py +0 -0
  295. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_predicates.py +0 -0
  296. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_print_string.py +0 -0
  297. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/__init__.py +0 -0
  298. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_cached_property.py +0 -0
  299. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_convert_case.py +0 -0
  300. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_did_you_mean.py +0 -0
  301. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_frozen_dict.py +0 -0
  302. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_frozen_error.py +0 -0
  303. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_frozen_list.py +0 -0
  304. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_group_by.py +0 -0
  305. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_identity_func.py +0 -0
  306. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_inspect.py +0 -0
  307. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_is_awaitable.py +0 -0
  308. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_is_iterable.py +0 -0
  309. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_merge_kwargs.py +0 -0
  310. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_natural_compare.py +0 -0
  311. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_path.py +0 -0
  312. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_print_path_list.py +0 -0
  313. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_simple_pub_sub.py +0 -0
  314. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_suggestion_list.py +0 -0
  315. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_undefined.py +0 -0
  316. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/star_wars_data.py +0 -0
  317. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/star_wars_schema.py +0 -0
  318. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/test_docs.py +0 -0
  319. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/test_star_wars_query.py +0 -0
  320. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/test_star_wars_validation.py +0 -0
  321. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/test_user_registry.py +0 -0
  322. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/test_version.py +0 -0
  323. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/__init__.py +0 -0
  324. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_assert_name.py +0 -0
  325. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_custom_scalars.py +0 -0
  326. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_definition.py +0 -0
  327. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_directives.py +0 -0
  328. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_extensions.py +0 -0
  329. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_predicate.py +0 -0
  330. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_scalars.py +0 -0
  331. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/__init__.py +0 -0
  332. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_ast_from_value.py +0 -0
  333. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_coerce_input_value.py +0 -0
  334. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_sort_value_node.py +0 -0
  335. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_type_comparators.py +0 -0
  336. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_type_from_ast.py +0 -0
  337. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_value_from_ast.py +0 -0
  338. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_value_from_ast_untyped.py +0 -0
  339. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utils/dedent.py +0 -0
  340. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utils/gen_fuzz_strings.py +0 -0
  341. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utils/test_gen_fuzz_strings.py +0 -0
  342. {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/__init__.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 3.2.7
2
+ current_version = 3.2.8
3
3
  commit = False
4
4
  tag = False
5
5
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: graphql-core
3
- Version: 3.2.7
3
+ Version: 3.2.8
4
4
  Summary: GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL.
5
5
  Home-page: https://github.com/graphql-python/graphql-core
6
6
  Author: Christoph Zwerschke
@@ -50,7 +50,7 @@ a query language for APIs created by Facebook.
50
50
  ![Lint Status](https://github.com/graphql-python/graphql-core/actions/workflows/lint.yml/badge.svg)
51
51
  [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
52
52
 
53
- The current version 3.2.7 of GraphQL-core is up-to-date with GraphQL.js version 16.9.0.
53
+ The current version 3.2.8 of GraphQL-core is up-to-date with GraphQL.js version 16.9.0.
54
54
 
55
55
  An extensive test suite with over 2500 unit tests and 100% coverage comprises a
56
56
  replication of the complete test suite of GraphQL.js, making sure this port is
@@ -10,7 +10,7 @@ a query language for APIs created by Facebook.
10
10
  ![Lint Status](https://github.com/graphql-python/graphql-core/actions/workflows/lint.yml/badge.svg)
11
11
  [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
12
12
 
13
- The current version 3.2.7 of GraphQL-core is up-to-date with GraphQL.js version 16.9.0.
13
+ The current version 3.2.8 of GraphQL-core is up-to-date with GraphQL.js version 16.9.0.
14
14
 
15
15
  An extensive test suite with over 2500 unit tests and 100% coverage comprises a
16
16
  replication of the complete test suite of GraphQL.js, making sure this port is
@@ -51,7 +51,7 @@ master_doc = "index"
51
51
 
52
52
  # General information about the project.
53
53
  project = "GraphQL-core 3"
54
- copyright = "2025, Christoph Zwerschke"
54
+ copyright = "2026, Christoph Zwerschke"
55
55
  author = "Christoph Zwerschke"
56
56
 
57
57
  # The version info for the project you're documenting, acts as replacement for
@@ -61,7 +61,7 @@ author = "Christoph Zwerschke"
61
61
  # The short X.Y version.
62
62
  # version = '3.2'
63
63
  # The full version, including alpha/beta/rc tags.
64
- version = release = "3.2.7"
64
+ version = release = "3.2.8"
65
65
 
66
66
  # The language for content autogenerated by Sphinx. Refer to documentation
67
67
  # for a list of supported languages.
@@ -139,6 +139,8 @@ graphql_classes = {
139
139
  ignore_references = set(
140
140
  """
141
141
  GNT GT KT T VT
142
+ _asyncio.Future
143
+ asyncio.queues.Queue
142
144
  enum.Enum
143
145
  traceback
144
146
  types.TracebackType
@@ -1,4 +1,4 @@
1
- # This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand.
1
+ # This file is automatically @generated by Poetry 2.3.2 and should not be changed by hand.
2
2
 
3
3
  [[package]]
4
4
  name = "typing-extensions"
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "graphql-core"
3
- version = "3.2.7"
3
+ version = "3.2.8"
4
4
  description = """
5
5
  GraphQL-core is a Python port of GraphQL.js,\
6
6
  the JavaScript reference implementation for GraphQL."""
@@ -87,5 +87,5 @@ disable = [
87
87
  ]
88
88
 
89
89
  [build-system]
90
- requires = ["poetry_core>=1,<3", "setuptools>=59,<81"]
90
+ requires = ["poetry_core>=1,<3", "setuptools>=59,<83"]
91
91
  build-backend = "poetry.core.masonry.api"
@@ -5,7 +5,6 @@ from .ast import Location
5
5
  from .location import SourceLocation, get_location
6
6
  from .source import Source
7
7
 
8
-
9
8
  __all__ = ["print_location", "print_source_location"]
10
9
 
11
10
 
@@ -1,4 +1,4 @@
1
- from typing import Any, Tuple, Union
1
+ from typing import Any, Tuple, Type, Union
2
2
 
3
3
  __all__ = [
4
4
  "Description",
@@ -17,14 +17,14 @@ class Description:
17
17
  If you register(object), any object will be allowed as description.
18
18
  """
19
19
 
20
- bases: Union[type, Tuple[type, ...]] = str
20
+ bases: Union[Type[Any], Tuple[Type[Any], ...]] = str
21
21
 
22
22
  @classmethod
23
23
  def isinstance(cls, obj: Any) -> bool:
24
24
  return isinstance(obj, cls.bases)
25
25
 
26
26
  @classmethod
27
- def register(cls, base: type) -> None:
27
+ def register(cls, base: Type[Any]) -> None:
28
28
  """Register a class that shall be accepted as a description."""
29
29
  if not isinstance(base, type):
30
30
  raise TypeError("Only types can be registered.")
@@ -39,7 +39,7 @@ class Description:
39
39
  cls.bases += (base,)
40
40
 
41
41
  @classmethod
42
- def unregister(cls, base: type) -> None:
42
+ def unregister(cls, base: Type[Any]) -> None:
43
43
  """Unregister a class that shall no more be accepted as a description."""
44
44
  if not isinstance(base, type):
45
45
  raise TypeError("Only types can be unregistered.")
@@ -390,6 +390,9 @@ class TypeFields(GraphQLFieldMap):
390
390
  return type_.is_one_of if is_input_object_type(type_) else None
391
391
 
392
392
 
393
+ TypeResolvers = TypeFields # for backward compatibility
394
+
395
+
393
396
  _Type: GraphQLObjectType = GraphQLObjectType(
394
397
  name="__Type",
395
398
  description="The fundamental unit of any GraphQL Schema is the type."
@@ -154,6 +154,12 @@ class SchemaValidationContext:
154
154
  # Ensure they are named correctly.
155
155
  self.validate_name(directive)
156
156
 
157
+ if not directive.locations:
158
+ self.report_error(
159
+ f"Directive @{directive.name} must include 1 or more locations.",
160
+ directive.ast_node,
161
+ )
162
+
157
163
  # Ensure the arguments are valid.
158
164
  for arg_name, arg in directive.args.items():
159
165
  # Ensure they are named correctly.
@@ -51,8 +51,7 @@ def get_introspection_query(
51
51
  def input_deprecation(string: str) -> Optional[str]:
52
52
  return string if input_value_deprecation else ""
53
53
 
54
- return dedent(
55
- f"""
54
+ return dedent(f"""
56
55
  query IntrospectionQuery {{
57
56
  __schema {{
58
57
  {maybe_schema_description}
@@ -158,8 +157,7 @@ def get_introspection_query(
158
157
  }}
159
158
  }}
160
159
  }}
161
- """
162
- )
160
+ """)
163
161
 
164
162
 
165
163
  # Unfortunately, the following type definitions are a bit simplistic
@@ -29,12 +29,12 @@ def is_equal_type(type_a: GraphQLType, type_b: GraphQLType) -> bool:
29
29
  # If either type is non-null, the other must also be non-null.
30
30
  if is_non_null_type(type_a) and is_non_null_type(type_b):
31
31
  # noinspection PyUnresolvedReferences
32
- return is_equal_type(type_a.of_type, type_b.of_type) # type:ignore
32
+ return is_equal_type(type_a.of_type, type_b.of_type) # type: ignore
33
33
 
34
34
  # If either type is a list, the other must also be a list.
35
35
  if is_list_type(type_a) and is_list_type(type_b):
36
36
  # noinspection PyUnresolvedReferences
37
- return is_equal_type(type_a.of_type, type_b.of_type) # type:ignore
37
+ return is_equal_type(type_a.of_type, type_b.of_type) # type: ignore
38
38
 
39
39
  # Otherwise the types are not equal.
40
40
  return False
@@ -4,7 +4,7 @@ from typing import NamedTuple
4
4
  __all__ = ["version", "version_info", "version_js", "version_info_js"]
5
5
 
6
6
 
7
- version = "3.2.7"
7
+ version = "3.2.8"
8
8
 
9
9
  version_js = "16.9.0"
10
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: graphql-core
3
- Version: 3.2.7
3
+ Version: 3.2.8
4
4
  Summary: GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL.
5
5
  Home-page: https://github.com/graphql-python/graphql-core
6
6
  Author: Christoph Zwerschke
@@ -50,7 +50,7 @@ a query language for APIs created by Facebook.
50
50
  ![Lint Status](https://github.com/graphql-python/graphql-core/actions/workflows/lint.yml/badge.svg)
51
51
  [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
52
52
 
53
- The current version 3.2.7 of GraphQL-core is up-to-date with GraphQL.js version 16.9.0.
53
+ The current version 3.2.8 of GraphQL-core is up-to-date with GraphQL.js version 16.9.0.
54
54
 
55
55
  An extensive test suite with over 2500 unit tests and 100% coverage comprises a
56
56
  replication of the complete test suite of GraphQL.js, making sure this port is
@@ -7,7 +7,6 @@ from graphql import (
7
7
  graphql,
8
8
  )
9
9
 
10
-
11
10
  user = GraphQLObjectType(
12
11
  name="User",
13
12
  fields={
@@ -6,7 +6,6 @@ from graphql import (
6
6
  graphql_sync,
7
7
  )
8
8
 
9
-
10
9
  user = GraphQLObjectType(
11
10
  name="User",
12
11
  fields={
@@ -5,8 +5,7 @@ from ..fixtures import big_schema_sdl # noqa: F401
5
5
 
6
6
  def test_validate_invalid_query(benchmark, big_schema_sdl): # noqa: F811
7
7
  schema = build_schema(big_schema_sdl, assume_valid=True)
8
- query_ast = parse(
9
- """
8
+ query_ast = parse("""
10
9
  {
11
10
  unknownField
12
11
  ... on unknownType {
@@ -18,8 +17,7 @@ def test_validate_invalid_query(benchmark, big_schema_sdl): # noqa: F811
18
17
  fragment TestFragment on anotherUnknownType {
19
18
  yetAnotherUnknownField
20
19
  }
21
- """
22
- )
20
+ """)
23
21
  result = benchmark(lambda: validate(schema, query_ast))
24
22
  assert result == [
25
23
  {
@@ -13,16 +13,11 @@ from graphql.language import (
13
13
 
14
14
  from ..utils import dedent
15
15
 
16
-
17
- source = Source(
18
- dedent(
19
- """
16
+ source = Source(dedent("""
20
17
  {
21
18
  field
22
19
  }
23
- """
24
- )
25
- )
20
+ """))
26
21
 
27
22
  ast = parse(source)
28
23
  operation_node = ast.definitions[0]
@@ -298,13 +293,11 @@ def describe_to_string():
298
293
  def prints_an_error_with_nodes_from_different_sources():
299
294
  doc_a = parse(
300
295
  Source(
301
- dedent(
302
- """
296
+ dedent("""
303
297
  type Foo {
304
298
  field: String
305
299
  }
306
- """
307
- ),
300
+ """),
308
301
  "SourceA",
309
302
  )
310
303
  )
@@ -314,13 +307,11 @@ def describe_to_string():
314
307
  field_a = op_a.fields[0]
315
308
  doc_b = parse(
316
309
  Source(
317
- dedent(
318
- """
310
+ dedent("""
319
311
  type Foo {
320
312
  field: Int
321
313
  }
322
- """
323
- ),
314
+ """),
324
315
  "SourceB",
325
316
  )
326
317
  )
@@ -333,8 +324,7 @@ def describe_to_string():
333
324
  "Example error with two nodes", [field_a.type, field_b.type]
334
325
  )
335
326
 
336
- assert str(error) == dedent(
337
- """
327
+ assert str(error) == dedent("""
338
328
  Example error with two nodes
339
329
 
340
330
  SourceA:2:10
@@ -348,8 +338,7 @@ def describe_to_string():
348
338
  2 | field: Int
349
339
  | ^
350
340
  3 | }
351
- """
352
- )
341
+ """)
353
342
 
354
343
 
355
344
  def describe_formatted():
@@ -372,13 +361,11 @@ def describe_formatted():
372
361
  error = GraphQLError(
373
362
  "test message",
374
363
  Node(),
375
- Source(
376
- """
364
+ Source("""
377
365
  query {
378
366
  something
379
367
  }
380
- """
381
- ),
368
+ """),
382
369
  [16, 41],
383
370
  ["one", 2],
384
371
  ValueError("original"),
@@ -16,66 +16,56 @@ def describe_print_location():
16
16
  minified_source,
17
17
  SourceLocation(1, minified_source.body.index("FIRST_ERROR_HERE") + 1),
18
18
  )
19
- assert first_location == dedent(
20
- """
19
+ assert first_location == dedent("""
21
20
  GraphQL request:1:53
22
21
  1 | query SomeMinifiedQueryWithErrorInside($foo:String!=FIRST_ERROR_HERE$bar:String)
23
22
  | ^
24
23
  | {someField(foo:$foo bar:$bar baz:SECOND_ERROR_HERE){fieldA fieldB{fieldC fieldD.
25
- """ # noqa: E501
26
- )
24
+ """) # noqa: E501
27
25
 
28
26
  second_location = print_source_location(
29
27
  minified_source,
30
28
  SourceLocation(1, minified_source.body.index("SECOND_ERROR_HERE") + 1),
31
29
  )
32
- assert second_location == dedent(
33
- """
30
+ assert second_location == dedent("""
34
31
  GraphQL request:1:114
35
32
  1 | query SomeMinifiedQueryWithErrorInside($foo:String!=FIRST_ERROR_HERE$bar:String)
36
33
  | {someField(foo:$foo bar:$bar baz:SECOND_ERROR_HERE){fieldA fieldB{fieldC fieldD.
37
34
  | ^
38
35
  | ..on THIRD_ERROR_HERE}}}
39
- """ # noqa: E501
40
- )
36
+ """) # noqa: E501
41
37
 
42
38
  third_location = print_source_location(
43
39
  minified_source,
44
40
  SourceLocation(1, minified_source.body.index("THIRD_ERROR_HERE") + 1),
45
41
  )
46
- assert third_location == dedent(
47
- """
42
+ assert third_location == dedent("""
48
43
  GraphQL request:1:166
49
44
  1 | query SomeMinifiedQueryWithErrorInside($foo:String!=FIRST_ERROR_HERE$bar:String)
50
45
  | {someField(foo:$foo bar:$bar baz:SECOND_ERROR_HERE){fieldA fieldB{fieldC fieldD.
51
46
  | ..on THIRD_ERROR_HERE}}}
52
47
  | ^
53
- """ # noqa: E501
54
- )
48
+ """) # noqa: E501
55
49
 
56
50
  def prints_single_digit_line_number_with_no_padding():
57
51
  result = print_source_location(
58
52
  Source("*", "Test", SourceLocation(9, 1)), SourceLocation(1, 1)
59
53
  )
60
54
 
61
- assert result == dedent(
62
- """
55
+ assert result == dedent("""
63
56
  Test:9:1
64
57
  9 | *
65
58
  | ^
66
- """
67
- )
59
+ """)
68
60
 
69
61
  def prints_line_numbers_with_correct_padding():
70
62
  result = print_source_location(
71
63
  Source("*\n", "Test", SourceLocation(9, 1)), SourceLocation(1, 1)
72
64
  )
73
65
 
74
- assert result == dedent(
75
- """
66
+ assert result == dedent("""
76
67
  Test:9:1
77
68
  9 | *
78
69
  | ^
79
70
  10 |
80
- """
81
- )
71
+ """)
@@ -482,8 +482,7 @@ def describe_execute_handles_synchronous_execution_of_abstract_types():
482
482
 
483
483
  def describe_union_type():
484
484
 
485
- schema = build_schema(
486
- """
485
+ schema = build_schema("""
487
486
  type Query {
488
487
  pets: [Pet]
489
488
  }
@@ -499,8 +498,7 @@ def describe_execute_handles_synchronous_execution_of_abstract_types():
499
498
  name: String
500
499
  woofs: Boolean
501
500
  }
502
- """
503
- )
501
+ """)
504
502
 
505
503
  query = """
506
504
  {
@@ -523,8 +521,7 @@ def describe_execute_handles_synchronous_execution_of_abstract_types():
523
521
  assert await execute_query(sync, schema, query, root_value) == expected
524
522
 
525
523
  def describe_interface_type():
526
- schema = build_schema(
527
- """
524
+ schema = build_schema("""
528
525
  type Query {
529
526
  pets: [Pet]
530
527
  }
@@ -542,8 +539,7 @@ def describe_execute_handles_synchronous_execution_of_abstract_types():
542
539
  name: String
543
540
  woofs: Boolean
544
541
  }
545
- """
546
- )
542
+ """)
547
543
 
548
544
  query = """
549
545
  {
@@ -566,8 +562,7 @@ def describe_execute_handles_synchronous_execution_of_abstract_types():
566
562
  assert await execute_query(sync, schema, query, root_value) == expected
567
563
 
568
564
  def resolve_type_on_interface_yields_useful_error():
569
- schema = build_schema(
570
- """
565
+ schema = build_schema("""
571
566
  type Query {
572
567
  pet: Pet
573
568
  }
@@ -583,18 +578,15 @@ def describe_execute_handles_synchronous_execution_of_abstract_types():
583
578
  type Dog implements Pet {
584
579
  name: String
585
580
  }
586
- """
587
- )
581
+ """)
588
582
 
589
- document = parse(
590
- """
583
+ document = parse("""
591
584
  {
592
585
  pet {
593
586
  name
594
587
  }
595
588
  }
596
- """
597
- )
589
+ """)
598
590
 
599
591
  def expect_error(for_type_name: Any, message: str) -> None:
600
592
  root_value = {"pet": {"__typename": for_type_name}}