graphql-core 3.2.5__tar.gz → 3.2.6__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 (339) hide show
  1. {graphql_core-3.2.5 → graphql_core-3.2.6}/.bumpversion.cfg +1 -1
  2. {graphql_core-3.2.5 → graphql_core-3.2.6}/PKG-INFO +23 -7
  3. {graphql_core-3.2.5 → graphql_core-3.2.6}/README.md +10 -5
  4. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/conf.py +2 -2
  5. {graphql_core-3.2.5 → graphql_core-3.2.6}/poetry.lock +2 -2
  6. {graphql_core-3.2.5 → graphql_core-3.2.6}/pyproject.toml +4 -4
  7. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/execution/values.py +14 -4
  8. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/parser.py +8 -7
  9. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/visitor.py +2 -3
  10. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/type/definition.py +3 -3
  11. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/type/schema.py +23 -11
  12. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/version.py +1 -1
  13. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql_core.egg-info/PKG-INFO +23 -7
  14. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_abstract.py +2 -4
  15. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_resolve.py +89 -2
  16. {graphql_core-3.2.5 → graphql_core-3.2.6}/tox.ini +11 -11
  17. {graphql_core-3.2.5 → graphql_core-3.2.6}/.coveragerc +0 -0
  18. {graphql_core-3.2.5 → graphql_core-3.2.6}/.editorconfig +0 -0
  19. {graphql_core-3.2.5 → graphql_core-3.2.6}/.flake8 +0 -0
  20. {graphql_core-3.2.5 → graphql_core-3.2.6}/.mypy.ini +0 -0
  21. {graphql_core-3.2.5 → graphql_core-3.2.6}/.readthedocs.yaml +0 -0
  22. {graphql_core-3.2.5 → graphql_core-3.2.6}/CODEOWNERS +0 -0
  23. {graphql_core-3.2.5 → graphql_core-3.2.6}/LICENSE +0 -0
  24. {graphql_core-3.2.5 → graphql_core-3.2.6}/MANIFEST.in +0 -0
  25. {graphql_core-3.2.5 → graphql_core-3.2.6}/SECURITY.md +0 -0
  26. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/Makefile +0 -0
  27. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/diffs.rst +0 -0
  28. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/index.rst +0 -0
  29. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/intro.rst +0 -0
  30. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/make.bat +0 -0
  31. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/modules/error.rst +0 -0
  32. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/modules/execution.rst +0 -0
  33. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/modules/graphql.rst +0 -0
  34. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/modules/language.rst +0 -0
  35. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/modules/pyutils.rst +0 -0
  36. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/modules/type.rst +0 -0
  37. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/modules/utilities.rst +0 -0
  38. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/modules/validation.rst +0 -0
  39. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/requirements.txt +0 -0
  40. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/usage/extension.rst +0 -0
  41. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/usage/index.rst +0 -0
  42. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/usage/introspection.rst +0 -0
  43. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/usage/methods.rst +0 -0
  44. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/usage/other.rst +0 -0
  45. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/usage/parser.rst +0 -0
  46. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/usage/queries.rst +0 -0
  47. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/usage/resolvers.rst +0 -0
  48. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/usage/schema.rst +0 -0
  49. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/usage/sdl.rst +0 -0
  50. {graphql_core-3.2.5 → graphql_core-3.2.6}/docs/usage/validator.rst +0 -0
  51. {graphql_core-3.2.5 → graphql_core-3.2.6}/setup.cfg +0 -0
  52. {graphql_core-3.2.5 → graphql_core-3.2.6}/setup.py +0 -0
  53. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/__init__.py +0 -0
  54. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/error/__init__.py +0 -0
  55. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/error/graphql_error.py +0 -0
  56. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/error/located_error.py +0 -0
  57. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/error/syntax_error.py +0 -0
  58. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/execution/__init__.py +0 -0
  59. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/execution/collect_fields.py +0 -0
  60. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/execution/execute.py +0 -0
  61. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/execution/map_async_iterator.py +0 -0
  62. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/execution/middleware.py +0 -0
  63. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/execution/subscribe.py +0 -0
  64. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/graphql.py +0 -0
  65. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/__init__.py +0 -0
  66. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/ast.py +0 -0
  67. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/block_string.py +0 -0
  68. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/character_classes.py +0 -0
  69. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/directive_locations.py +0 -0
  70. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/lexer.py +0 -0
  71. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/location.py +0 -0
  72. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/predicates.py +0 -0
  73. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/print_location.py +0 -0
  74. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/print_string.py +0 -0
  75. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/printer.py +0 -0
  76. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/source.py +0 -0
  77. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/language/token_kind.py +0 -0
  78. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/py.typed +0 -0
  79. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/__init__.py +0 -0
  80. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/awaitable_or_value.py +0 -0
  81. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/cached_property.py +0 -0
  82. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/convert_case.py +0 -0
  83. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/description.py +0 -0
  84. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/did_you_mean.py +0 -0
  85. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/frozen_dict.py +0 -0
  86. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/frozen_error.py +0 -0
  87. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/frozen_list.py +0 -0
  88. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/group_by.py +0 -0
  89. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/identity_func.py +0 -0
  90. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/inspect.py +0 -0
  91. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/is_awaitable.py +0 -0
  92. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/is_iterable.py +0 -0
  93. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/merge_kwargs.py +0 -0
  94. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/natural_compare.py +0 -0
  95. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/path.py +0 -0
  96. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/print_path_list.py +0 -0
  97. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/simple_pub_sub.py +0 -0
  98. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/suggestion_list.py +0 -0
  99. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/pyutils/undefined.py +0 -0
  100. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/subscription/__init__.py +0 -0
  101. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/type/__init__.py +0 -0
  102. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/type/assert_name.py +0 -0
  103. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/type/directives.py +0 -0
  104. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/type/introspection.py +0 -0
  105. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/type/scalars.py +0 -0
  106. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/type/validate.py +0 -0
  107. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/__init__.py +0 -0
  108. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/assert_valid_name.py +0 -0
  109. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/ast_from_value.py +0 -0
  110. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/ast_to_dict.py +0 -0
  111. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/build_ast_schema.py +0 -0
  112. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/build_client_schema.py +0 -0
  113. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/coerce_input_value.py +0 -0
  114. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/concat_ast.py +0 -0
  115. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/extend_schema.py +0 -0
  116. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/find_breaking_changes.py +0 -0
  117. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/get_introspection_query.py +0 -0
  118. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/get_operation_ast.py +0 -0
  119. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/get_operation_root_type.py +0 -0
  120. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/introspection_from_schema.py +0 -0
  121. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/lexicographic_sort_schema.py +0 -0
  122. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/print_schema.py +0 -0
  123. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/separate_operations.py +0 -0
  124. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/sort_value_node.py +0 -0
  125. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/strip_ignored_characters.py +0 -0
  126. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/type_comparators.py +0 -0
  127. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/type_from_ast.py +0 -0
  128. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/type_info.py +0 -0
  129. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/value_from_ast.py +0 -0
  130. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/utilities/value_from_ast_untyped.py +0 -0
  131. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/__init__.py +0 -0
  132. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/__init__.py +0 -0
  133. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/custom/__init__.py +0 -0
  134. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/custom/no_deprecated.py +0 -0
  135. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/custom/no_schema_introspection.py +0 -0
  136. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/executable_definitions.py +0 -0
  137. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/fields_on_correct_type.py +0 -0
  138. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/fragments_on_composite_types.py +0 -0
  139. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/known_argument_names.py +0 -0
  140. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/known_directives.py +0 -0
  141. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/known_fragment_names.py +0 -0
  142. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/known_type_names.py +0 -0
  143. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/lone_anonymous_operation.py +0 -0
  144. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/lone_schema_definition.py +0 -0
  145. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/no_fragment_cycles.py +0 -0
  146. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/no_undefined_variables.py +0 -0
  147. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/no_unused_fragments.py +0 -0
  148. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/no_unused_variables.py +0 -0
  149. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/overlapping_fields_can_be_merged.py +0 -0
  150. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/possible_fragment_spreads.py +0 -0
  151. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/possible_type_extensions.py +0 -0
  152. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/provided_required_arguments.py +0 -0
  153. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/scalar_leafs.py +0 -0
  154. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/single_field_subscriptions.py +0 -0
  155. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_argument_definition_names.py +0 -0
  156. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_argument_names.py +0 -0
  157. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_directive_names.py +0 -0
  158. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_directives_per_location.py +0 -0
  159. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_enum_value_names.py +0 -0
  160. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_field_definition_names.py +0 -0
  161. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_fragment_names.py +0 -0
  162. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_input_field_names.py +0 -0
  163. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_operation_names.py +0 -0
  164. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_operation_types.py +0 -0
  165. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_type_names.py +0 -0
  166. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_variable_names.py +0 -0
  167. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/values_of_correct_type.py +0 -0
  168. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/variables_are_input_types.py +0 -0
  169. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/rules/variables_in_allowed_position.py +0 -0
  170. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/specified_rules.py +0 -0
  171. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/validate.py +0 -0
  172. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql/validation/validation_context.py +0 -0
  173. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql_core.egg-info/SOURCES.txt +0 -0
  174. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql_core.egg-info/dependency_links.txt +0 -0
  175. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql_core.egg-info/not-zip-safe +0 -0
  176. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql_core.egg-info/requires.txt +0 -0
  177. {graphql_core-3.2.5 → graphql_core-3.2.6}/src/graphql_core.egg-info/top_level.txt +0 -0
  178. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/__init__.py +0 -0
  179. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/benchmarks/__init__.py +0 -0
  180. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/benchmarks/test_build_ast_schema.py +0 -0
  181. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/benchmarks/test_build_client_schema.py +0 -0
  182. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/benchmarks/test_execution_async.py +0 -0
  183. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/benchmarks/test_execution_sync.py +0 -0
  184. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/benchmarks/test_introspection_from_schema.py +0 -0
  185. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/benchmarks/test_parser.py +0 -0
  186. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/benchmarks/test_repeated_fields.py +0 -0
  187. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/benchmarks/test_validate_gql.py +0 -0
  188. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/benchmarks/test_validate_invalid_gql.py +0 -0
  189. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/benchmarks/test_validate_sdl.py +0 -0
  190. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/benchmarks/test_visit.py +0 -0
  191. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/conftest.py +0 -0
  192. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/error/__init__.py +0 -0
  193. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/error/test_graphql_error.py +0 -0
  194. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/error/test_located_error.py +0 -0
  195. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/error/test_print_location.py +0 -0
  196. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/__init__.py +0 -0
  197. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_customize.py +0 -0
  198. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_directives.py +0 -0
  199. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_execution_result.py +0 -0
  200. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_executor.py +0 -0
  201. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_lists.py +0 -0
  202. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_map_async_iterator.py +0 -0
  203. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_middleware.py +0 -0
  204. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_mutations.py +0 -0
  205. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_nonnull.py +0 -0
  206. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_parallel.py +0 -0
  207. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_schema.py +0 -0
  208. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_subscribe.py +0 -0
  209. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_sync.py +0 -0
  210. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_union_interface.py +0 -0
  211. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/execution/test_variables.py +0 -0
  212. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/fixtures/__init__.py +0 -0
  213. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/fixtures/github_schema.graphql +0 -0
  214. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/fixtures/github_schema.json +0 -0
  215. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/fixtures/kitchen_sink.graphql +0 -0
  216. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/fixtures/schema_kitchen_sink.graphql +0 -0
  217. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/__init__.py +0 -0
  218. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_ast.py +0 -0
  219. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_block_string.py +0 -0
  220. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_block_string_fuzz.py +0 -0
  221. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_character_classes.py +0 -0
  222. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_lexer.py +0 -0
  223. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_location.py +0 -0
  224. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_parser.py +0 -0
  225. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_predicates.py +0 -0
  226. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_print_string.py +0 -0
  227. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_printer.py +0 -0
  228. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_schema_parser.py +0 -0
  229. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_schema_printer.py +0 -0
  230. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_source.py +0 -0
  231. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/language/test_visitor.py +0 -0
  232. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/__init__.py +0 -0
  233. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_cached_property.py +0 -0
  234. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_convert_case.py +0 -0
  235. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_description.py +0 -0
  236. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_did_you_mean.py +0 -0
  237. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_frozen_dict.py +0 -0
  238. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_frozen_error.py +0 -0
  239. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_frozen_list.py +0 -0
  240. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_group_by.py +0 -0
  241. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_identity_func.py +0 -0
  242. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_inspect.py +0 -0
  243. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_is_awaitable.py +0 -0
  244. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_is_iterable.py +0 -0
  245. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_merge_kwargs.py +0 -0
  246. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_natural_compare.py +0 -0
  247. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_path.py +0 -0
  248. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_print_path_list.py +0 -0
  249. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_simple_pub_sub.py +0 -0
  250. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_suggestion_list.py +0 -0
  251. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/pyutils/test_undefined.py +0 -0
  252. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/star_wars_data.py +0 -0
  253. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/star_wars_schema.py +0 -0
  254. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/test_docs.py +0 -0
  255. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/test_star_wars_introspection.py +0 -0
  256. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/test_star_wars_query.py +0 -0
  257. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/test_star_wars_validation.py +0 -0
  258. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/test_user_registry.py +0 -0
  259. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/test_version.py +0 -0
  260. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/type/__init__.py +0 -0
  261. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/type/test_assert_name.py +0 -0
  262. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/type/test_custom_scalars.py +0 -0
  263. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/type/test_definition.py +0 -0
  264. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/type/test_directives.py +0 -0
  265. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/type/test_enum.py +0 -0
  266. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/type/test_extensions.py +0 -0
  267. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/type/test_introspection.py +0 -0
  268. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/type/test_predicate.py +0 -0
  269. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/type/test_scalars.py +0 -0
  270. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/type/test_schema.py +0 -0
  271. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/type/test_validation.py +0 -0
  272. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/__init__.py +0 -0
  273. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_ast_from_value.py +0 -0
  274. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_ast_to_dict.py +0 -0
  275. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_build_ast_schema.py +0 -0
  276. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_build_client_schema.py +0 -0
  277. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_coerce_input_value.py +0 -0
  278. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_concat_ast.py +0 -0
  279. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_extend_schema.py +0 -0
  280. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_find_breaking_changes.py +0 -0
  281. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_get_introspection_query.py +0 -0
  282. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_get_operation_ast.py +0 -0
  283. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_get_operation_root_type.py +0 -0
  284. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_introspection_from_schema.py +0 -0
  285. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_lexicographic_sort_schema.py +0 -0
  286. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_print_schema.py +0 -0
  287. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_separate_operations.py +0 -0
  288. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_sort_value_node.py +0 -0
  289. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_strip_ignored_characters.py +0 -0
  290. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_strip_ignored_characters_fuzz.py +0 -0
  291. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_type_comparators.py +0 -0
  292. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_type_from_ast.py +0 -0
  293. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_type_info.py +0 -0
  294. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_value_from_ast.py +0 -0
  295. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utilities/test_value_from_ast_untyped.py +0 -0
  296. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utils/__init__.py +0 -0
  297. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utils/dedent.py +0 -0
  298. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utils/gen_fuzz_strings.py +0 -0
  299. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utils/test_dedent.py +0 -0
  300. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/utils/test_gen_fuzz_strings.py +0 -0
  301. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/__init__.py +0 -0
  302. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/harness.py +0 -0
  303. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_executable_definitions.py +0 -0
  304. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_fields_on_correct_type.py +0 -0
  305. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_fragments_on_composite_types.py +0 -0
  306. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_known_argument_names.py +0 -0
  307. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_known_directives.py +0 -0
  308. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_known_fragment_names.py +0 -0
  309. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_known_type_names.py +0 -0
  310. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_lone_anonymous_operation.py +0 -0
  311. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_lone_schema_definition.py +0 -0
  312. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_no_deprecated.py +0 -0
  313. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_no_fragment_cycles.py +0 -0
  314. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_no_schema_introspection.py +0 -0
  315. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_no_undefined_variables.py +0 -0
  316. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_no_unused_fragments.py +0 -0
  317. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_no_unused_variables.py +0 -0
  318. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_overlapping_fields_can_be_merged.py +0 -0
  319. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_possible_fragment_spreads.py +0 -0
  320. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_possible_type_extensions.py +0 -0
  321. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_provided_required_arguments.py +0 -0
  322. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_scalar_leafs.py +0 -0
  323. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_single_field_subscriptions.py +0 -0
  324. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_unique_argument_definition_names.py +0 -0
  325. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_unique_argument_names.py +0 -0
  326. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_unique_directive_names.py +0 -0
  327. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_unique_directives_per_location.py +0 -0
  328. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_unique_enum_value_names.py +0 -0
  329. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_unique_field_definition_names.py +0 -0
  330. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_unique_fragment_names.py +0 -0
  331. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_unique_input_field_names.py +0 -0
  332. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_unique_operation_names.py +0 -0
  333. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_unique_operation_types.py +0 -0
  334. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_unique_type_names.py +0 -0
  335. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_unique_variable_names.py +0 -0
  336. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_validation.py +0 -0
  337. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_values_of_correct_type.py +0 -0
  338. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_variables_are_input_types.py +0 -0
  339. {graphql_core-3.2.5 → graphql_core-3.2.6}/tests/validation/test_variables_in_allowed_position.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 3.2.5
