graphql-core 3.2.4__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.
- {graphql-core-3.2.4 → graphql_core-3.2.6}/.bumpversion.cfg +1 -1
- {graphql-core-3.2.4 → graphql_core-3.2.6}/PKG-INFO +27 -7
- {graphql-core-3.2.4 → graphql_core-3.2.6}/README.md +10 -5
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/conf.py +2 -2
- graphql_core-3.2.6/docs/requirements.txt +2 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/poetry.lock +2 -2
- {graphql-core-3.2.4 → graphql_core-3.2.6}/pyproject.toml +6 -5
- {graphql-core-3.2.4 → graphql_core-3.2.6}/setup.py +6 -2
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/execution/values.py +14 -4
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/parser.py +8 -7
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/visitor.py +2 -3
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/type/definition.py +3 -3
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/type/directives.py +4 -4
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/type/schema.py +23 -11
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/version.py +1 -1
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql_core.egg-info/PKG-INFO +27 -7
- graphql_core-3.2.6/src/graphql_core.egg-info/requires.txt +3 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_abstract.py +2 -4
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_resolve.py +89 -2
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_build_ast_schema.py +12 -12
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_print_schema.py +6 -6
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tox.ini +18 -17
- graphql-core-3.2.4/docs/requirements.txt +0 -2
- graphql-core-3.2.4/src/graphql_core.egg-info/requires.txt +0 -3
- {graphql-core-3.2.4 → graphql_core-3.2.6}/.coveragerc +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/.editorconfig +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/.flake8 +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/.mypy.ini +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/.readthedocs.yaml +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/CODEOWNERS +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/LICENSE +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/MANIFEST.in +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/SECURITY.md +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/Makefile +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/diffs.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/index.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/intro.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/make.bat +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/modules/error.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/modules/execution.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/modules/graphql.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/modules/language.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/modules/pyutils.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/modules/type.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/modules/utilities.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/modules/validation.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/usage/extension.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/usage/index.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/usage/introspection.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/usage/methods.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/usage/other.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/usage/parser.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/usage/queries.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/usage/resolvers.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/usage/schema.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/usage/sdl.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/docs/usage/validator.rst +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/setup.cfg +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/error/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/error/graphql_error.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/error/located_error.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/error/syntax_error.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/execution/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/execution/collect_fields.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/execution/execute.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/execution/map_async_iterator.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/execution/middleware.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/execution/subscribe.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/graphql.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/ast.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/block_string.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/character_classes.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/directive_locations.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/lexer.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/location.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/predicates.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/print_location.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/print_string.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/printer.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/source.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/language/token_kind.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/py.typed +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/awaitable_or_value.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/cached_property.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/convert_case.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/description.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/did_you_mean.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/frozen_dict.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/frozen_error.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/frozen_list.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/group_by.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/identity_func.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/inspect.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/is_awaitable.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/is_iterable.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/merge_kwargs.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/natural_compare.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/path.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/print_path_list.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/simple_pub_sub.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/suggestion_list.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/pyutils/undefined.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/subscription/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/type/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/type/assert_name.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/type/introspection.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/type/scalars.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/type/validate.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/assert_valid_name.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/ast_from_value.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/ast_to_dict.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/build_ast_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/build_client_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/coerce_input_value.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/concat_ast.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/extend_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/find_breaking_changes.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/get_introspection_query.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/get_operation_ast.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/get_operation_root_type.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/introspection_from_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/lexicographic_sort_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/print_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/separate_operations.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/sort_value_node.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/strip_ignored_characters.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/type_comparators.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/type_from_ast.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/type_info.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/value_from_ast.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/utilities/value_from_ast_untyped.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/custom/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/custom/no_deprecated.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/custom/no_schema_introspection.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/executable_definitions.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/fields_on_correct_type.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/fragments_on_composite_types.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/known_argument_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/known_directives.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/known_fragment_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/known_type_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/lone_anonymous_operation.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/lone_schema_definition.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/no_fragment_cycles.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/no_undefined_variables.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/no_unused_fragments.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/no_unused_variables.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/overlapping_fields_can_be_merged.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/possible_fragment_spreads.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/possible_type_extensions.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/provided_required_arguments.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/scalar_leafs.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/single_field_subscriptions.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_argument_definition_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_argument_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_directive_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_directives_per_location.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_enum_value_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_field_definition_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_fragment_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_input_field_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_operation_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_operation_types.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_type_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/unique_variable_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/values_of_correct_type.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/variables_are_input_types.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/rules/variables_in_allowed_position.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/specified_rules.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/validate.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql/validation/validation_context.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql_core.egg-info/SOURCES.txt +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql_core.egg-info/dependency_links.txt +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql_core.egg-info/not-zip-safe +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/src/graphql_core.egg-info/top_level.txt +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/benchmarks/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/benchmarks/test_build_ast_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/benchmarks/test_build_client_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/benchmarks/test_execution_async.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/benchmarks/test_execution_sync.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/benchmarks/test_introspection_from_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/benchmarks/test_parser.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/benchmarks/test_repeated_fields.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/benchmarks/test_validate_gql.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/benchmarks/test_validate_invalid_gql.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/benchmarks/test_validate_sdl.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/benchmarks/test_visit.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/conftest.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/error/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/error/test_graphql_error.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/error/test_located_error.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/error/test_print_location.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_customize.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_directives.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_execution_result.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_executor.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_lists.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_map_async_iterator.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_middleware.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_mutations.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_nonnull.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_parallel.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_subscribe.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_sync.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_union_interface.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/execution/test_variables.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/fixtures/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/fixtures/github_schema.graphql +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/fixtures/github_schema.json +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/fixtures/kitchen_sink.graphql +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/fixtures/schema_kitchen_sink.graphql +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_ast.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_block_string.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_block_string_fuzz.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_character_classes.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_lexer.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_location.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_parser.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_predicates.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_print_string.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_printer.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_schema_parser.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_schema_printer.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_source.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/language/test_visitor.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_cached_property.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_convert_case.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_description.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_did_you_mean.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_frozen_dict.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_frozen_error.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_frozen_list.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_group_by.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_identity_func.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_inspect.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_is_awaitable.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_is_iterable.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_merge_kwargs.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_natural_compare.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_path.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_print_path_list.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_simple_pub_sub.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_suggestion_list.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/pyutils/test_undefined.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/star_wars_data.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/star_wars_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/test_docs.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/test_star_wars_introspection.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/test_star_wars_query.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/test_star_wars_validation.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/test_user_registry.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/test_version.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/type/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/type/test_assert_name.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/type/test_custom_scalars.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/type/test_definition.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/type/test_directives.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/type/test_enum.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/type/test_extensions.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/type/test_introspection.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/type/test_predicate.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/type/test_scalars.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/type/test_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/type/test_validation.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_ast_from_value.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_ast_to_dict.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_build_client_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_coerce_input_value.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_concat_ast.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_extend_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_find_breaking_changes.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_get_introspection_query.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_get_operation_ast.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_get_operation_root_type.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_introspection_from_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_lexicographic_sort_schema.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_separate_operations.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_sort_value_node.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_strip_ignored_characters.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_strip_ignored_characters_fuzz.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_type_comparators.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_type_from_ast.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_type_info.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_value_from_ast.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utilities/test_value_from_ast_untyped.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utils/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utils/dedent.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utils/gen_fuzz_strings.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utils/test_dedent.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/utils/test_gen_fuzz_strings.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/__init__.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/harness.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_executable_definitions.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_fields_on_correct_type.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_fragments_on_composite_types.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_known_argument_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_known_directives.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_known_fragment_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_known_type_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_lone_anonymous_operation.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_lone_schema_definition.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_no_deprecated.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_no_fragment_cycles.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_no_schema_introspection.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_no_undefined_variables.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_no_unused_fragments.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_no_unused_variables.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_overlapping_fields_can_be_merged.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_possible_fragment_spreads.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_possible_type_extensions.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_provided_required_arguments.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_scalar_leafs.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_single_field_subscriptions.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_unique_argument_definition_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_unique_argument_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_unique_directive_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_unique_directives_per_location.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_unique_enum_value_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_unique_field_definition_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_unique_fragment_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_unique_input_field_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_unique_operation_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_unique_operation_types.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_unique_type_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_unique_variable_names.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_validation.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_values_of_correct_type.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_variables_are_input_types.py +0 -0
- {graphql-core-3.2.4 → graphql_core-3.2.6}/tests/validation/test_variables_in_allowed_position.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: graphql-core
|
|
3
|
-
Version: 3.2.
|
|
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
|
|
@@ -18,9 +18,24 @@ Classifier: Programming Language :: Python :: 3.7
|
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.8
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.9
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
24
|
Requires-Python: >=3.6,<4
|
|
22
25
|
Description-Content-Type: text/markdown
|
|
23
26
|
License-File: LICENSE
|
|
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
|
|
24
39
|
|
|
25
40
|
# GraphQL-core 3
|
|
26
41
|
|
|
@@ -34,13 +49,18 @@ a query language for APIs created by Facebook.
|
|
|
34
49
|

|
|
35
50
|
[](https://github.com/ambv/black)
|
|
36
51
|
|
|
37
|
-
The current version 3.2.
|
|
52
|
+
The current version 3.2.6 of GraphQL-core is up-to-date with GraphQL.js version 16.8.2.
|
|
38
53
|
|
|
39
|
-
An extensive test suite with over
|
|
54
|
+
An extensive test suite with over 2500 unit tests and 100% coverage comprises a
|
|
40
55
|
replication of the complete test suite of GraphQL.js, making sure this port is
|
|
41
56
|
reliable and compatible with GraphQL.js.
|
|
42
57
|
|
|
43
|
-
Note that for various reasons, GraphQL-core does not use SemVer like GraphQL.js.
|
|
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.
|
|
44
64
|
|
|
45
65
|
|
|
46
66
|
## Documentation
|
|
@@ -72,8 +92,8 @@ GraphQL-core 3 can be installed from PyPI using the built-in pip command:
|
|
|
72
92
|
|
|
73
93
|
python -m pip install graphql-core
|
|
74
94
|
|
|
75
|
-
You can also use [poetry](https://github.com/python-poetry/poetry) for installation
|
|
76
|
-
virtual environment:
|
|
95
|
+
You can also use [poetry](https://github.com/python-poetry/poetry) for installation
|
|
96
|
+
in a virtual environment:
|
|
77
97
|
|
|
78
98
|
poetry install
|
|
79
99
|
|
|
@@ -10,13 +10,18 @@ a query language for APIs created by Facebook.
|
|
|
10
10
|

|
|
11
11
|
[](https://github.com/ambv/black)
|
|
12
12
|
|
|
13
|
-
The current version 3.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
|
|
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.
|
|
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
|
|
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 = "
|
|
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.
|
|
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.
|
|
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 = "
|
|
17
|
+
content-hash = "101c4a8c58c012e2a35491927fc7f20dd2ec86a7d7297998be0bf6c4b12204af"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "graphql-core"
|
|
3
|
-
version = "3.2.
|
|
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."""
|
|
@@ -24,7 +24,8 @@ classifiers = [
|
|
|
24
24
|
"Programming Language :: Python :: 3.9",
|
|
25
25
|
"Programming Language :: Python :: 3.10",
|
|
26
26
|
"Programming Language :: Python :: 3.11",
|
|
27
|
-
"Programming Language :: Python :: 3.12"
|
|
27
|
+
"Programming Language :: Python :: 3.12",
|
|
28
|
+
"Programming Language :: Python :: 3.13"
|
|
28
29
|
]
|
|
29
30
|
packages = [
|
|
30
31
|
{ include = "graphql", from = "src" },
|
|
@@ -48,11 +49,11 @@ packages = [
|
|
|
48
49
|
[tool.poetry.dependencies]
|
|
49
50
|
python = "^3.6"
|
|
50
51
|
typing-extensions = [
|
|
51
|
-
{ version = ">=4,<5", python = "<3.10" }
|
|
52
|
+
{ version = ">=4.1,<5", python = "<3.10" }
|
|
52
53
|
]
|
|
53
54
|
|
|
54
55
|
[tool.black]
|
|
55
|
-
target-version = ['py36', 'py37', 'py38', 'py39', 'py310', 'py311', 'py312']
|
|
56
|
+
target-version = ['py36', 'py37', 'py38', 'py39', 'py310', 'py311', 'py312', 'py313']
|
|
56
57
|
|
|
57
58
|
[tool.pyright]
|
|
58
59
|
reportIncompatibleVariableOverride = false
|
|
@@ -76,5 +77,5 @@ disable = [
|
|
|
76
77
|
]
|
|
77
78
|
|
|
78
79
|
[build-system]
|
|
79
|
-
requires = ["poetry_core>=1,<
|
|
80
|
+
requires = ["poetry_core>=1,<3", "setuptools>=59,<76"]
|
|
80
81
|
build-backend = "poetry.core.masonry.api"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from re import search
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
from setuptools import find_packages, setup
|
|
3
4
|
|
|
4
5
|
with open("src/graphql/version.py") as version_file:
|
|
5
6
|
version = search('version = "(.*)"', version_file.read()).group(1)
|
|
@@ -31,9 +32,12 @@ setup(
|
|
|
31
32
|
"Programming Language :: Python :: 3.8",
|
|
32
33
|
"Programming Language :: Python :: 3.9",
|
|
33
34
|
"Programming Language :: Python :: 3.10",
|
|
35
|
+
"Programming Language :: Python :: 3.11",
|
|
36
|
+
"Programming Language :: Python :: 3.12",
|
|
37
|
+
"Programming Language :: Python :: 3.13",
|
|
34
38
|
],
|
|
35
39
|
install_requires=[
|
|
36
|
-
"typing-extensions>=4
|
|
40
|
+
"typing-extensions>=4,<5; python_version < '3.10'",
|
|
37
41
|
],
|
|
38
42
|
python_requires=">=3.6,<4",
|
|
39
43
|
packages=find_packages("src"),
|
|
@@ -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
|
-
|
|
164
|
-
|
|
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
|
-
|
|
180
|
-
|
|
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
|
-
|
|
405
|
-
|
|
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
|
|
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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from typing import Any, Collection, Dict, Optional, Tuple, cast
|
|
2
2
|
|
|
3
|
-
from ..language import
|
|
3
|
+
from ..language import DirectiveLocation, ast
|
|
4
4
|
from ..pyutils import inspect, is_description
|
|
5
5
|
from .assert_name import assert_name
|
|
6
6
|
from .definition import GraphQLArgument, GraphQLInputType, GraphQLNonNull, is_input_type
|
|
@@ -224,17 +224,17 @@ GraphQLDeprecatedDirective = GraphQLDirective(
|
|
|
224
224
|
description="Marks an element of a GraphQL schema as no longer supported.",
|
|
225
225
|
)
|
|
226
226
|
|
|
227
|
-
# Used to provide a URL for specifying the
|
|
227
|
+
# Used to provide a URL for specifying the behavior of custom scalar definitions:
|
|
228
228
|
GraphQLSpecifiedByDirective = GraphQLDirective(
|
|
229
229
|
name="specifiedBy",
|
|
230
230
|
locations=[DirectiveLocation.SCALAR],
|
|
231
231
|
args={
|
|
232
232
|
"url": GraphQLArgument(
|
|
233
233
|
GraphQLNonNull(GraphQLString),
|
|
234
|
-
description="The URL that specifies the
|
|
234
|
+
description="The URL that specifies the behavior of this scalar.",
|
|
235
235
|
)
|
|
236
236
|
},
|
|
237
|
-
description="Exposes a URL that specifies the
|
|
237
|
+
description="Exposes a URL that specifies the behavior of this scalar.",
|
|
238
238
|
)
|
|
239
239
|
|
|
240
240
|
|
|
@@ -13,16 +13,17 @@ from typing import (
|
|
|
13
13
|
)
|
|
14
14
|
|
|
15
15
|
from ..error import GraphQLError
|
|
16
|
-
from ..language import
|
|
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,
|
|
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
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: graphql-core
|
|
3
|
-
Version: 3.2.
|
|
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
|
|
@@ -18,9 +18,24 @@ Classifier: Programming Language :: Python :: 3.7
|
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.8
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.9
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
24
|
Requires-Python: >=3.6,<4
|
|
22
25
|
Description-Content-Type: text/markdown
|
|
23
26
|
License-File: LICENSE
|
|
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
|
|
24
39
|
|
|
25
40
|
# GraphQL-core 3
|
|
26
41
|
|
|
@@ -34,13 +49,18 @@ a query language for APIs created by Facebook.
|
|
|
34
49
|

|
|
35
50
|
[](https://github.com/ambv/black)
|
|
36
51
|
|
|
37
|
-
The current version 3.2.
|
|
52
|
+
The current version 3.2.6 of GraphQL-core is up-to-date with GraphQL.js version 16.8.2.
|
|
38
53
|
|
|
39
|
-
An extensive test suite with over
|
|
54
|
+
An extensive test suite with over 2500 unit tests and 100% coverage comprises a
|
|
40
55
|
replication of the complete test suite of GraphQL.js, making sure this port is
|
|
41
56
|
reliable and compatible with GraphQL.js.
|
|
42
57
|
|
|
43
|
-
Note that for various reasons, GraphQL-core does not use SemVer like GraphQL.js.
|
|
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.
|
|
44
64
|
|
|
45
65
|
|
|
46
66
|
## Documentation
|
|
@@ -72,8 +92,8 @@ GraphQL-core 3 can be installed from PyPI using the built-in pip command:
|
|
|
72
92
|
|
|
73
93
|
python -m pip install graphql-core
|
|
74
94
|
|
|
75
|
-
You can also use [poetry](https://github.com/python-poetry/poetry) for installation
|
|
76
|
-
virtual environment:
|
|
95
|
+
You can also use [poetry](https://github.com/python-poetry/poetry) for installation
|
|
96
|
+
in a virtual environment:
|
|
77
97
|
|
|
78
98
|
poetry install
|
|
79
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
|
|
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)
|