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

|
|
39
50
|
[](https://github.com/ambv/black)
|
|
40
51
|
|
|
41
|
-
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.
|
|
42
53
|
|
|
43
|
-
An extensive test suite with over
|
|
54
|
+
An extensive test suite with over 2500 unit tests and 100% coverage comprises a
|
|
44
55
|
replication of the complete test suite of GraphQL.js, making sure this port is
|
|
45
56
|
reliable and compatible with GraphQL.js.
|
|
46
57
|
|
|
47
|
-
Note that for various reasons, GraphQL-core does not use SemVer like GraphQL.js.
|
|
58
|
+
Note that for various reasons, GraphQL-core does not use SemVer like GraphQL.js.
|
|
59
|
+
Changes in the major version of GraphQL.js are reflected in the minor version of
|
|
60
|
+
GraphQL-core instead. This means there can be breaking changes in the API
|
|
61
|
+
when the minor version changes, and only patch releases are fully backward compatible.
|
|
62
|
+
Therefore, we recommend using something like `~= 3.2.0` as the version specifier
|
|
63
|
+
when including GraphQL-core as a dependency.
|
|
48
64
|
|
|
49
65
|
|
|
50
66
|
## Documentation
|
|
@@ -76,8 +92,8 @@ GraphQL-core 3 can be installed from PyPI using the built-in pip command:
|
|
|
76
92
|
|
|
77
93
|
python -m pip install graphql-core
|
|
78
94
|
|
|
79
|
-
You can also use [poetry](https://github.com/python-poetry/poetry) for installation
|
|
80
|
-
virtual environment:
|
|
95
|
+
You can also use [poetry](https://github.com/python-poetry/poetry) for installation
|
|
96
|
+
in a virtual environment:
|
|
81
97
|
|
|
82
98
|
poetry install
|
|
83
99
|
|
|
@@ -10,13 +10,18 @@ a query language for APIs created by Facebook.
|
|
|
10
10
|

|
|
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."""
|
|
@@ -49,11 +49,11 @@ packages = [
|
|
|
49
49
|
[tool.poetry.dependencies]
|
|
50
50
|
python = "^3.6"
|
|
51
51
|
typing-extensions = [
|
|
52
|
-
{ version = ">=4,<5", python = "<3.10" }
|
|
52
|
+
{ version = ">=4.1,<5", python = "<3.10" }
|
|
53
53
|
]
|
|
54
54
|
|
|
55
55
|
[tool.black]
|
|
56
|
-
target-version = ['py36', 'py37', 'py38', 'py39', 'py310', 'py311', 'py312']
|
|
56
|
+
target-version = ['py36', 'py37', 'py38', 'py39', 'py310', 'py311', 'py312', 'py313']
|
|
57
57
|
|
|
58
58
|
[tool.pyright]
|
|
59
59
|
reportIncompatibleVariableOverride = false
|
|
@@ -77,5 +77,5 @@ disable = [
|
|
|
77
77
|
]
|
|
78
78
|
|
|
79
79
|
[build-system]
|
|
80
|
-
requires = ["poetry_core>=1,<
|
|
80
|
+
requires = ["poetry_core>=1,<3", "setuptools>=59,<76"]
|
|
81
81
|
build-backend = "poetry.core.masonry.api"
|
|
@@ -23,6 +23,7 @@ from ..type import (
|
|
|
23
23
|
GraphQLField,
|
|
24
24
|
GraphQLInputType,
|
|
25
25
|
GraphQLSchema,
|
|
26
|
+
is_input_object_type,
|
|
26
27
|
is_input_type,
|
|
27
28
|
is_non_null_type,
|
|
28
29
|
)
|
|
@@ -160,8 +161,13 @@ def get_argument_values(
|
|
|
160
161
|
argument_node = arg_node_map.get(name)
|
|
161
162
|
|
|
162
163
|
if argument_node is None:
|
|
163
|
-
|
|
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.
|
|
@@ -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
|
|
@@ -25,6 +25,17 @@ Requires-Python: >=3.6,<4
|
|
|
25
25
|
Description-Content-Type: text/markdown
|
|
26
26
|
License-File: LICENSE
|
|
27
27
|
Requires-Dist: typing-extensions<5,>=4; python_version < "3.10"
|
|
28
|
+
Dynamic: author
|
|
29
|
+
Dynamic: author-email
|
|
30
|
+
Dynamic: classifier
|
|
31
|
+
Dynamic: description
|
|
32
|
+
Dynamic: description-content-type
|
|
33
|
+
Dynamic: home-page
|
|
34
|
+
Dynamic: keywords
|
|
35
|
+
Dynamic: license
|
|
36
|
+
Dynamic: requires-dist
|
|
37
|
+
Dynamic: requires-python
|
|
38
|
+
Dynamic: summary
|
|
28
39
|
|
|
29
40
|
# GraphQL-core 3
|
|
30
41
|
|
|
@@ -38,13 +49,18 @@ a query language for APIs created by Facebook.
|
|
|
38
49
|

|
|
39
50
|
[](https://github.com/ambv/black)
|
|
40
51
|
|
|
41
|
-
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.
|
|
42
53
|
|
|
43
|
-
An extensive test suite with over
|
|
54
|
+
An extensive test suite with over 2500 unit tests and 100% coverage comprises a
|
|
44
55
|
replication of the complete test suite of GraphQL.js, making sure this port is
|
|
45
56
|
reliable and compatible with GraphQL.js.
|
|
46
57
|
|
|
47
|
-
Note that for various reasons, GraphQL-core does not use SemVer like GraphQL.js.
|
|
58
|
+
Note that for various reasons, GraphQL-core does not use SemVer like GraphQL.js.
|
|
59
|
+
Changes in the major version of GraphQL.js are reflected in the minor version of
|
|
60
|
+
GraphQL-core instead. This means there can be breaking changes in the API
|
|
61
|
+
when the minor version changes, and only patch releases are fully backward compatible.
|
|
62
|
+
Therefore, we recommend using something like `~= 3.2.0` as the version specifier
|
|
63
|
+
when including GraphQL-core as a dependency.
|
|
48
64
|
|
|
49
65
|
|
|
50
66
|
## Documentation
|
|
@@ -76,8 +92,8 @@ GraphQL-core 3 can be installed from PyPI using the built-in pip command:
|
|
|
76
92
|
|
|
77
93
|
python -m pip install graphql-core
|
|
78
94
|
|
|
79
|
-
You can also use [poetry](https://github.com/python-poetry/poetry) for installation
|
|
80
|
-
virtual environment:
|
|
95
|
+
You can also use [poetry](https://github.com/python-poetry/poetry) for installation
|
|
96
|
+
in a virtual environment:
|
|
81
97
|
|
|
82
98
|
poetry install
|
|
83
99
|
|
|
@@ -3,7 +3,7 @@ from typing import Any, NamedTuple, Optional
|
|
|
3
3
|
|
|
4
4
|
from pytest import mark
|
|
5
5
|
|
|
6
|
-
from graphql.execution import execute, execute_sync
|
|
6
|
+
from graphql.execution import ExecutionResult, execute, execute_sync
|
|
7
7
|
from graphql.language import parse
|
|
8
8
|
from graphql.type import (
|
|
9
9
|
GraphQLBoolean,
|
|
@@ -40,9 +40,7 @@ async def execute_query(
|
|
|
40
40
|
assert isinstance(schema, GraphQLSchema)
|
|
41
41
|
assert isinstance(query, str)
|
|
42
42
|
document = parse(query)
|
|
43
|
-
result = (execute_sync if sync else execute)(
|
|
44
|
-
schema, document, root_value
|
|
45
|
-
) # type: ignore
|
|
43
|
+
result = (execute_sync if sync else execute)(schema, document, root_value)
|
|
46
44
|
if not sync and isawaitable(result):
|
|
47
45
|
result = await result
|
|
48
46
|
assert isinstance(result, ExecutionResult)
|
|
@@ -2,14 +2,16 @@ from collections import ChainMap
|
|
|
2
2
|
from typing import Any
|
|
3
3
|
|
|
4
4
|
from graphql.error import GraphQLError
|
|
5
|
-
from graphql.execution import
|
|
6
|
-
from graphql.language import
|
|
5
|
+
from graphql.execution import ExecutionResult, execute_sync
|
|
6
|
+
from graphql.language import SourceLocation, parse
|
|
7
7
|
from graphql.type import (
|
|
8
8
|
GraphQLArgument,
|
|
9
9
|
GraphQLField,
|
|
10
|
+
GraphQLID,
|
|
10
11
|
GraphQLInputField,
|
|
11
12
|
GraphQLInputObjectType,
|
|
12
13
|
GraphQLInt,
|
|
14
|
+
GraphQLList,
|
|
13
15
|
GraphQLObjectType,
|
|
14
16
|
GraphQLSchema,
|
|
15
17
|
GraphQLString,
|
|
@@ -213,6 +215,91 @@ def describe_execute_resolve_function():
|
|
|
213
215
|
None,
|
|
214
216
|
)
|
|
215
217
|
|
|
218
|
+
def transforms_default_values_using_out_names():
|
|
219
|
+
# This is an extension of GraphQL.js.
|
|
220
|
+
resolver_kwargs: Any
|
|
221
|
+
|
|
222
|
+
def search_resolver(_obj: None, _info, **kwargs):
|
|
223
|
+
nonlocal resolver_kwargs
|
|
224
|
+
resolver_kwargs = kwargs
|
|
225
|
+
return [{"id": "42"}]
|
|
226
|
+
|
|
227
|
+
filters_type = GraphQLInputObjectType(
|
|
228
|
+
"SearchFilters",
|
|
229
|
+
{"pageSize": GraphQLInputField(GraphQLInt, out_name="page_size")},
|
|
230
|
+
)
|
|
231
|
+
result_type = GraphQLObjectType("SearchResult", {"id": GraphQLField(GraphQLID)})
|
|
232
|
+
query = GraphQLObjectType(
|
|
233
|
+
"Query",
|
|
234
|
+
{
|
|
235
|
+
"search": GraphQLField(
|
|
236
|
+
GraphQLList(result_type),
|
|
237
|
+
{
|
|
238
|
+
"searchFilters": GraphQLArgument(
|
|
239
|
+
filters_type, {"pageSize": 10}, out_name="search_filters"
|
|
240
|
+
)
|
|
241
|
+
},
|
|
242
|
+
resolve=search_resolver,
|
|
243
|
+
)
|
|
244
|
+
},
|
|
245
|
+
)
|
|
246
|
+
schema = GraphQLSchema(query)
|
|
247
|
+
|
|
248
|
+
resolver_kwargs = None
|
|
249
|
+
result = execute_sync(schema, parse("{ search { id } }"))
|
|
250
|
+
assert result == ({"search": [{"id": "42"}]}, None)
|
|
251
|
+
assert resolver_kwargs == {"search_filters": {"page_size": 10}}
|
|
252
|
+
|
|
253
|
+
resolver_kwargs = None
|
|
254
|
+
result = execute_sync(
|
|
255
|
+
schema, parse("{ search(searchFilters:{pageSize: 25}) { id } }")
|
|
256
|
+
)
|
|
257
|
+
assert result == ({"search": [{"id": "42"}]}, None)
|
|
258
|
+
assert resolver_kwargs == {"search_filters": {"page_size": 25}}
|
|
259
|
+
|
|
260
|
+
resolver_kwargs = None
|
|
261
|
+
result = execute_sync(
|
|
262
|
+
schema,
|
|
263
|
+
parse(
|
|
264
|
+
"""
|
|
265
|
+
query ($searchFilters: SearchFilters) {
|
|
266
|
+
search(searchFilters: $searchFilters) { id }
|
|
267
|
+
}
|
|
268
|
+
"""
|
|
269
|
+
),
|
|
270
|
+
)
|
|
271
|
+
assert result == ({"search": [{"id": "42"}]}, None)
|
|
272
|
+
assert resolver_kwargs == {"search_filters": {"page_size": 10}}
|
|
273
|
+
|
|
274
|
+
resolver_kwargs = None
|
|
275
|
+
result = execute_sync(
|
|
276
|
+
schema,
|
|
277
|
+
parse(
|
|
278
|
+
"""
|
|
279
|
+
query ($searchFilters: SearchFilters) {
|
|
280
|
+
search(searchFilters: $searchFilters) { id }
|
|
281
|
+
}
|
|
282
|
+
"""
|
|
283
|
+
),
|
|
284
|
+
variable_values={"searchFilters": {"pageSize": 25}},
|
|
285
|
+
)
|
|
286
|
+
assert result == ({"search": [{"id": "42"}]}, None)
|
|
287
|
+
assert resolver_kwargs == {"search_filters": {"page_size": 25}}
|
|
288
|
+
|
|
289
|
+
resolver_kwargs = None
|
|
290
|
+
result = execute_sync(
|
|
291
|
+
schema,
|
|
292
|
+
parse(
|
|
293
|
+
"""
|
|
294
|
+
query ($searchFilters: SearchFilters = {pageSize: 25}) {
|
|
295
|
+
search(searchFilters: $searchFilters) { id }
|
|
296
|
+
}
|
|
297
|
+
"""
|
|
298
|
+
),
|
|
299
|
+
)
|
|
300
|
+
assert result == ({"search": [{"id": "42"}]}, None)
|
|
301
|
+
assert resolver_kwargs == {"search_filters": {"page_size": 25}}
|
|
302
|
+
|
|
216
303
|
def pass_error_from_resolver_wrapped_as_located_graphql_error():
|
|
217
304
|
def resolve(_obj, _info):
|
|
218
305
|
raise ValueError("Some error")
|
|
@@ -19,9 +19,9 @@ python =
|
|
|
19
19
|
|
|
20
20
|
[testenv:black]
|
|
21
21
|
basepython = python3.12
|
|
22
|
-
deps = black==24.
|
|
22
|
+
deps = black==24.10.0
|
|
23
23
|
commands =
|
|
24
|
-
black src tests setup.py -t
|
|
24
|
+
black src tests setup.py -t py312 --check
|
|
25
25
|
|
|
26
26
|
[testenv:flake8]
|
|
27
27
|
basepython = python3.12
|
|
@@ -32,7 +32,7 @@ commands =
|
|
|
32
32
|
[testenv:mypy]
|
|
33
33
|
basepython = python3.12
|
|
34
34
|
deps =
|
|
35
|
-
mypy>=1.
|
|
35
|
+
mypy>=1.14,<2
|
|
36
36
|
pytest>=8.3,<9
|
|
37
37
|
commands =
|
|
38
38
|
mypy src tests
|
|
@@ -40,28 +40,28 @@ commands =
|
|
|
40
40
|
[testenv:docs]
|
|
41
41
|
basepython = python3.12
|
|
42
42
|
deps =
|
|
43
|
-
sphinx>=
|
|
44
|
-
sphinx_rtd_theme>=
|
|
43
|
+
sphinx>=8,<9
|
|
44
|
+
sphinx_rtd_theme>=3,<4
|
|
45
45
|
commands =
|
|
46
46
|
sphinx-build -b html -nEW docs docs/_build/html
|
|
47
47
|
|
|
48
48
|
[testenv:manifest]
|
|
49
49
|
basepython = python3.12
|
|
50
|
-
deps = check-manifest>=0.
|
|
50
|
+
deps = check-manifest>=0.50,<1
|
|
51
51
|
commands =
|
|
52
52
|
check-manifest -v
|
|
53
53
|
|
|
54
54
|
[testenv]
|
|
55
55
|
deps =
|
|
56
56
|
pytest>=6.2,<9
|
|
57
|
-
pytest-asyncio>=0.16,<
|
|
58
|
-
pytest-benchmark>=3.4,<
|
|
59
|
-
pytest-cov>=4,<
|
|
57
|
+
pytest-asyncio>=0.16,<1
|
|
58
|
+
pytest-benchmark>=3.4,<6
|
|
59
|
+
pytest-cov>=4,<7
|
|
60
60
|
pytest-describe>=2,<3
|
|
61
61
|
pytest-timeout>=2,<3
|
|
62
|
-
py3{6,7,8,9},
|
|
62
|
+
py3{6,7,8,9},pypy39: typing-extensions>=4.1,<5
|
|
63
63
|
commands =
|
|
64
64
|
# to also run the time-consuming tests: tox -e py311 -- --run-slow
|
|
65
65
|
# to run the benchmarks: tox -e py311 -- -k benchmarks --benchmark-enable
|
|
66
|
-
py3{6,7,8,9,10,11,13},
|
|
66
|
+
py3{6,7,8,9,10,11,13},pypy3{9,10}: pytest tests {posargs}
|
|
67
67
|
py312: pytest tests {posargs: --cov-report=term-missing --cov=graphql --cov=tests --cov-fail-under=100}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|