2
+ current_version = 3.2.6
3
3
  commit = False
4
4
  tag = False
5
5
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: graphql-core
3
- Version: 3.2.5
3
+ Version: 3.2.6
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
@@ -25,6 +25,17 @@ Requires-Python: >=3.6,<4
25
25
  Description-Content-Type: text/markdown
26
26
  License-File: LICENSE
27
27
  Requires-Dist: typing-extensions<5,>=4; python_version < "3.10"
28
+ Dynamic: author
29
+ Dynamic: author-email
30
+ Dynamic: classifier
31
+ Dynamic: description
32
+ Dynamic: description-content-type
33
+ Dynamic: home-page
34
+ Dynamic: keywords
35
+ Dynamic: license
36
+ Dynamic: requires-dist
37
+ Dynamic: requires-python
38
+ Dynamic: summary
28
39
 
29
40
  # GraphQL-core 3
30
41
 
@@ -38,13 +49,18 @@ a query language for APIs created by Facebook.
38
49
  ![Lint Status](https://github.com/graphql-python/graphql-core/actions/workflows/lint.yml/badge.svg)
39
50
  [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
40
51
 
41
- The current version 3.2.5 of GraphQL-core is up-to-date with GraphQL.js version 16.8.2.
52
+ The current version 3.2.6 of GraphQL-core is up-to-date with GraphQL.js version 16.8.2.
42
53
 
43
- An extensive test suite with over 2300 unit tests and 100% coverage comprises a
54
+ An extensive test suite with over 2500 unit tests and 100% coverage comprises a
44
55
  replication of the complete test suite of GraphQL.js, making sure this port is
45
56
  reliable and compatible with GraphQL.js.
46
57
 
47
- Note that for various reasons, GraphQL-core does not use SemVer like GraphQL.js. Increases in the major version of GraphQL.js are reflected in the minor version of GraphQL-core instead. This means there can be breaking changes in the API when the minor version changes, and only patch releases are fully backward compatible. Therefore, we recommend something like `=~ 3.2.0` as version specifier when including GraphQL-core as a dependency.
58
+ Note that for various reasons, GraphQL-core does not use SemVer like GraphQL.js.
59
+ Changes in the major version of GraphQL.js are reflected in the minor version of
60
+ GraphQL-core instead. This means there can be breaking changes in the API
61
+ when the minor version changes, and only patch releases are fully backward compatible.
62
+ Therefore, we recommend using something like `~= 3.2.0` as the version specifier
63
+ when including GraphQL-core as a dependency.
48
64
 
49
65
 
50
66
  ## Documentation
@@ -76,8 +92,8 @@ GraphQL-core 3 can be installed from PyPI using the built-in pip command:
76
92
 
77
93
  python -m pip install graphql-core
78
94
 
79
- You can also use [poetry](https://github.com/python-poetry/poetry) for installation in a
80
- virtual environment:
95
+ You can also use [poetry](https://github.com/python-poetry/poetry) for installation
96
+ in a virtual environment:
81
97
 
82
98
  poetry install
83
99
 
@@ -10,13 +10,18 @@ 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.5 of GraphQL-core is up-to-date with GraphQL.js version 16.8.2.
13
+ The current version 3.2.6 of GraphQL-core is up-to-date with GraphQL.js version 16.8.2.
14
14
 
15
- An extensive test suite with over 2300 unit tests and 100% coverage comprises a
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
17
17
  reliable and compatible with GraphQL.js.
18
18
 
19
- Note that for various reasons, GraphQL-core does not use SemVer like GraphQL.js. Increases in the major version of GraphQL.js are reflected in the minor version of GraphQL-core instead. This means there can be breaking changes in the API when the minor version changes, and only patch releases are fully backward compatible. Therefore, we recommend something like `=~ 3.2.0` as version specifier when including GraphQL-core as a dependency.
19
+ Note that for various reasons, GraphQL-core does not use SemVer like GraphQL.js.
20
+ Changes in the major version of GraphQL.js are reflected in the minor version of
21
+ GraphQL-core instead. This means there can be breaking changes in the API
22
+ when the minor version changes, and only patch releases are fully backward compatible.
23
+ Therefore, we recommend using something like `~= 3.2.0` as the version specifier
24
+ when including GraphQL-core as a dependency.
20
25
 
21
26
 
22
27
  ## Documentation
@@ -48,8 +53,8 @@ GraphQL-core 3 can be installed from PyPI using the built-in pip command:
48
53
 
49
54
  python -m pip install graphql-core
50
55
 
51
- You can also use [poetry](https://github.com/python-poetry/poetry) for installation in a
52
- virtual environment:
56
+ You can also use [poetry](https://github.com/python-poetry/poetry) for installation
57
+ in a virtual environment:
53
58
 
54
59
  poetry install
55
60
 
@@ -51,7 +51,7 @@ master_doc = "index"
51
51
 
52
52
  # General information about the project.
53
53
  project = "GraphQL-core 3"
54
- copyright = "2024, Christoph Zwerschke"
54
+ copyright = "2025, 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.5"
64
+ version = release = "3.2.6"
65
65
 
66
66
  # The language for content autogenerated by Sphinx. Refer to documentation
67
67
  # for a list of supported languages.
@@ -1,4 +1,4 @@
1
- # This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand.
1
+ # This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
2
2
 
3
3
  [[package]]
4
4
  name = "typing-extensions"
@@ -14,4 +14,4 @@ files = [
14
14
  [metadata]
15
15
  lock-version = "2.0"
16
16
  python-versions = "^3.6"
17
- content-hash = "b8109651bbaf9410f0f7414200846c7a806e72dc7c5ab3c1698348b12f6d252a"
17
+ content-hash = "101c4a8c58c012e2a35491927fc7f20dd2ec86a7d7297998be0bf6c4b12204af"
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "graphql-core"
3
- version = "3.2.5"
3
+ version = "3.2.6"
4
4
  description = """
5
5
  GraphQL-core is a Python port of GraphQL.js,\
6
6
  the JavaScript reference implementation for GraphQL."""
@@ -49,11 +49,11 @@ packages = [
49
49
  [tool.poetry.dependencies]
50
50
  python = "^3.6"
51
51
  typing-extensions = [
52
- { version = ">=4,<5", python = "<3.10" }
52
+ { version = ">=4.1,<5", python = "<3.10" }
53
53
  ]
54
54
 
55
55
  [tool.black]
56
- target-version = ['py36', 'py37', 'py38', 'py39', 'py310', 'py311', 'py312']
56
+ target-version = ['py36', 'py37', 'py38', 'py39', 'py310', 'py311', 'py312', 'py313']
57
57
 
58
58
  [tool.pyright]
59
59
  reportIncompatibleVariableOverride = false
@@ -77,5 +77,5 @@ disable = [
77
77
  ]
78
78
 
79
79
  [build-system]
80
- requires = ["poetry_core>=1,<2", "setuptools>=59,<70"]
80
+ requires = ["poetry_core>=1,<3", "setuptools>=59,<76"]
81
81
  build-backend = "poetry.core.masonry.api"
@@ -23,6 +23,7 @@ from ..type import (
23
23
  GraphQLField,
24
24
  GraphQLInputType,
25
25
  GraphQLSchema,
26
+ is_input_object_type,
26
27
  is_input_type,
27
28
  is_non_null_type,
28
29
  )
@@ -160,8 +161,13 @@ def get_argument_values(
160
161
  argument_node = arg_node_map.get(name)
161
162
 
162
163
  if argument_node is None:
163
- if arg_def.default_value is not Undefined:
164
- coerced_values[arg_def.out_name or name] = arg_def.default_value
164
+ value = arg_def.default_value
165
+ if value is not Undefined:
166
+ if is_input_object_type(arg_def.type):
167
+ # coerce input value so that out_names are used
168
+ value = coerce_input_value(value, arg_def.type)
169
+
170
+ coerced_values[arg_def.out_name or name] = value
165
171
  elif is_non_null_type(arg_type): # pragma: no cover else
166
172
  raise GraphQLError(
167
173
  f"Argument '{name}' of required type '{arg_type}'"
@@ -176,8 +182,12 @@ def get_argument_values(
176
182
  if isinstance(value_node, VariableNode):
177
183
  variable_name = value_node.name.value
178
184
  if variable_values is None or variable_name not in variable_values:
179
- if arg_def.default_value is not Undefined:
180
- coerced_values[arg_def.out_name or name] = arg_def.default_value
185
+ value = arg_def.default_value
186
+ if value is not Undefined:
187
+ if is_input_object_type(arg_def.type):
188
+ # coerce input value so that out_names are used
189
+ value = coerce_input_value(value, arg_def.type)
190
+ coerced_values[arg_def.out_name or name] = value
181
191
  elif is_non_null_type(arg_type): # pragma: no cover else
182
192
  raise GraphQLError(
183
193
  f"Argument '{name}' of required type '{arg_type}'"
@@ -1,6 +1,7 @@
1
- from typing import Callable, Dict, List, Optional, Union, TypeVar, cast
2
1
  from functools import partial
2
+ from typing import Callable, Dict, List, Optional, TypeVar, Union, cast
3
3
 
4
+ from ..error import GraphQLError, GraphQLSyntaxError
4
5
  from .ast import (
5
6
  ArgumentNode,
6
7
  BooleanValueNode,
@@ -24,14 +25,14 @@ from .ast import (
24
25
  InputObjectTypeDefinitionNode,
25
26
  InputObjectTypeExtensionNode,
26
27
  InputValueDefinitionNode,
27
- IntValueNode,
28
28
  InterfaceTypeDefinitionNode,
29
29
  InterfaceTypeExtensionNode,
30
+ IntValueNode,
30
31
  ListTypeNode,
31
32
  ListValueNode,
32
33
  Location,
33
- NameNode,
34
34
  NamedTypeNode,
35
+ NameNode,
35
36
  NonNullTypeNode,
36
37
  NullValueNode,
37
38
  ObjectFieldNode,
@@ -48,6 +49,7 @@ from .ast import (
48
49
  SelectionNode,
49
50
  SelectionSetNode,
50
51
  StringValueNode,
52
+ Token,
51
53
  TypeNode,
52
54
  TypeSystemExtensionNode,
53
55
  UnionTypeDefinitionNode,
@@ -57,11 +59,9 @@ from .ast import (
57
59
  VariableNode,
58
60
  )
59
61
  from .directive_locations import DirectiveLocation
60
- from .ast import Token
61
62
  from .lexer import Lexer, is_punctuator_token_kind
62
63
  from .source import Source, is_source
63
64
  from .token_kind import TokenKind
64
- from ..error import GraphQLError, GraphQLSyntaxError
65
65
 
66
66
  __all__ = ["parse", "parse_type", "parse_value", "parse_const_value"]
67
67
 
@@ -401,8 +401,9 @@ class Parser:
401
401
  def parse_arguments(self, is_const: bool) -> List[ArgumentNode]:
402
402
  """Arguments[Const]: (Argument[?Const]+)"""
403
403
  item = self.parse_const_argument if is_const else self.parse_argument
404
- item = cast(Callable[[], ArgumentNode], item)
405
- return self.optional_many(TokenKind.PAREN_L, item, TokenKind.PAREN_R)
404
+ return self.optional_many(
405
+ TokenKind.PAREN_L, cast(Callable[[], ArgumentNode], item), TokenKind.PAREN_R
406
+ )
406
407
 
407
408
  def parse_argument(self, is_const: bool = False) -> ArgumentNode:
408
409
  """Argument[Const]: Name : Value[?Const]"""
@@ -14,8 +14,7 @@ from typing import (
14
14
 
15
15
  from ..pyutils import inspect, snake_to_camel
16
16
  from . import ast
17
-
18
- from .ast import Node, QUERY_DOCUMENT_KEYS
17
+ from .ast import QUERY_DOCUMENT_KEYS, Node
19
18
 
20
19
  __all__ = [
21
20
  "Visitor",
@@ -288,7 +287,7 @@ def visit(
288
287
  else:
289
288
  stack = Stack(in_array, idx, keys, edits, stack)
290
289
  in_array = isinstance(node, tuple)
291
- keys = node if in_array else visitor_keys.get(node.kind, ())
290
+ keys = node if in_array else visitor_keys.get(node.kind, ()) # type: ignore
292
291
  idx = -1
293
292
  edits = []
294
293
  if parent:
@@ -1389,7 +1389,7 @@ class GraphQLInputObjectType(GraphQLNamedType):
1389
1389
 
1390
1390
  Example::
1391
1391
 
1392
- NonNullFloat = GraphQLNonNull(GraphQLFloat())
1392
+ NonNullFloat = GraphQLNonNull(GraphQLFloat)
1393
1393
 
1394
1394
  class GeoPoint(GraphQLInputObjectType):
1395
1395
  name = 'GeoPoint'
@@ -1397,7 +1397,7 @@ class GraphQLInputObjectType(GraphQLNamedType):
1397
1397
  'lat': GraphQLInputField(NonNullFloat),
1398
1398
  'lon': GraphQLInputField(NonNullFloat),
1399
1399
  'alt': GraphQLInputField(
1400
- GraphQLFloat(), default_value=0)
1400
+ GraphQLFloat, default_value=0)
1401
1401
  }
1402
1402
 
1403
1403
  The outbound values will be Python dictionaries by default, but you can have them
@@ -1651,7 +1651,7 @@ class GraphQLNonNull(GraphQLWrappingType[GNT], Generic[GNT]):
1651
1651
  class RowType(GraphQLObjectType):
1652
1652
  name = 'Row'
1653
1653
  fields = {
1654
- 'id': GraphQLField(GraphQLNonNull(GraphQLString()))
1654
+ 'id': GraphQLField(GraphQLNonNull(GraphQLString))
1655
1655
  }
1656
1656
 
1657
1657
  Note: the enforcement of non-nullability occurs within the executor.
@@ -13,16 +13,17 @@ from typing import (
13
13
  )
14
14
 
15
15
  from ..error import GraphQLError
16
- from ..language import ast, OperationType
16
+ from ..language import OperationType, ast
17
17
  from ..pyutils import inspect, is_collection, is_description
18
18
  from .definition import (
19
19
  GraphQLAbstractType,
20
- GraphQLInterfaceType,
21
20
  GraphQLInputObjectType,
21
+ GraphQLInputType,
22
+ GraphQLInterfaceType,
22
23
  GraphQLNamedType,
23
24
  GraphQLObjectType,
24
- GraphQLUnionType,
25
25
  GraphQLType,
26
+ GraphQLUnionType,
26
27
  GraphQLWrappingType,
27
28
  get_named_type,
28
29
  is_input_object_type,
@@ -31,7 +32,7 @@ from .definition import (
31
32
  is_union_type,
32
33
  is_wrapping_type,
33
34
  )
34
- from .directives import GraphQLDirective, specified_directives, is_directive
35
+ from .directives import GraphQLDirective, is_directive, specified_directives
35
36
  from .introspection import introspection_types
36
37
 
37
38
  try:
@@ -310,8 +311,8 @@ class GraphQLSchema:
310
311
  def __deepcopy__(self, memo_: Dict) -> "GraphQLSchema":
311
312
  from ..type import (
312
313
  is_introspection_type,
313
- is_specified_scalar_type,
314
314
  is_specified_directive,
315
+ is_specified_scalar_type,
315
316
  )
316
317
 
317
318
  type_map: TypeMap = {
@@ -326,6 +327,8 @@ class GraphQLSchema:
326
327
  directive if is_specified_directive(directive) else copy(directive)
327
328
  for directive in self.directives
328
329
  ]
330
+ for directive in directives:
331
+ remap_directive(directive, type_map)
329
332
  return self.__class__(
330
333
  self.query_type and cast(GraphQLObjectType, type_map[self.query_type.name]),
331
334
  self.mutation_type
@@ -461,12 +464,7 @@ def remapped_type(type_: GraphQLType, type_map: TypeMap) -> GraphQLType:
461
464
 
462
465
  def remap_named_type(type_: GraphQLNamedType, type_map: TypeMap) -> None:
463
466
  """Change all references in the given named type to use this type map."""
464
- if is_union_type(type_):
465
- type_ = cast(GraphQLUnionType, type_)
466
- type_.types = [
467
- type_map.get(member_type.name, member_type) for member_type in type_.types
468
- ]
469
- elif is_object_type(type_) or is_interface_type(type_):
467
+ if is_object_type(type_) or is_interface_type(type_):
470
468
  type_ = cast(Union[GraphQLObjectType, GraphQLInterfaceType], type_)
471
469
  type_.interfaces = [
472
470
  type_map.get(interface_type.name, interface_type)
@@ -482,6 +480,11 @@ def remap_named_type(type_: GraphQLNamedType, type_map: TypeMap) -> None:
482
480
  arg.type = remapped_type(arg.type, type_map)
483
481
  args[arg_name] = arg
484
482
  fields[field_name] = field
483
+ elif is_union_type(type_):
484
+ type_ = cast(GraphQLUnionType, type_)
485
+ type_.types = [
486
+ type_map.get(member_type.name, member_type) for member_type in type_.types
487
+ ]
485
488
  elif is_input_object_type(type_):
486
489
  type_ = cast(GraphQLInputObjectType, type_)
487
490
  fields = type_.fields
@@ -489,3 +492,12 @@ def remap_named_type(type_: GraphQLNamedType, type_map: TypeMap) -> None:
489
492
  field = copy(field)
490
493
  field.type = remapped_type(field.type, type_map)
491
494
  fields[field_name] = field
495
+
496
+
497
+ def remap_directive(directive: GraphQLDirective, type_map: TypeMap) -> None:
498
+ """Change all references in the given directive to use this type map."""
499
+ args = directive.args
500
+ for arg_name, arg in args.items():
501
+ arg = copy(arg) # noqa: PLW2901
502
+ arg.type = cast(GraphQLInputType, remapped_type(arg.type, type_map))
503
+ args[arg_name] = arg
@@ -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.5"
7
+ version = "3.2.6"
8
8
 
9
9
  version_js = "16.8.2"
10
10
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: graphql-core
3
- Version: 3.2.5
3
+ Version: 3.2.6
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
@@ -25,6 +25,17 @@ Requires-Python: >=3.6,<4
25
25
  Description-Content-Type: text/markdown
26
26
  License-File: LICENSE
27
27
  Requires-Dist: typing-extensions<5,>=4; python_version < "3.10"
28
+ Dynamic: author
29
+ Dynamic: author-email
30
+ Dynamic: classifier
31
+ Dynamic: description
32
+ Dynamic: description-content-type
33
+ Dynamic: home-page
34
+ Dynamic: keywords
35
+ Dynamic: license
36
+ Dynamic: requires-dist
37
+ Dynamic: requires-python
38
+ Dynamic: summary
28
39
 
29
40
  # GraphQL-core 3
30
41
 
@@ -38,13 +49,18 @@ a query language for APIs created by Facebook.
38
49
  ![Lint Status](https://github.com/graphql-python/graphql-core/actions/workflows/lint.yml/badge.svg)
39
50
  [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
40
51
 
41
- The current version 3.2.5 of GraphQL-core is up-to-date with GraphQL.js version 16.8.2.
52
+ The current version 3.2.6 of GraphQL-core is up-to-date with GraphQL.js version 16.8.2.
42
53
 
43
- An extensive test suite with over 2300 unit tests and 100% coverage comprises a
54
+ An extensive test suite with over 2500 unit tests and 100% coverage comprises a
44
55
  replication of the complete test suite of GraphQL.js, making sure this port is
45
56
  reliable and compatible with GraphQL.js.
46
57
 
47
- Note that for various reasons, GraphQL-core does not use SemVer like GraphQL.js. Increases in the major version of GraphQL.js are reflected in the minor version of GraphQL-core instead. This means there can be breaking changes in the API when the minor version changes, and only patch releases are fully backward compatible. Therefore, we recommend something like `=~ 3.2.0` as version specifier when including GraphQL-core as a dependency.
58
+ Note that for various reasons, GraphQL-core does not use SemVer like GraphQL.js.
59
+ Changes in the major version of GraphQL.js are reflected in the minor version of
60
+ GraphQL-core instead. This means there can be breaking changes in the API
61
+ when the minor version changes, and only patch releases are fully backward compatible.
62
+ Therefore, we recommend using something like `~= 3.2.0` as the version specifier
63
+ when including GraphQL-core as a dependency.
48
64
 
49
65
 
50
66
  ## Documentation
@@ -76,8 +92,8 @@ GraphQL-core 3 can be installed from PyPI using the built-in pip command:
76
92
 
77
93
  python -m pip install graphql-core
78
94
 
79
- You can also use [poetry](https://github.com/python-poetry/poetry) for installation in a
80
- virtual environment:
95
+ You can also use [poetry](https://github.com/python-poetry/poetry) for installation
96
+ in a virtual environment:
81
97
 
82
98
  poetry install
83
99
 
@@ -3,7 +3,7 @@ from typing import Any, NamedTuple, Optional
3
3
 
4
4
  from pytest import mark
5
5
 
6
- from graphql.execution import execute, execute_sync, ExecutionResult
6
+ from graphql.execution import ExecutionResult, execute, execute_sync
7
7
  from graphql.language import parse
8
8
  from graphql.type import (
9
9
  GraphQLBoolean,
@@ -40,9 +40,7 @@ async def execute_query(
40
40
  assert isinstance(schema, GraphQLSchema)
41
41
  assert isinstance(query, str)
42
42
  document = parse(query)
43
- result = (execute_sync if sync else execute)(
44
- schema, document, root_value
45
- ) # type: ignore
43
+ result = (execute_sync if sync else execute)(schema, document, root_value)
46
44
  if not sync and isawaitable(result):
47
45
  result = await result
48
46
  assert isinstance(result, ExecutionResult)
@@ -2,14 +2,16 @@ from collections import ChainMap
2
2
  from typing import Any
3
3
 
4
4
  from graphql.error import GraphQLError
5
- from graphql.execution import execute_sync, ExecutionResult
6
- from graphql.language import parse, SourceLocation
5
+ from graphql.execution import ExecutionResult, execute_sync
6
+ from graphql.language import SourceLocation, parse
7
7
  from graphql.type import (
8
8
  GraphQLArgument,
9
9
  GraphQLField,
10
+ GraphQLID,
10
11
  GraphQLInputField,
11
12
  GraphQLInputObjectType,
12
13
  GraphQLInt,
14
+ GraphQLList,
13
15
  GraphQLObjectType,
14
16
  GraphQLSchema,
15
17
  GraphQLString,
@@ -213,6 +215,91 @@ def describe_execute_resolve_function():
213
215
  None,
214
216
  )
215
217
 
218
+ def transforms_default_values_using_out_names():
219
+ # This is an extension of GraphQL.js.
220
+ resolver_kwargs: Any
221
+
222
+ def search_resolver(_obj: None, _info, **kwargs):
223
+ nonlocal resolver_kwargs
224
+ resolver_kwargs = kwargs
225
+ return [{"id": "42"}]
226
+
227
+ filters_type = GraphQLInputObjectType(
228
+ "SearchFilters",
229
+ {"pageSize": GraphQLInputField(GraphQLInt, out_name="page_size")},
230
+ )
231
+ result_type = GraphQLObjectType("SearchResult", {"id": GraphQLField(GraphQLID)})
232
+ query = GraphQLObjectType(
233
+ "Query",
234
+ {
235
+ "search": GraphQLField(
236
+ GraphQLList(result_type),
237
+ {
238
+ "searchFilters": GraphQLArgument(
239
+ filters_type, {"pageSize": 10}, out_name="search_filters"
240
+ )
241
+ },
242
+ resolve=search_resolver,
243
+ )
244
+ },
245
+ )
246
+ schema = GraphQLSchema(query)
247
+
248
+ resolver_kwargs = None
249
+ result = execute_sync(schema, parse("{ search { id } }"))
250
+ assert result == ({"search": [{"id": "42"}]}, None)
251
+ assert resolver_kwargs == {"search_filters": {"page_size": 10}}
252
+
253
+ resolver_kwargs = None
254
+ result = execute_sync(
255
+ schema, parse("{ search(searchFilters:{pageSize: 25}) { id } }")
256
+ )
257
+ assert result == ({"search": [{"id": "42"}]}, None)
258
+ assert resolver_kwargs == {"search_filters": {"page_size": 25}}
259
+
260
+ resolver_kwargs = None
261
+ result = execute_sync(
262
+ schema,
263
+ parse(
264
+ """
265
+ query ($searchFilters: SearchFilters) {
266
+ search(searchFilters: $searchFilters) { id }
267
+ }
268
+ """
269
+ ),
270
+ )
271
+ assert result == ({"search": [{"id": "42"}]}, None)
272
+ assert resolver_kwargs == {"search_filters": {"page_size": 10}}
273
+
274
+ resolver_kwargs = None
275
+ result = execute_sync(
276
+ schema,
277
+ parse(
278
+ """
279
+ query ($searchFilters: SearchFilters) {
280
+ search(searchFilters: $searchFilters) { id }
281
+ }
282
+ """
283
+ ),
284
+ variable_values={"searchFilters": {"pageSize": 25}},
285
+ )
286
+ assert result == ({"search": [{"id": "42"}]}, None)
287
+ assert resolver_kwargs == {"search_filters": {"page_size": 25}}
288
+
289
+ resolver_kwargs = None
290
+ result = execute_sync(
291
+ schema,
292
+ parse(
293
+ """
294
+ query ($searchFilters: SearchFilters = {pageSize: 25}) {
295
+ search(searchFilters: $searchFilters) { id }
296
+ }
297
+ """
298
+ ),
299
+ )
300
+ assert result == ({"search": [{"id": "42"}]}, None)
301
+ assert resolver_kwargs == {"search_filters": {"page_size": 25}}
302
+
216
303
  def pass_error_from_resolver_wrapped_as_located_graphql_error():
217
304
  def resolve(_obj, _info):
218
305
  raise ValueError("Some error")
@@ -19,9 +19,9 @@ python =
19
19
 
20
20
  [testenv:black]
21
21
  basepython = python3.12
22
- deps = black==24.8.0
22
+ deps = black==24.10.0
23
23
  commands =
24
- black src tests setup.py -t py311 --check
24
+ black src tests setup.py -t py312 --check
25
25
 
26
26
  [testenv:flake8]
27
27
  basepython = python3.12
@@ -32,7 +32,7 @@ commands =
32
32
  [testenv:mypy]
33
33
  basepython = python3.12
34
34
  deps =
35
- mypy>=1.11,<2
35
+ mypy>=1.14,<2
36
36
  pytest>=8.3,<9
37
37
  commands =
38
38
  mypy src tests
@@ -40,28 +40,28 @@ commands =
40
40
  [testenv:docs]
41
41
  basepython = python3.12
42
42
  deps =
43
- sphinx>=7,<8
44
- sphinx_rtd_theme>=2.0,<3
43
+ sphinx>=8,<9
44
+ sphinx_rtd_theme>=3,<4
45
45
  commands =
46
46
  sphinx-build -b html -nEW docs docs/_build/html
47
47
 
48
48
  [testenv:manifest]
49
49
  basepython = python3.12
50
- deps = check-manifest>=0.49,<1
50
+ deps = check-manifest>=0.50,<1
51
51
  commands =
52
52
  check-manifest -v
53
53
 
54
54
  [testenv]
55
55
  deps =
56
56
  pytest>=6.2,<9
57
- pytest-asyncio>=0.16,<0.24
58
- pytest-benchmark>=3.4,<5
59
- pytest-cov>=4,<6
57
+ pytest-asyncio>=0.16,<1
58
+ pytest-benchmark>=3.4,<6
59
+ pytest-cov>=4,<7
60
60
  pytest-describe>=2,<3
61
61
  pytest-timeout>=2,<3
62
- py3{6,7,8,9}, pypy39: typing-extensions>=4,<5
62
+ py3{6,7,8,9},pypy39: typing-extensions>=4.1,<5
63
63
  commands =
64
64
  # to also run the time-consuming tests: tox -e py311 -- --run-slow
65
65
  # to run the benchmarks: tox -e py311 -- -k benchmarks --benchmark-enable
66
- py3{6,7,8,9,10,11,13}, pypy3{9,10}: pytest tests {posargs}
66
+ py3{6,7,8,9,10,11,13},pypy3{9,10}: pytest tests {posargs}
67
67
  py312: pytest tests {posargs: --cov-report=term-missing --cov=graphql --cov=tests --cov-fail-under=100}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes