graphql-core 3.2.6__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.6 → graphql_core-3.2.8}/.bumpversion.cfg +1 -1
- {graphql_core-3.2.6 → graphql_core-3.2.8}/PKG-INFO +9 -8
- {graphql_core-3.2.6 → graphql_core-3.2.8}/README.md +3 -3
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/conf.py +4 -2
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/modules/validation.rst +4 -0
- graphql_core-3.2.8/poetry.lock +19 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/pyproject.toml +17 -7
- {graphql_core-3.2.6 → graphql_core-3.2.8}/setup.cfg +4 -1
- {graphql_core-3.2.6 → graphql_core-3.2.8}/setup.py +3 -3
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/__init__.py +9 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/execution/values.py +7 -2
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/lexer.py +1 -1
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/print_location.py +0 -1
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/description.py +4 -4
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/frozen_dict.py +1 -1
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/undefined.py +14 -1
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/type/__init__.py +4 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/type/definition.py +33 -10
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/type/directives.py +10 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/type/introspection.py +301 -223
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/type/scalars.py +4 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/type/schema.py +3 -2
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/type/validate.py +29 -1
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/build_ast_schema.py +4 -2
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/build_client_schema.py +36 -23
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/coerce_input_value.py +24 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/extend_schema.py +312 -233
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/get_introspection_query.py +13 -11
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/introspection_from_schema.py +2 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/lexicographic_sort_schema.py +6 -3
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/print_schema.py +7 -2
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/type_comparators.py +2 -2
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/value_from_ast.py +8 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/__init__.py +6 -1
- graphql_core-3.2.8/src/graphql/validation/rules/max_introspection_depth_rule.py +81 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/values_of_correct_type.py +69 -2
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/specified_rules.py +11 -1
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/version.py +2 -2
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql_core.egg-info/PKG-INFO +9 -8
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql_core.egg-info/SOURCES.txt +3 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql_core.egg-info/requires.txt +1 -1
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/benchmarks/test_execution_async.py +0 -1
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/benchmarks/test_execution_sync.py +0 -1
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/benchmarks/test_validate_invalid_gql.py +2 -4
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/error/test_graphql_error.py +10 -23
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/error/test_print_location.py +10 -20
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_abstract.py +8 -16
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_directives.py +30 -60
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_executor.py +36 -68
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_lists.py +1 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_mutations.py +4 -8
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_nonnull.py +16 -32
- graphql_core-3.2.8/tests/execution/test_one_of.py +147 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_parallel.py +2 -4
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_resolve.py +6 -12
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_schema.py +2 -4
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_subscribe.py +6 -12
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_union_interface.py +14 -28
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_variables.py +48 -96
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/fixtures/schema_kitchen_sink.graphql +6 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_block_string_fuzz.py +6 -10
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_lexer.py +38 -51
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_parser.py +23 -47
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_print_string.py +11 -11
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_printer.py +14 -28
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_schema_parser.py +57 -60
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_schema_printer.py +8 -4
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_source.py +2 -4
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_visitor.py +2 -4
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_description.py +3 -5
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_undefined.py +16 -2
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/test_star_wars_introspection.py +18 -36
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/type/test_definition.py +21 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/type/test_enum.py +20 -12
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/type/test_introspection.py +142 -52
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/type/test_scalars.py +37 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/type/test_schema.py +12 -5
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/type/test_validation.py +250 -397
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_ast_to_dict.py +8 -16
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_build_ast_schema.py +248 -284
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_build_client_schema.py +68 -108
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_coerce_input_value.py +93 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_concat_ast.py +6 -12
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_extend_schema.py +160 -324
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_find_breaking_changes.py +128 -252
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_get_introspection_query.py +7 -4
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_get_operation_ast.py +8 -16
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_get_operation_root_type.py +2 -5
- graphql_core-3.2.8/tests/utilities/test_introspection_from_schema.py +172 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_lexicographic_sort_schema.py +40 -80
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_print_schema.py +88 -140
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_separate_operations.py +24 -50
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_strip_ignored_characters.py +13 -25
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_strip_ignored_characters_fuzz.py +4 -6
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_type_info.py +8 -17
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_value_from_ast.py +17 -0
- graphql_core-3.2.8/tests/utils/__init__.py +12 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utils/test_dedent.py +14 -45
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/harness.py +8 -4
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_executable_definitions.py +4 -8
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_fields_on_correct_type.py +34 -68
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_fragments_on_composite_types.py +12 -24
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_known_argument_names.py +22 -44
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_known_directives.py +22 -44
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_known_fragment_names.py +2 -4
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_known_type_names.py +6 -12
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_lone_anonymous_operation.py +8 -16
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_lone_schema_definition.py +12 -24
- graphql_core-3.2.8/tests/validation/test_max_introspection_depth_rule.py +490 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_no_deprecated.py +30 -60
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_no_fragment_cycles.py +10 -20
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_no_schema_introspection.py +6 -12
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_no_undefined_variables.py +14 -28
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_no_unused_fragments.py +4 -8
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_no_unused_variables.py +12 -24
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_overlapping_fields_can_be_merged.py +38 -76
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_possible_fragment_spreads.py +28 -56
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_possible_type_extensions.py +10 -20
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_provided_required_arguments.py +34 -68
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_scalar_leafs.py +4 -8
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_single_field_subscriptions.py +10 -20
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_unique_argument_definition_names.py +6 -12
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_unique_argument_names.py +18 -36
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_unique_directive_names.py +8 -16
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_unique_directives_per_location.py +14 -28
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_unique_enum_value_names.py +10 -20
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_unique_field_definition_names.py +14 -28
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_unique_fragment_names.py +10 -20
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_unique_input_field_names.py +8 -16
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_unique_operation_names.py +12 -24
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_unique_operation_types.py +14 -28
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_unique_type_names.py +8 -16
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_unique_variable_names.py +2 -4
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_validation.py +10 -20
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_values_of_correct_type.py +162 -144
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_variables_are_input_types.py +4 -8
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/test_variables_in_allowed_position.py +30 -60
- graphql_core-3.2.8/tox.ini +68 -0
- graphql_core-3.2.6/poetry.lock +0 -17
- graphql_core-3.2.6/tests/utilities/test_introspection_from_schema.py +0 -62
- graphql_core-3.2.6/tests/utils/__init__.py +0 -6
- graphql_core-3.2.6/tox.ini +0 -67
- {graphql_core-3.2.6 → graphql_core-3.2.8}/.coveragerc +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/.editorconfig +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/.flake8 +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/.mypy.ini +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/.readthedocs.yaml +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/CODEOWNERS +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/LICENSE +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/MANIFEST.in +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/SECURITY.md +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/Makefile +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/diffs.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/index.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/intro.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/make.bat +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/modules/error.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/modules/execution.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/modules/graphql.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/modules/language.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/modules/pyutils.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/modules/type.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/modules/utilities.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/requirements.txt +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/usage/extension.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/usage/index.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/usage/introspection.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/usage/methods.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/usage/other.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/usage/parser.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/usage/queries.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/usage/resolvers.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/usage/schema.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/usage/sdl.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/docs/usage/validator.rst +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/error/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/error/graphql_error.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/error/located_error.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/error/syntax_error.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/execution/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/execution/collect_fields.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/execution/execute.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/execution/map_async_iterator.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/execution/middleware.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/execution/subscribe.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/graphql.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/ast.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/block_string.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/character_classes.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/directive_locations.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/location.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/parser.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/predicates.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/print_string.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/printer.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/source.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/token_kind.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/language/visitor.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/py.typed +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/awaitable_or_value.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/cached_property.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/convert_case.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/did_you_mean.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/frozen_error.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/frozen_list.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/group_by.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/identity_func.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/inspect.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/is_awaitable.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/is_iterable.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/merge_kwargs.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/natural_compare.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/path.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/print_path_list.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/simple_pub_sub.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/pyutils/suggestion_list.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/subscription/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/type/assert_name.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/assert_valid_name.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/ast_from_value.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/ast_to_dict.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/concat_ast.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/find_breaking_changes.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/get_operation_ast.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/get_operation_root_type.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/separate_operations.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/sort_value_node.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/strip_ignored_characters.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/type_from_ast.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/type_info.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/utilities/value_from_ast_untyped.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/custom/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/custom/no_deprecated.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/custom/no_schema_introspection.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/executable_definitions.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/fields_on_correct_type.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/fragments_on_composite_types.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/known_argument_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/known_directives.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/known_fragment_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/known_type_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/lone_anonymous_operation.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/lone_schema_definition.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/no_fragment_cycles.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/no_undefined_variables.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/no_unused_fragments.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/no_unused_variables.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/overlapping_fields_can_be_merged.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/possible_fragment_spreads.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/possible_type_extensions.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/provided_required_arguments.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/scalar_leafs.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/single_field_subscriptions.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_argument_definition_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_argument_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_directive_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_directives_per_location.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_enum_value_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_field_definition_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_fragment_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_input_field_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_operation_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_operation_types.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_type_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/unique_variable_names.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/variables_are_input_types.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/rules/variables_in_allowed_position.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/validate.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql/validation/validation_context.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql_core.egg-info/dependency_links.txt +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql_core.egg-info/not-zip-safe +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/src/graphql_core.egg-info/top_level.txt +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/benchmarks/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/benchmarks/test_build_ast_schema.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/benchmarks/test_build_client_schema.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/benchmarks/test_introspection_from_schema.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/benchmarks/test_parser.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/benchmarks/test_repeated_fields.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/benchmarks/test_validate_gql.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/benchmarks/test_validate_sdl.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/benchmarks/test_visit.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/conftest.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/error/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/error/test_located_error.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_customize.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_execution_result.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_map_async_iterator.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_middleware.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/execution/test_sync.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/fixtures/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/fixtures/github_schema.graphql +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/fixtures/github_schema.json +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/fixtures/kitchen_sink.graphql +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_ast.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_block_string.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_character_classes.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_location.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/language/test_predicates.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_cached_property.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_convert_case.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_did_you_mean.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_frozen_dict.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_frozen_error.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_frozen_list.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_group_by.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_identity_func.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_inspect.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_is_awaitable.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_is_iterable.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_merge_kwargs.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_natural_compare.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_path.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_print_path_list.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_simple_pub_sub.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/pyutils/test_suggestion_list.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/star_wars_data.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/star_wars_schema.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/test_docs.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/test_star_wars_query.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/test_star_wars_validation.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/test_user_registry.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/test_version.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/type/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/type/test_assert_name.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/type/test_custom_scalars.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/type/test_directives.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/type/test_extensions.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/type/test_predicate.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/__init__.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_ast_from_value.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_sort_value_node.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_type_comparators.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_type_from_ast.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utilities/test_value_from_ast_untyped.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utils/dedent.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utils/gen_fuzz_strings.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/utils/test_gen_fuzz_strings.py +0 -0
- {graphql_core-3.2.6 → graphql_core-3.2.8}/tests/validation/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
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
|
|
@@ -13,7 +13,6 @@ Classifier: Topic :: Software Development :: Libraries
|
|
|
13
13
|
Classifier: License :: OSI Approved :: MIT License
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
15
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.7
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.8
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.9
|
|
@@ -21,10 +20,11 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
-
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Requires-Python: >=3.7,<4
|
|
25
25
|
Description-Content-Type: text/markdown
|
|
26
26
|
License-File: LICENSE
|
|
27
|
-
Requires-Dist: typing-extensions<5,>=4; python_version < "3.10"
|
|
27
|
+
Requires-Dist: typing-extensions<5,>=4.7; python_version < "3.10"
|
|
28
28
|
Dynamic: author
|
|
29
29
|
Dynamic: author-email
|
|
30
30
|
Dynamic: classifier
|
|
@@ -33,13 +33,14 @@ Dynamic: description-content-type
|
|
|
33
33
|
Dynamic: home-page
|
|
34
34
|
Dynamic: keywords
|
|
35
35
|
Dynamic: license
|
|
36
|
+
Dynamic: license-file
|
|
36
37
|
Dynamic: requires-dist
|
|
37
38
|
Dynamic: requires-python
|
|
38
39
|
Dynamic: summary
|
|
39
40
|
|
|
40
41
|
# GraphQL-core 3
|
|
41
42
|
|
|
42
|
-
GraphQL-core 3 is a Python 3.
|
|
43
|
+
GraphQL-core 3 is a Python 3.7+ port of [GraphQL.js](https://github.com/graphql/graphql-js),
|
|
43
44
|
the JavaScript reference implementation for [GraphQL](https://graphql.org/),
|
|
44
45
|
a query language for APIs created by Facebook.
|
|
45
46
|
|
|
@@ -49,7 +50,7 @@ a query language for APIs created by Facebook.
|
|
|
49
50
|

|
|
50
51
|
[](https://github.com/ambv/black)
|
|
51
52
|
|
|
52
|
-
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.
|
|
53
54
|
|
|
54
55
|
An extensive test suite with over 2500 unit tests and 100% coverage comprises a
|
|
55
56
|
replication of the complete test suite of GraphQL.js, making sure this port is
|
|
@@ -235,7 +236,7 @@ Design goals for the GraphQL-core 3 library were:
|
|
|
235
236
|
|
|
236
237
|
Some restrictions (mostly in line with the design goals):
|
|
237
238
|
|
|
238
|
-
* requires Python 3.
|
|
239
|
+
* requires Python 3.7 or newer
|
|
239
240
|
* does not support some already deprecated methods and options of GraphQL.js
|
|
240
241
|
* supports asynchronous operations only via async.io
|
|
241
242
|
(does not support the additional executors in GraphQL-core)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# GraphQL-core 3
|
|
2
2
|
|
|
3
|
-
GraphQL-core 3 is a Python 3.
|
|
3
|
+
GraphQL-core 3 is a Python 3.7+ port of [GraphQL.js](https://github.com/graphql/graphql-js),
|
|
4
4
|
the JavaScript reference implementation for [GraphQL](https://graphql.org/),
|
|
5
5
|
a query language for APIs created by Facebook.
|
|
6
6
|
|
|
@@ -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
|
|
@@ -196,7 +196,7 @@ Design goals for the GraphQL-core 3 library were:
|
|
|
196
196
|
|
|
197
197
|
Some restrictions (mostly in line with the design goals):
|
|
198
198
|
|
|
199
|
-
* requires Python 3.
|
|
199
|
+
* requires Python 3.7 or newer
|
|
200
200
|
* does not support some already deprecated methods and options of GraphQL.js
|
|
201
201
|
* supports asynchronous operations only via async.io
|
|
202
202
|
(does not support the additional executors in GraphQL-core)
|
|
@@ -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
|
|
@@ -137,6 +137,10 @@ Rules
|
|
|
137
137
|
|
|
138
138
|
.. autoclass:: VariablesInAllowedPositionRule
|
|
139
139
|
|
|
140
|
+
**No spec section: "Maximum introspection depth"**
|
|
141
|
+
|
|
142
|
+
.. autoclass:: MaxIntrospectionDepthRule
|
|
143
|
+
|
|
140
144
|
**SDL-specific validation rules**
|
|
141
145
|
|
|
142
146
|
.. autoclass:: LoneSchemaDefinitionRule
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# This file is automatically @generated by Poetry 2.3.2 and should not be changed by hand.
|
|
2
|
+
|
|
3
|
+
[[package]]
|
|
4
|
+
name = "typing-extensions"
|
|
5
|
+
version = "4.7.1"
|
|
6
|
+
description = "Backported and Experimental Type Hints for Python 3.7+"
|
|
7
|
+
optional = false
|
|
8
|
+
python-versions = ">=3.7"
|
|
9
|
+
groups = ["main"]
|
|
10
|
+
markers = "python_version < \"3.10\""
|
|
11
|
+
files = [
|
|
12
|
+
{file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"},
|
|
13
|
+
{file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"},
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
[metadata]
|
|
17
|
+
lock-version = "2.1"
|
|
18
|
+
python-versions = "^3.7"
|
|
19
|
+
content-hash = "d66030380f60a51d643393288c825d3e740f0b810f616d696cd1b367db19456e"
|
|
@@ -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."""
|
|
@@ -18,14 +18,14 @@ classifiers = [
|
|
|
18
18
|
"Intended Audience :: Developers",
|
|
19
19
|
"License :: OSI Approved :: MIT License",
|
|
20
20
|
"Programming Language :: Python :: 3",
|
|
21
|
-
"Programming Language :: Python :: 3.6",
|
|
22
21
|
"Programming Language :: Python :: 3.7",
|
|
23
22
|
"Programming Language :: Python :: 3.8",
|
|
24
23
|
"Programming Language :: Python :: 3.9",
|
|
25
24
|
"Programming Language :: Python :: 3.10",
|
|
26
25
|
"Programming Language :: Python :: 3.11",
|
|
27
26
|
"Programming Language :: Python :: 3.12",
|
|
28
|
-
"Programming Language :: Python :: 3.13"
|
|
27
|
+
"Programming Language :: Python :: 3.13",
|
|
28
|
+
"Programming Language :: Python :: 3.14",
|
|
29
29
|
]
|
|
30
30
|
packages = [
|
|
31
31
|
{ include = "graphql", from = "src" },
|
|
@@ -47,17 +47,27 @@ packages = [
|
|
|
47
47
|
]
|
|
48
48
|
|
|
49
49
|
[tool.poetry.dependencies]
|
|
50
|
-
python = "^3.
|
|
50
|
+
python = "^3.7"
|
|
51
51
|
typing-extensions = [
|
|
52
|
-
{ version = ">=4.
|
|
52
|
+
{ version = ">=4.7,<5", python = "<3.10" }
|
|
53
53
|
]
|
|
54
54
|
|
|
55
55
|
[tool.black]
|
|
56
|
-
target-version = [
|
|
56
|
+
target-version = [
|
|
57
|
+
'py37', 'py38', 'py39', 'py310', 'py311', 'py312', 'py313', 'py314'
|
|
58
|
+
]
|
|
57
59
|
|
|
58
60
|
[tool.pyright]
|
|
61
|
+
# silence pyright since we're using mypy already
|
|
62
|
+
reportArgumentType = false
|
|
63
|
+
reportAssignmentType = false
|
|
64
|
+
reportAttributeAccessIssue = false
|
|
59
65
|
reportIncompatibleVariableOverride = false
|
|
66
|
+
reportInvalidTypeForm = false
|
|
67
|
+
reportMissingModuleSource = false
|
|
60
68
|
reportMissingTypeArgument = false
|
|
69
|
+
reportReturnType = false
|
|
70
|
+
reportTypedDictNotRequiredAccess = false
|
|
61
71
|
reportUnknownArgumentType = false
|
|
62
72
|
reportUnknownMemberType = false
|
|
63
73
|
reportUnknownParameterType = false
|
|
@@ -77,5 +87,5 @@ disable = [
|
|
|
77
87
|
]
|
|
78
88
|
|
|
79
89
|
[build-system]
|
|
80
|
-
requires = ["poetry_core>=1,<3", "setuptools>=59,<
|
|
90
|
+
requires = ["poetry_core>=1,<3", "setuptools>=59,<83"]
|
|
81
91
|
build-backend = "poetry.core.masonry.api"
|
|
@@ -5,11 +5,14 @@ python-tag = py3
|
|
|
5
5
|
test = pytest
|
|
6
6
|
|
|
7
7
|
[tool:pytest]
|
|
8
|
+
minversion = 7.4
|
|
8
9
|
addopts = --benchmark-disable
|
|
9
10
|
python_classes = PyTest*
|
|
10
|
-
asyncio_mode =
|
|
11
|
+
asyncio_mode = strict
|
|
12
|
+
asyncio_default_fixture_loop_scope = function
|
|
11
13
|
timeout = 100
|
|
12
14
|
filterwarnings = ignore::pytest.PytestConfigWarning
|
|
15
|
+
testpaths = tests
|
|
13
16
|
|
|
14
17
|
[egg_info]
|
|
15
18
|
tag_build =
|
|
@@ -27,7 +27,6 @@ setup(
|
|
|
27
27
|
"License :: OSI Approved :: MIT License",
|
|
28
28
|
"Programming Language :: Python :: 3",
|
|
29
29
|
"Programming Language :: Python :: 3 :: Only",
|
|
30
|
-
"Programming Language :: Python :: 3.6",
|
|
31
30
|
"Programming Language :: Python :: 3.7",
|
|
32
31
|
"Programming Language :: Python :: 3.8",
|
|
33
32
|
"Programming Language :: Python :: 3.9",
|
|
@@ -35,11 +34,12 @@ setup(
|
|
|
35
34
|
"Programming Language :: Python :: 3.11",
|
|
36
35
|
"Programming Language :: Python :: 3.12",
|
|
37
36
|
"Programming Language :: Python :: 3.13",
|
|
37
|
+
"Programming Language :: Python :: 3.14",
|
|
38
38
|
],
|
|
39
39
|
install_requires=[
|
|
40
|
-
"typing-extensions>=4,<5; python_version < '3.10'",
|
|
40
|
+
"typing-extensions>=4.7,<5; python_version < '3.10'",
|
|
41
41
|
],
|
|
42
|
-
python_requires=">=3.
|
|
42
|
+
python_requires=">=3.7,<4",
|
|
43
43
|
packages=find_packages("src"),
|
|
44
44
|
package_dir={"": "src"},
|
|
45
45
|
# PEP-561: https://www.python.org/dev/peps/pep-0561/
|
|
@@ -256,6 +256,7 @@ from .type import (
|
|
|
256
256
|
GraphQLSkipDirective,
|
|
257
257
|
GraphQLDeprecatedDirective,
|
|
258
258
|
GraphQLSpecifiedByDirective,
|
|
259
|
+
GraphQLOneOfDirective,
|
|
259
260
|
# "Enum" of Type Kinds
|
|
260
261
|
TypeKind,
|
|
261
262
|
# Constant Deprecation Reason
|
|
@@ -341,6 +342,7 @@ from .type import (
|
|
|
341
342
|
GraphQLArgumentMap,
|
|
342
343
|
GraphQLEnumValue,
|
|
343
344
|
GraphQLEnumValueMap,
|
|
345
|
+
GraphQLEnumValuesDefinition,
|
|
344
346
|
GraphQLField,
|
|
345
347
|
GraphQLFieldMap,
|
|
346
348
|
GraphQLFieldResolver,
|
|
@@ -378,6 +380,7 @@ from .validation import (
|
|
|
378
380
|
SDLValidationRule,
|
|
379
381
|
# All validation rules in the GraphQL Specification.
|
|
380
382
|
specified_rules,
|
|
383
|
+
recommended_rules,
|
|
381
384
|
# Individual validation rules.
|
|
382
385
|
ExecutableDefinitionsRule,
|
|
383
386
|
FieldsOnCorrectTypeRule,
|
|
@@ -417,6 +420,8 @@ from .validation import (
|
|
|
417
420
|
# Custom validation rules
|
|
418
421
|
NoDeprecatedCustomRule,
|
|
419
422
|
NoSchemaIntrospectionCustomRule,
|
|
423
|
+
# Recommended validation rules
|
|
424
|
+
MaxIntrospectionDepthRule,
|
|
420
425
|
)
|
|
421
426
|
|
|
422
427
|
# Execute GraphQL documents.
|
|
@@ -485,6 +490,7 @@ __all__ = [
|
|
|
485
490
|
"GraphQLSkipDirective",
|
|
486
491
|
"GraphQLDeprecatedDirective",
|
|
487
492
|
"GraphQLSpecifiedByDirective",
|
|
493
|
+
"GraphQLOneOfDirective",
|
|
488
494
|
"TypeKind",
|
|
489
495
|
"DEFAULT_DEPRECATION_REASON",
|
|
490
496
|
"introspection_types",
|
|
@@ -559,6 +565,7 @@ __all__ = [
|
|
|
559
565
|
"GraphQLArgumentMap",
|
|
560
566
|
"GraphQLEnumValue",
|
|
561
567
|
"GraphQLEnumValueMap",
|
|
568
|
+
"GraphQLEnumValuesDefinition",
|
|
562
569
|
"GraphQLField",
|
|
563
570
|
"GraphQLFieldMap",
|
|
564
571
|
"GraphQLFieldResolver",
|
|
@@ -700,6 +707,7 @@ __all__ = [
|
|
|
700
707
|
"ASTValidationRule",
|
|
701
708
|
"SDLValidationRule",
|
|
702
709
|
"specified_rules",
|
|
710
|
+
"recommended_rules",
|
|
703
711
|
"ExecutableDefinitionsRule",
|
|
704
712
|
"FieldsOnCorrectTypeRule",
|
|
705
713
|
"FragmentsOnCompositeTypesRule",
|
|
@@ -736,6 +744,7 @@ __all__ = [
|
|
|
736
744
|
"PossibleTypeExtensionsRule",
|
|
737
745
|
"NoDeprecatedCustomRule",
|
|
738
746
|
"NoSchemaIntrospectionCustomRule",
|
|
747
|
+
"MaxIntrospectionDepthRule",
|
|
739
748
|
"GraphQLError",
|
|
740
749
|
"GraphQLErrorExtensions",
|
|
741
750
|
"GraphQLFormattedError",
|
|
@@ -122,7 +122,11 @@ def coerce_variable_values(
|
|
|
122
122
|
continue
|
|
123
123
|
|
|
124
124
|
def on_input_value_error(
|
|
125
|
-
path: List[Union[str, int]],
|
|
125
|
+
path: List[Union[str, int]],
|
|
126
|
+
invalid_value: Any,
|
|
127
|
+
error: GraphQLError,
|
|
128
|
+
var_name: str = var_name,
|
|
129
|
+
var_def_node: VariableDefinitionNode = var_def_node,
|
|
126
130
|
) -> None:
|
|
127
131
|
invalid_str = inspect(invalid_value)
|
|
128
132
|
prefix = f"Variable '${var_name}' got invalid value {invalid_str}"
|
|
@@ -196,7 +200,8 @@ def get_argument_values(
|
|
|
196
200
|
value_node,
|
|
197
201
|
)
|
|
198
202
|
continue # pragma: no cover
|
|
199
|
-
|
|
203
|
+
variable_value = variable_values[variable_name]
|
|
204
|
+
is_null = variable_value is None or variable_value is Undefined
|
|
200
205
|
|
|
201
206
|
if is_null and is_non_null_type(arg_type):
|
|
202
207
|
raise GraphQLError(
|
|
@@ -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.")
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import warnings
|
|
2
|
+
from typing import Any, Optional
|
|
2
3
|
|
|
3
4
|
__all__ = ["Undefined", "UndefinedType"]
|
|
4
5
|
|
|
@@ -6,6 +7,18 @@ __all__ = ["Undefined", "UndefinedType"]
|
|
|
6
7
|
class UndefinedType(ValueError):
|
|
7
8
|
"""Auxiliary class for creating the Undefined singleton."""
|
|
8
9
|
|
|
10
|
+
_instance: Optional["UndefinedType"] = None
|
|
11
|
+
|
|
12
|
+
def __new__(cls) -> "UndefinedType":
|
|
13
|
+
if cls._instance is None:
|
|
14
|
+
cls._instance = super().__new__(cls)
|
|
15
|
+
else:
|
|
16
|
+
warnings.warn("Redefinition of 'Undefined'", RuntimeWarning, stacklevel=2)
|
|
17
|
+
return cls._instance
|
|
18
|
+
|
|
19
|
+
def __reduce__(self) -> str:
|
|
20
|
+
return "Undefined"
|
|
21
|
+
|
|
9
22
|
def __repr__(self) -> str:
|
|
10
23
|
return "Undefined"
|
|
11
24
|
|
|
@@ -92,6 +92,7 @@ from .definition import (
|
|
|
92
92
|
GraphQLArgumentMap,
|
|
93
93
|
GraphQLEnumValue,
|
|
94
94
|
GraphQLEnumValueMap,
|
|
95
|
+
GraphQLEnumValuesDefinition,
|
|
95
96
|
GraphQLField,
|
|
96
97
|
GraphQLFieldMap,
|
|
97
98
|
GraphQLInputField,
|
|
@@ -132,6 +133,7 @@ from .directives import (
|
|
|
132
133
|
GraphQLSkipDirective,
|
|
133
134
|
GraphQLDeprecatedDirective,
|
|
134
135
|
GraphQLSpecifiedByDirective,
|
|
136
|
+
GraphQLOneOfDirective,
|
|
135
137
|
# Keyword Args
|
|
136
138
|
GraphQLDirectiveKwargs,
|
|
137
139
|
# Constant Deprecation Reason
|
|
@@ -244,6 +246,7 @@ __all__ = [
|
|
|
244
246
|
"GraphQLArgumentMap",
|
|
245
247
|
"GraphQLEnumValue",
|
|
246
248
|
"GraphQLEnumValueMap",
|
|
249
|
+
"GraphQLEnumValuesDefinition",
|
|
247
250
|
"GraphQLField",
|
|
248
251
|
"GraphQLFieldMap",
|
|
249
252
|
"GraphQLInputField",
|
|
@@ -276,6 +279,7 @@ __all__ = [
|
|
|
276
279
|
"GraphQLSkipDirective",
|
|
277
280
|
"GraphQLDeprecatedDirective",
|
|
278
281
|
"GraphQLSpecifiedByDirective",
|
|
282
|
+
"GraphQLOneOfDirective",
|
|
279
283
|
"GraphQLDirectiveKwargs",
|
|
280
284
|
"DEFAULT_DEPRECATION_REASON",
|
|
281
285
|
"is_specified_scalar_type",
|
|
@@ -116,6 +116,7 @@ __all__ = [
|
|
|
116
116
|
"GraphQLEnumValue",
|
|
117
117
|
"GraphQLEnumValueKwargs",
|
|
118
118
|
"GraphQLEnumValueMap",
|
|
119
|
+
"GraphQLEnumValuesDefinition",
|
|
119
120
|
"GraphQLField",
|
|
120
121
|
"GraphQLFieldKwargs",
|
|
121
122
|
"GraphQLFieldMap",
|
|
@@ -228,6 +229,23 @@ class GraphQLNamedType(GraphQLType):
|
|
|
228
229
|
ast_node: Optional[TypeDefinitionNode]
|
|
229
230
|
extension_ast_nodes: Tuple[TypeExtensionNode, ...]
|
|
230
231
|
|
|
232
|
+
reserved_types: Dict[str, "GraphQLNamedType"] = {}
|
|
233
|
+
|
|
234
|
+
def __new__(cls, name: str, *_args: Any, **_kwargs: Any) -> "GraphQLNamedType":
|
|
235
|
+
if name in cls.reserved_types:
|
|
236
|
+
raise TypeError(f"Redefinition of reserved type {name!r}")
|
|
237
|
+
return super().__new__(cls)
|
|
238
|
+
|
|
239
|
+
def __reduce__(self) -> Tuple[Callable, Tuple]:
|
|
240
|
+
return self._get_instance, (self.name, tuple(self.to_kwargs().items()))
|
|
241
|
+
|
|
242
|
+
@classmethod
|
|
243
|
+
def _get_instance(cls, name: str, args: Tuple) -> "GraphQLNamedType":
|
|
244
|
+
try:
|
|
245
|
+
return cls.reserved_types[name]
|
|
246
|
+
except KeyError:
|
|
247
|
+
return cls(**dict(args))
|
|
248
|
+
|
|
231
249
|
def __init__(
|
|
232
250
|
self,
|
|
233
251
|
name: str,
|
|
@@ -833,9 +851,7 @@ class GraphQLObjectType(GraphQLNamedType):
|
|
|
833
851
|
)
|
|
834
852
|
return {
|
|
835
853
|
assert_name(name): (
|
|
836
|
-
value
|
|
837
|
-
if isinstance(value, GraphQLField)
|
|
838
|
-
else GraphQLField(value) # type: ignore
|
|
854
|
+
value if isinstance(value, GraphQLField) else GraphQLField(value)
|
|
839
855
|
)
|
|
840
856
|
for name, value in fields.items()
|
|
841
857
|
}
|
|
@@ -969,9 +985,7 @@ class GraphQLInterfaceType(GraphQLNamedType):
|
|
|
969
985
|
)
|
|
970
986
|
return {
|
|
971
987
|
assert_name(name): (
|
|
972
|
-
value
|
|
973
|
-
if isinstance(value, GraphQLField)
|
|
974
|
-
else GraphQLField(value) # type: ignore
|
|
988
|
+
value if isinstance(value, GraphQLField) else GraphQLField(value)
|
|
975
989
|
)
|
|
976
990
|
for name, value in fields.items()
|
|
977
991
|
}
|
|
@@ -1110,6 +1124,8 @@ def assert_union_type(type_: Any) -> GraphQLUnionType:
|
|
|
1110
1124
|
|
|
1111
1125
|
GraphQLEnumValueMap = Dict[str, "GraphQLEnumValue"]
|
|
1112
1126
|
|
|
1127
|
+
GraphQLEnumValuesDefinition = Union[GraphQLEnumValueMap, Mapping[str, Any], Type[Enum]]
|
|
1128
|
+
|
|
1113
1129
|
|
|
1114
1130
|
class GraphQLEnumTypeKwargs(GraphQLNamedTypeKwargs, total=False):
|
|
1115
1131
|
values: GraphQLEnumValueMap
|
|
@@ -1157,7 +1173,7 @@ class GraphQLEnumType(GraphQLNamedType):
|
|
|
1157
1173
|
def __init__(
|
|
1158
1174
|
self,
|
|
1159
1175
|
name: str,
|
|
1160
|
-
values:
|
|
1176
|
+
values: Thunk[GraphQLEnumValuesDefinition],
|
|
1161
1177
|
names_as_values: Optional[bool] = False,
|
|
1162
1178
|
description: Optional[str] = None,
|
|
1163
1179
|
extensions: Optional[Dict[str, Any]] = None,
|
|
@@ -1171,6 +1187,8 @@ class GraphQLEnumType(GraphQLNamedType):
|
|
|
1171
1187
|
ast_node=ast_node,
|
|
1172
1188
|
extension_ast_nodes=extension_ast_nodes,
|
|
1173
1189
|
)
|
|
1190
|
+
if not isinstance(values, type):
|
|
1191
|
+
values = resolve_thunk(values) # type: ignore
|
|
1174
1192
|
try: # check for enum
|
|
1175
1193
|
values = cast(Enum, values).__members__ # type: ignore
|
|
1176
1194
|
except AttributeError:
|
|
@@ -1179,7 +1197,7 @@ class GraphQLEnumType(GraphQLNamedType):
|
|
|
1179
1197
|
):
|
|
1180
1198
|
try:
|
|
1181
1199
|
# noinspection PyTypeChecker
|
|
1182
|
-
values = dict(values)
|
|
1200
|
+
values = dict(values) # type: ignore
|
|
1183
1201
|
except (TypeError, ValueError) as error:
|
|
1184
1202
|
raise TypeError(
|
|
1185
1203
|
f"{name} values must be an Enum or a mapping"
|
|
@@ -1377,6 +1395,7 @@ GraphQLInputFieldOutType = Callable[[Dict[str, Any]], Any]
|
|
|
1377
1395
|
class GraphQLInputObjectTypeKwargs(GraphQLNamedTypeKwargs, total=False):
|
|
1378
1396
|
fields: GraphQLInputFieldMap
|
|
1379
1397
|
out_type: Optional[GraphQLInputFieldOutType]
|
|
1398
|
+
is_one_of: bool
|
|
1380
1399
|
|
|
1381
1400
|
|
|
1382
1401
|
class GraphQLInputObjectType(GraphQLNamedType):
|
|
@@ -1406,6 +1425,7 @@ class GraphQLInputObjectType(GraphQLNamedType):
|
|
|
1406
1425
|
|
|
1407
1426
|
ast_node: Optional[InputObjectTypeDefinitionNode]
|
|
1408
1427
|
extension_ast_nodes: Tuple[InputObjectTypeExtensionNode, ...]
|
|
1428
|
+
is_one_of: bool
|
|
1409
1429
|
|
|
1410
1430
|
def __init__(
|
|
1411
1431
|
self,
|
|
@@ -1416,6 +1436,7 @@ class GraphQLInputObjectType(GraphQLNamedType):
|
|
|
1416
1436
|
extensions: Optional[Dict[str, Any]] = None,
|
|
1417
1437
|
ast_node: Optional[InputObjectTypeDefinitionNode] = None,
|
|
1418
1438
|
extension_ast_nodes: Optional[Collection[InputObjectTypeExtensionNode]] = None,
|
|
1439
|
+
is_one_of: bool = False,
|
|
1419
1440
|
) -> None:
|
|
1420
1441
|
super().__init__(
|
|
1421
1442
|
name=name,
|
|
@@ -1441,6 +1462,7 @@ class GraphQLInputObjectType(GraphQLNamedType):
|
|
|
1441
1462
|
self._fields = fields
|
|
1442
1463
|
if out_type is not None:
|
|
1443
1464
|
self.out_type = out_type # type: ignore
|
|
1465
|
+
self.is_one_of = is_one_of
|
|
1444
1466
|
|
|
1445
1467
|
@staticmethod
|
|
1446
1468
|
def out_type(value: Dict[str, Any]) -> Any:
|
|
@@ -1460,6 +1482,7 @@ class GraphQLInputObjectType(GraphQLNamedType):
|
|
|
1460
1482
|
if self.out_type is GraphQLInputObjectType.out_type
|
|
1461
1483
|
else self.out_type
|
|
1462
1484
|
),
|
|
1485
|
+
is_one_of=self.is_one_of,
|
|
1463
1486
|
)
|
|
1464
1487
|
|
|
1465
1488
|
def __copy__(self) -> "GraphQLInputObjectType": # pragma: no cover
|
|
@@ -1492,7 +1515,7 @@ class GraphQLInputObjectType(GraphQLNamedType):
|
|
|
1492
1515
|
assert_name(name): (
|
|
1493
1516
|
value
|
|
1494
1517
|
if isinstance(value, GraphQLInputField)
|
|
1495
|
-
else GraphQLInputField(value)
|
|
1518
|
+
else GraphQLInputField(value)
|
|
1496
1519
|
)
|
|
1497
1520
|
for name, value in fields.items()
|
|
1498
1521
|
}
|
|
@@ -1725,7 +1748,7 @@ def get_nullable_type(type_: GraphQLNonNull) -> GraphQLNullableType: ...
|
|
|
1725
1748
|
|
|
1726
1749
|
|
|
1727
1750
|
def get_nullable_type(
|
|
1728
|
-
type_: Optional[Union[GraphQLNullableType, GraphQLNonNull]]
|
|
1751
|
+
type_: Optional[Union[GraphQLNullableType, GraphQLNonNull]],
|
|
1729
1752
|
) -> Optional[GraphQLNullableType]:
|
|
1730
1753
|
"""Unwrap possible non-null type"""
|
|
1731
1754
|
if is_non_null_type(type_):
|
|
@@ -22,6 +22,7 @@ __all__ = [
|
|
|
22
22
|
"GraphQLSkipDirective",
|
|
23
23
|
"GraphQLDeprecatedDirective",
|
|
24
24
|
"GraphQLSpecifiedByDirective",
|
|
25
|
+
"GraphQLOneOfDirective",
|
|
25
26
|
"DirectiveLocation",
|
|
26
27
|
"DEFAULT_DEPRECATION_REASON",
|
|
27
28
|
]
|
|
@@ -237,12 +238,21 @@ GraphQLSpecifiedByDirective = GraphQLDirective(
|
|
|
237
238
|
description="Exposes a URL that specifies the behavior of this scalar.",
|
|
238
239
|
)
|
|
239
240
|
|
|
241
|
+
# Used to declare an Input Object as a OneOf Input Objects.
|
|
242
|
+
GraphQLOneOfDirective = GraphQLDirective(
|
|
243
|
+
name="oneOf",
|
|
244
|
+
locations=[DirectiveLocation.INPUT_OBJECT],
|
|
245
|
+
args={},
|
|
246
|
+
description="Indicates an Input Object is a OneOf Input Object.",
|
|
247
|
+
)
|
|
248
|
+
|
|
240
249
|
|
|
241
250
|
specified_directives: Tuple[GraphQLDirective, ...] = (
|
|
242
251
|
GraphQLIncludeDirective,
|
|
243
252
|
GraphQLSkipDirective,
|
|
244
253
|
GraphQLDeprecatedDirective,
|
|
245
254
|
GraphQLSpecifiedByDirective,
|
|
255
|
+
GraphQLOneOfDirective,
|
|
246
256
|
)
|
|
247
257
|
"""A tuple with all directives from the GraphQL specification"""
|
|
248
258
|
|