graphql-core 3.2.7__tar.gz → 3.2.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {graphql_core-3.2.7 → graphql_core-3.2.8}/.bumpversion.cfg +1 -1
- {graphql_core-3.2.7 → graphql_core-3.2.8}/PKG-INFO +2 -2
- {graphql_core-3.2.7 → graphql_core-3.2.8}/README.md +1 -1
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/conf.py +4 -2
- {graphql_core-3.2.7 → graphql_core-3.2.8}/poetry.lock +1 -1
- {graphql_core-3.2.7 → graphql_core-3.2.8}/pyproject.toml +2 -2
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/print_location.py +0 -1
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/description.py +4 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/introspection.py +3 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/validate.py +6 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/get_introspection_query.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/type_comparators.py +2 -2
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/version.py +1 -1
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql_core.egg-info/PKG-INFO +2 -2
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_execution_async.py +0 -1
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_execution_sync.py +0 -1
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_validate_invalid_gql.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/error/test_graphql_error.py +10 -23
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/error/test_print_location.py +10 -20
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_abstract.py +8 -16
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_directives.py +30 -60
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_executor.py +34 -68
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_mutations.py +4 -8
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_nonnull.py +16 -32
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_one_of.py +2 -5
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_parallel.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_resolve.py +6 -12
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_schema.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_subscribe.py +6 -12
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_union_interface.py +14 -28
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_variables.py +48 -96
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_block_string_fuzz.py +4 -8
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_lexer.py +10 -23
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_parser.py +20 -44
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_printer.py +14 -28
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_schema_parser.py +22 -44
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_schema_printer.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_source.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_visitor.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_description.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/test_star_wars_introspection.py +18 -36
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_enum.py +6 -12
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_introspection.py +30 -60
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_schema.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_validation.py +215 -405
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_ast_to_dict.py +8 -16
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_build_ast_schema.py +126 -254
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_build_client_schema.py +56 -112
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_concat_ast.py +6 -12
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_extend_schema.py +160 -324
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_find_breaking_changes.py +126 -252
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_get_introspection_query.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_get_operation_ast.py +8 -16
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_get_operation_root_type.py +2 -5
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_introspection_from_schema.py +4 -8
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_lexicographic_sort_schema.py +40 -80
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_print_schema.py +72 -144
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_separate_operations.py +24 -50
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_strip_ignored_characters.py +12 -24
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_strip_ignored_characters_fuzz.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_type_info.py +8 -17
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utils/__init__.py +0 -1
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utils/test_dedent.py +14 -45
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/harness.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_executable_definitions.py +4 -8
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_fields_on_correct_type.py +34 -68
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_fragments_on_composite_types.py +12 -24
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_known_argument_names.py +22 -44
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_known_directives.py +22 -44
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_known_fragment_names.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_known_type_names.py +6 -12
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_lone_anonymous_operation.py +8 -16
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_lone_schema_definition.py +12 -24
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_max_introspection_depth_rule.py +8 -16
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_no_deprecated.py +30 -60
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_no_fragment_cycles.py +10 -20
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_no_schema_introspection.py +6 -12
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_no_undefined_variables.py +14 -28
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_no_unused_fragments.py +4 -8
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_no_unused_variables.py +12 -24
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_overlapping_fields_can_be_merged.py +38 -76
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_possible_fragment_spreads.py +28 -56
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_possible_type_extensions.py +10 -20
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_provided_required_arguments.py +34 -68
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_scalar_leafs.py +4 -8
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_single_field_subscriptions.py +10 -20
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_argument_definition_names.py +6 -12
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_argument_names.py +18 -36
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_directive_names.py +8 -16
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_directives_per_location.py +14 -28
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_enum_value_names.py +10 -20
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_field_definition_names.py +14 -28
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_fragment_names.py +10 -20
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_input_field_names.py +8 -16
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_operation_names.py +12 -24
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_operation_types.py +14 -28
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_type_names.py +8 -16
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_unique_variable_names.py +2 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_validation.py +10 -20
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_values_of_correct_type.py +76 -152
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_variables_are_input_types.py +4 -8
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/test_variables_in_allowed_position.py +30 -60
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tox.ini +4 -4
- {graphql_core-3.2.7 → graphql_core-3.2.8}/.coveragerc +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/.editorconfig +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/.flake8 +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/.mypy.ini +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/.readthedocs.yaml +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/CODEOWNERS +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/LICENSE +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/MANIFEST.in +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/SECURITY.md +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/Makefile +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/diffs.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/index.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/intro.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/make.bat +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/error.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/execution.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/graphql.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/language.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/pyutils.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/type.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/utilities.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/modules/validation.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/requirements.txt +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/extension.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/index.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/introspection.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/methods.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/other.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/parser.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/queries.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/resolvers.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/schema.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/sdl.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/docs/usage/validator.rst +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/setup.cfg +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/setup.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/error/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/error/graphql_error.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/error/located_error.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/error/syntax_error.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/collect_fields.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/execute.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/map_async_iterator.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/middleware.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/subscribe.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/execution/values.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/graphql.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/ast.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/block_string.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/character_classes.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/directive_locations.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/lexer.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/location.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/parser.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/predicates.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/print_string.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/printer.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/source.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/token_kind.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/language/visitor.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/py.typed +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/awaitable_or_value.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/cached_property.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/convert_case.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/did_you_mean.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/frozen_dict.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/frozen_error.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/frozen_list.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/group_by.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/identity_func.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/inspect.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/is_awaitable.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/is_iterable.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/merge_kwargs.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/natural_compare.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/path.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/print_path_list.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/simple_pub_sub.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/suggestion_list.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/pyutils/undefined.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/subscription/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/assert_name.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/definition.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/directives.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/scalars.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/type/schema.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/assert_valid_name.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/ast_from_value.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/ast_to_dict.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/build_ast_schema.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/build_client_schema.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/coerce_input_value.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/concat_ast.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/extend_schema.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/find_breaking_changes.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/get_operation_ast.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/get_operation_root_type.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/introspection_from_schema.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/lexicographic_sort_schema.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/print_schema.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/separate_operations.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/sort_value_node.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/strip_ignored_characters.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/type_from_ast.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/type_info.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/value_from_ast.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/utilities/value_from_ast_untyped.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/custom/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/custom/no_deprecated.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/custom/no_schema_introspection.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/executable_definitions.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/fields_on_correct_type.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/fragments_on_composite_types.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/known_argument_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/known_directives.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/known_fragment_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/known_type_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/lone_anonymous_operation.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/lone_schema_definition.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/max_introspection_depth_rule.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/no_fragment_cycles.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/no_undefined_variables.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/no_unused_fragments.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/no_unused_variables.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/overlapping_fields_can_be_merged.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/possible_fragment_spreads.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/possible_type_extensions.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/provided_required_arguments.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/scalar_leafs.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/single_field_subscriptions.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_argument_definition_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_argument_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_directive_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_directives_per_location.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_enum_value_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_field_definition_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_fragment_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_input_field_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_operation_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_operation_types.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_type_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_variable_names.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/values_of_correct_type.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/variables_are_input_types.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/rules/variables_in_allowed_position.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/specified_rules.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/validate.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql/validation/validation_context.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql_core.egg-info/SOURCES.txt +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql_core.egg-info/dependency_links.txt +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql_core.egg-info/not-zip-safe +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql_core.egg-info/requires.txt +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/src/graphql_core.egg-info/top_level.txt +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_build_ast_schema.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_build_client_schema.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_introspection_from_schema.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_parser.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_repeated_fields.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_validate_gql.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_validate_sdl.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/benchmarks/test_visit.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/conftest.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/error/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/error/test_located_error.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_customize.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_execution_result.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_lists.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_map_async_iterator.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_middleware.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/execution/test_sync.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/fixtures/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/fixtures/github_schema.graphql +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/fixtures/github_schema.json +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/fixtures/kitchen_sink.graphql +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/fixtures/schema_kitchen_sink.graphql +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_ast.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_block_string.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_character_classes.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_location.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_predicates.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/language/test_print_string.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_cached_property.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_convert_case.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_did_you_mean.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_frozen_dict.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_frozen_error.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_frozen_list.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_group_by.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_identity_func.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_inspect.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_is_awaitable.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_is_iterable.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_merge_kwargs.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_natural_compare.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_path.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_print_path_list.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_simple_pub_sub.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_suggestion_list.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/pyutils/test_undefined.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/star_wars_data.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/star_wars_schema.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/test_docs.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/test_star_wars_query.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/test_star_wars_validation.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/test_user_registry.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/test_version.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_assert_name.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_custom_scalars.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_definition.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_directives.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_extensions.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_predicate.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/type/test_scalars.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/__init__.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_ast_from_value.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_coerce_input_value.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_sort_value_node.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_type_comparators.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_type_from_ast.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_value_from_ast.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utilities/test_value_from_ast_untyped.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utils/dedent.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utils/gen_fuzz_strings.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/utils/test_gen_fuzz_strings.py +0 -0
- {graphql_core-3.2.7 → graphql_core-3.2.8}/tests/validation/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: graphql-core
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.8
|
|
4
4
|
Summary: GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL.
|
|
5
5
|
Home-page: https://github.com/graphql-python/graphql-core
|
|
6
6
|
Author: Christoph Zwerschke
|
|
@@ -50,7 +50,7 @@ a query language for APIs created by Facebook.
|
|
|
50
50
|

|
|
51
51
|
[](https://github.com/ambv/black)
|
|
52
52
|
|
|
53
|
-
The current version 3.2.
|
|
53
|
+
The current version 3.2.8 of GraphQL-core is up-to-date with GraphQL.js version 16.9.0.
|
|
54
54
|
|
|
55
55
|
An extensive test suite with over 2500 unit tests and 100% coverage comprises a
|
|
56
56
|
replication of the complete test suite of GraphQL.js, making sure this port is
|
|
@@ -10,7 +10,7 @@ a query language for APIs created by Facebook.
|
|
|
10
10
|

|
|
11
11
|
[](https://github.com/ambv/black)
|
|
12
12
|
|
|
13
|
-
The current version 3.2.
|
|
13
|
+
The current version 3.2.8 of GraphQL-core is up-to-date with GraphQL.js version 16.9.0.
|
|
14
14
|
|
|
15
15
|
An extensive test suite with over 2500 unit tests and 100% coverage comprises a
|
|
16
16
|
replication of the complete test suite of GraphQL.js, making sure this port is
|
|
@@ -51,7 +51,7 @@ master_doc = "index"
|
|
|
51
51
|
|
|
52
52
|
# General information about the project.
|
|
53
53
|
project = "GraphQL-core 3"
|
|
54
|
-
copyright = "
|
|
54
|
+
copyright = "2026, Christoph Zwerschke"
|
|
55
55
|
author = "Christoph Zwerschke"
|
|
56
56
|
|
|
57
57
|
# The version info for the project you're documenting, acts as replacement for
|
|
@@ -61,7 +61,7 @@ author = "Christoph Zwerschke"
|
|
|
61
61
|
# The short X.Y version.
|
|
62
62
|
# version = '3.2'
|
|
63
63
|
# The full version, including alpha/beta/rc tags.
|
|
64
|
-
version = release = "3.2.
|
|
64
|
+
version = release = "3.2.8"
|
|
65
65
|
|
|
66
66
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
|
67
67
|
# for a list of supported languages.
|
|
@@ -139,6 +139,8 @@ graphql_classes = {
|
|
|
139
139
|
ignore_references = set(
|
|
140
140
|
"""
|
|
141
141
|
GNT GT KT T VT
|
|
142
|
+
_asyncio.Future
|
|
143
|
+
asyncio.queues.Queue
|
|
142
144
|
enum.Enum
|
|
143
145
|
traceback
|
|
144
146
|
types.TracebackType
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "graphql-core"
|
|
3
|
-
version = "3.2.
|
|
3
|
+
version = "3.2.8"
|
|
4
4
|
description = """
|
|
5
5
|
GraphQL-core is a Python port of GraphQL.js,\
|
|
6
6
|
the JavaScript reference implementation for GraphQL."""
|
|
@@ -87,5 +87,5 @@ disable = [
|
|
|
87
87
|
]
|
|
88
88
|
|
|
89
89
|
[build-system]
|
|
90
|
-
requires = ["poetry_core>=1,<3", "setuptools>=59,<
|
|
90
|
+
requires = ["poetry_core>=1,<3", "setuptools>=59,<83"]
|
|
91
91
|
build-backend = "poetry.core.masonry.api"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Any, Tuple, Union
|
|
1
|
+
from typing import Any, Tuple, Type, Union
|
|
2
2
|
|
|
3
3
|
__all__ = [
|
|
4
4
|
"Description",
|
|
@@ -17,14 +17,14 @@ class Description:
|
|
|
17
17
|
If you register(object), any object will be allowed as description.
|
|
18
18
|
"""
|
|
19
19
|
|
|
20
|
-
bases: Union[
|
|
20
|
+
bases: Union[Type[Any], Tuple[Type[Any], ...]] = str
|
|
21
21
|
|
|
22
22
|
@classmethod
|
|
23
23
|
def isinstance(cls, obj: Any) -> bool:
|
|
24
24
|
return isinstance(obj, cls.bases)
|
|
25
25
|
|
|
26
26
|
@classmethod
|
|
27
|
-
def register(cls, base:
|
|
27
|
+
def register(cls, base: Type[Any]) -> None:
|
|
28
28
|
"""Register a class that shall be accepted as a description."""
|
|
29
29
|
if not isinstance(base, type):
|
|
30
30
|
raise TypeError("Only types can be registered.")
|
|
@@ -39,7 +39,7 @@ class Description:
|
|
|
39
39
|
cls.bases += (base,)
|
|
40
40
|
|
|
41
41
|
@classmethod
|
|
42
|
-
def unregister(cls, base:
|
|
42
|
+
def unregister(cls, base: Type[Any]) -> None:
|
|
43
43
|
"""Unregister a class that shall no more be accepted as a description."""
|
|
44
44
|
if not isinstance(base, type):
|
|
45
45
|
raise TypeError("Only types can be unregistered.")
|
|
@@ -390,6 +390,9 @@ class TypeFields(GraphQLFieldMap):
|
|
|
390
390
|
return type_.is_one_of if is_input_object_type(type_) else None
|
|
391
391
|
|
|
392
392
|
|
|
393
|
+
TypeResolvers = TypeFields # for backward compatibility
|
|
394
|
+
|
|
395
|
+
|
|
393
396
|
_Type: GraphQLObjectType = GraphQLObjectType(
|
|
394
397
|
name="__Type",
|
|
395
398
|
description="The fundamental unit of any GraphQL Schema is the type."
|
|
@@ -154,6 +154,12 @@ class SchemaValidationContext:
|
|
|
154
154
|
# Ensure they are named correctly.
|
|
155
155
|
self.validate_name(directive)
|
|
156
156
|
|
|
157
|
+
if not directive.locations:
|
|
158
|
+
self.report_error(
|
|
159
|
+
f"Directive @{directive.name} must include 1 or more locations.",
|
|
160
|
+
directive.ast_node,
|
|
161
|
+
)
|
|
162
|
+
|
|
157
163
|
# Ensure the arguments are valid.
|
|
158
164
|
for arg_name, arg in directive.args.items():
|
|
159
165
|
# Ensure they are named correctly.
|
|
@@ -51,8 +51,7 @@ def get_introspection_query(
|
|
|
51
51
|
def input_deprecation(string: str) -> Optional[str]:
|
|
52
52
|
return string if input_value_deprecation else ""
|
|
53
53
|
|
|
54
|
-
return dedent(
|
|
55
|
-
f"""
|
|
54
|
+
return dedent(f"""
|
|
56
55
|
query IntrospectionQuery {{
|
|
57
56
|
__schema {{
|
|
58
57
|
{maybe_schema_description}
|
|
@@ -158,8 +157,7 @@ def get_introspection_query(
|
|
|
158
157
|
}}
|
|
159
158
|
}}
|
|
160
159
|
}}
|
|
161
|
-
"""
|
|
162
|
-
)
|
|
160
|
+
""")
|
|
163
161
|
|
|
164
162
|
|
|
165
163
|
# Unfortunately, the following type definitions are a bit simplistic
|
|
@@ -29,12 +29,12 @@ def is_equal_type(type_a: GraphQLType, type_b: GraphQLType) -> bool:
|
|
|
29
29
|
# If either type is non-null, the other must also be non-null.
|
|
30
30
|
if is_non_null_type(type_a) and is_non_null_type(type_b):
|
|
31
31
|
# noinspection PyUnresolvedReferences
|
|
32
|
-
return is_equal_type(type_a.of_type, type_b.of_type) # type:ignore
|
|
32
|
+
return is_equal_type(type_a.of_type, type_b.of_type) # type: ignore
|
|
33
33
|
|
|
34
34
|
# If either type is a list, the other must also be a list.
|
|
35
35
|
if is_list_type(type_a) and is_list_type(type_b):
|
|
36
36
|
# noinspection PyUnresolvedReferences
|
|
37
|
-
return is_equal_type(type_a.of_type, type_b.of_type) # type:ignore
|
|
37
|
+
return is_equal_type(type_a.of_type, type_b.of_type) # type: ignore
|
|
38
38
|
|
|
39
39
|
# Otherwise the types are not equal.
|
|
40
40
|
return False
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: graphql-core
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.8
|
|
4
4
|
Summary: GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL.
|
|
5
5
|
Home-page: https://github.com/graphql-python/graphql-core
|
|
6
6
|
Author: Christoph Zwerschke
|
|
@@ -50,7 +50,7 @@ a query language for APIs created by Facebook.
|
|
|
50
50
|

|
|
51
51
|
[](https://github.com/ambv/black)
|
|
52
52
|
|
|
53
|
-
The current version 3.2.
|
|
53
|
+
The current version 3.2.8 of GraphQL-core is up-to-date with GraphQL.js version 16.9.0.
|
|
54
54
|
|
|
55
55
|
An extensive test suite with over 2500 unit tests and 100% coverage comprises a
|
|
56
56
|
replication of the complete test suite of GraphQL.js, making sure this port is
|
|
@@ -5,8 +5,7 @@ from ..fixtures import big_schema_sdl # noqa: F401
|
|
|
5
5
|
|
|
6
6
|
def test_validate_invalid_query(benchmark, big_schema_sdl): # noqa: F811
|
|
7
7
|
schema = build_schema(big_schema_sdl, assume_valid=True)
|
|
8
|
-
query_ast = parse(
|
|
9
|
-
"""
|
|
8
|
+
query_ast = parse("""
|
|
10
9
|
{
|
|
11
10
|
unknownField
|
|
12
11
|
... on unknownType {
|
|
@@ -18,8 +17,7 @@ def test_validate_invalid_query(benchmark, big_schema_sdl): # noqa: F811
|
|
|
18
17
|
fragment TestFragment on anotherUnknownType {
|
|
19
18
|
yetAnotherUnknownField
|
|
20
19
|
}
|
|
21
|
-
"""
|
|
22
|
-
)
|
|
20
|
+
""")
|
|
23
21
|
result = benchmark(lambda: validate(schema, query_ast))
|
|
24
22
|
assert result == [
|
|
25
23
|
{
|
|
@@ -13,16 +13,11 @@ from graphql.language import (
|
|
|
13
13
|
|
|
14
14
|
from ..utils import dedent
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
source = Source(
|
|
18
|
-
dedent(
|
|
19
|
-
"""
|
|
16
|
+
source = Source(dedent("""
|
|
20
17
|
{
|
|
21
18
|
field
|
|
22
19
|
}
|
|
23
|
-
"""
|
|
24
|
-
)
|
|
25
|
-
)
|
|
20
|
+
"""))
|
|
26
21
|
|
|
27
22
|
ast = parse(source)
|
|
28
23
|
operation_node = ast.definitions[0]
|
|
@@ -298,13 +293,11 @@ def describe_to_string():
|
|
|
298
293
|
def prints_an_error_with_nodes_from_different_sources():
|
|
299
294
|
doc_a = parse(
|
|
300
295
|
Source(
|
|
301
|
-
dedent(
|
|
302
|
-
"""
|
|
296
|
+
dedent("""
|
|
303
297
|
type Foo {
|
|
304
298
|
field: String
|
|
305
299
|
}
|
|
306
|
-
"""
|
|
307
|
-
),
|
|
300
|
+
"""),
|
|
308
301
|
"SourceA",
|
|
309
302
|
)
|
|
310
303
|
)
|
|
@@ -314,13 +307,11 @@ def describe_to_string():
|
|
|
314
307
|
field_a = op_a.fields[0]
|
|
315
308
|
doc_b = parse(
|
|
316
309
|
Source(
|
|
317
|
-
dedent(
|
|
318
|
-
"""
|
|
310
|
+
dedent("""
|
|
319
311
|
type Foo {
|
|
320
312
|
field: Int
|
|
321
313
|
}
|
|
322
|
-
"""
|
|
323
|
-
),
|
|
314
|
+
"""),
|
|
324
315
|
"SourceB",
|
|
325
316
|
)
|
|
326
317
|
)
|
|
@@ -333,8 +324,7 @@ def describe_to_string():
|
|
|
333
324
|
"Example error with two nodes", [field_a.type, field_b.type]
|
|
334
325
|
)
|
|
335
326
|
|
|
336
|
-
assert str(error) == dedent(
|
|
337
|
-
"""
|
|
327
|
+
assert str(error) == dedent("""
|
|
338
328
|
Example error with two nodes
|
|
339
329
|
|
|
340
330
|
SourceA:2:10
|
|
@@ -348,8 +338,7 @@ def describe_to_string():
|
|
|
348
338
|
2 | field: Int
|
|
349
339
|
| ^
|
|
350
340
|
3 | }
|
|
351
|
-
"""
|
|
352
|
-
)
|
|
341
|
+
""")
|
|
353
342
|
|
|
354
343
|
|
|
355
344
|
def describe_formatted():
|
|
@@ -372,13 +361,11 @@ def describe_formatted():
|
|
|
372
361
|
error = GraphQLError(
|
|
373
362
|
"test message",
|
|
374
363
|
Node(),
|
|
375
|
-
Source(
|
|
376
|
-
"""
|
|
364
|
+
Source("""
|
|
377
365
|
query {
|
|
378
366
|
something
|
|
379
367
|
}
|
|
380
|
-
"""
|
|
381
|
-
),
|
|
368
|
+
"""),
|
|
382
369
|
[16, 41],
|
|
383
370
|
["one", 2],
|
|
384
371
|
ValueError("original"),
|
|
@@ -16,66 +16,56 @@ def describe_print_location():
|
|
|
16
16
|
minified_source,
|
|
17
17
|
SourceLocation(1, minified_source.body.index("FIRST_ERROR_HERE") + 1),
|
|
18
18
|
)
|
|
19
|
-
assert first_location == dedent(
|
|
20
|
-
"""
|
|
19
|
+
assert first_location == dedent("""
|
|
21
20
|
GraphQL request:1:53
|
|
22
21
|
1 | query SomeMinifiedQueryWithErrorInside($foo:String!=FIRST_ERROR_HERE$bar:String)
|
|
23
22
|
| ^
|
|
24
23
|
| {someField(foo:$foo bar:$bar baz:SECOND_ERROR_HERE){fieldA fieldB{fieldC fieldD.
|
|
25
|
-
""" # noqa: E501
|
|
26
|
-
)
|
|
24
|
+
""") # noqa: E501
|
|
27
25
|
|
|
28
26
|
second_location = print_source_location(
|
|
29
27
|
minified_source,
|
|
30
28
|
SourceLocation(1, minified_source.body.index("SECOND_ERROR_HERE") + 1),
|
|
31
29
|
)
|
|
32
|
-
assert second_location == dedent(
|
|
33
|
-
"""
|
|
30
|
+
assert second_location == dedent("""
|
|
34
31
|
GraphQL request:1:114
|
|
35
32
|
1 | query SomeMinifiedQueryWithErrorInside($foo:String!=FIRST_ERROR_HERE$bar:String)
|
|
36
33
|
| {someField(foo:$foo bar:$bar baz:SECOND_ERROR_HERE){fieldA fieldB{fieldC fieldD.
|
|
37
34
|
| ^
|
|
38
35
|
| ..on THIRD_ERROR_HERE}}}
|
|
39
|
-
""" # noqa: E501
|
|
40
|
-
)
|
|
36
|
+
""") # noqa: E501
|
|
41
37
|
|
|
42
38
|
third_location = print_source_location(
|
|
43
39
|
minified_source,
|
|
44
40
|
SourceLocation(1, minified_source.body.index("THIRD_ERROR_HERE") + 1),
|
|
45
41
|
)
|
|
46
|
-
assert third_location == dedent(
|
|
47
|
-
"""
|
|
42
|
+
assert third_location == dedent("""
|
|
48
43
|
GraphQL request:1:166
|
|
49
44
|
1 | query SomeMinifiedQueryWithErrorInside($foo:String!=FIRST_ERROR_HERE$bar:String)
|
|
50
45
|
| {someField(foo:$foo bar:$bar baz:SECOND_ERROR_HERE){fieldA fieldB{fieldC fieldD.
|
|
51
46
|
| ..on THIRD_ERROR_HERE}}}
|
|
52
47
|
| ^
|
|
53
|
-
""" # noqa: E501
|
|
54
|
-
)
|
|
48
|
+
""") # noqa: E501
|
|
55
49
|
|
|
56
50
|
def prints_single_digit_line_number_with_no_padding():
|
|
57
51
|
result = print_source_location(
|
|
58
52
|
Source("*", "Test", SourceLocation(9, 1)), SourceLocation(1, 1)
|
|
59
53
|
)
|
|
60
54
|
|
|
61
|
-
assert result == dedent(
|
|
62
|
-
"""
|
|
55
|
+
assert result == dedent("""
|
|
63
56
|
Test:9:1
|
|
64
57
|
9 | *
|
|
65
58
|
| ^
|
|
66
|
-
"""
|
|
67
|
-
)
|
|
59
|
+
""")
|
|
68
60
|
|
|
69
61
|
def prints_line_numbers_with_correct_padding():
|
|
70
62
|
result = print_source_location(
|
|
71
63
|
Source("*\n", "Test", SourceLocation(9, 1)), SourceLocation(1, 1)
|
|
72
64
|
)
|
|
73
65
|
|
|
74
|
-
assert result == dedent(
|
|
75
|
-
"""
|
|
66
|
+
assert result == dedent("""
|
|
76
67
|
Test:9:1
|
|
77
68
|
9 | *
|
|
78
69
|
| ^
|
|
79
70
|
10 |
|
|
80
|
-
"""
|
|
81
|
-
)
|
|
71
|
+
""")
|
|
@@ -482,8 +482,7 @@ def describe_execute_handles_synchronous_execution_of_abstract_types():
|
|
|
482
482
|
|
|
483
483
|
def describe_union_type():
|
|
484
484
|
|
|
485
|
-
schema = build_schema(
|
|
486
|
-
"""
|
|
485
|
+
schema = build_schema("""
|
|
487
486
|
type Query {
|
|
488
487
|
pets: [Pet]
|
|
489
488
|
}
|
|
@@ -499,8 +498,7 @@ def describe_execute_handles_synchronous_execution_of_abstract_types():
|
|
|
499
498
|
name: String
|
|
500
499
|
woofs: Boolean
|
|
501
500
|
}
|
|
502
|
-
"""
|
|
503
|
-
)
|
|
501
|
+
""")
|
|
504
502
|
|
|
505
503
|
query = """
|
|
506
504
|
{
|
|
@@ -523,8 +521,7 @@ def describe_execute_handles_synchronous_execution_of_abstract_types():
|
|
|
523
521
|
assert await execute_query(sync, schema, query, root_value) == expected
|
|
524
522
|
|
|
525
523
|
def describe_interface_type():
|
|
526
|
-
schema = build_schema(
|
|
527
|
-
"""
|
|
524
|
+
schema = build_schema("""
|
|
528
525
|
type Query {
|
|
529
526
|
pets: [Pet]
|
|
530
527
|
}
|
|
@@ -542,8 +539,7 @@ def describe_execute_handles_synchronous_execution_of_abstract_types():
|
|
|
542
539
|
name: String
|
|
543
540
|
woofs: Boolean
|
|
544
541
|
}
|
|
545
|
-
"""
|
|
546
|
-
)
|
|
542
|
+
""")
|
|
547
543
|
|
|
548
544
|
query = """
|
|
549
545
|
{
|
|
@@ -566,8 +562,7 @@ def describe_execute_handles_synchronous_execution_of_abstract_types():
|
|
|
566
562
|
assert await execute_query(sync, schema, query, root_value) == expected
|
|
567
563
|
|
|
568
564
|
def resolve_type_on_interface_yields_useful_error():
|
|
569
|
-
schema = build_schema(
|
|
570
|
-
"""
|
|
565
|
+
schema = build_schema("""
|
|
571
566
|
type Query {
|
|
572
567
|
pet: Pet
|
|
573
568
|
}
|
|
@@ -583,18 +578,15 @@ def describe_execute_handles_synchronous_execution_of_abstract_types():
|
|
|
583
578
|
type Dog implements Pet {
|
|
584
579
|
name: String
|
|
585
580
|
}
|
|
586
|
-
"""
|
|
587
|
-
)
|
|
581
|
+
""")
|
|
588
582
|
|
|
589
|
-
document = parse(
|
|
590
|
-
"""
|
|
583
|
+
document = parse("""
|
|
591
584
|
{
|
|
592
585
|
pet {
|
|
593
586
|
name
|
|
594
587
|
}
|
|
595
588
|
}
|
|
596
|
-
"""
|
|
597
|
-
)
|
|
589
|
+
""")
|
|
598
590
|
|
|
599
591
|
def expect_error(for_type_name: Any, message: str) -> None:
|
|
600
592
|
root_value = {"pet": {"__typename": for_type_name}}
|