#python #python-3.x #graphql
#python #python-3.x #graphql
Вопрос:
Я обнаружил кое-что запутанное в graphql-core
библиотеке python и хотел узнать, может быть, это ошибка или я чего-то не хватает, и это ожидаемое поведение.
Это мой example.py
файл. У него есть только один распознаватель, который выдает ошибку.
from graphql import (GraphQLSchema, GraphQLObjectType, GraphQLField, GraphQLString, graphql_sync, )
def resolve_fail(*args, **kwargs):
raise ValueError("Some error")
schema = GraphQLSchema(
query=GraphQLObjectType(
name='RootQueryType',
fields={
'hello': GraphQLField(
GraphQLString,
resolve=resolve_fail)
}))
query = '{ hello }'
result = graphql_sync(schema, query)
Я знаю, что это result.errors[0]
является GraphQLError
исключением. Но я ожидал, что result.errors[0].original_error
так и будет ValueError
.
Однако я вижу, что result.errors[0].original_error
это GraphQLError
и result.errors[0].original_error.original_error
есть ValueError
.
Это нормально?
>>> print(type(result.errors[0]))
<class 'graphql.error.graphql_error.GraphQLError'>
>>> print(type(result.errors[0].original_error))
<class 'graphql.error.graphql_error.GraphQLError'>
>>> print(type(result.errors[0].original_error.original_error))
<class 'ValueError'>
Ответ №1:
Наконец, это была ошибка, о которой сообщили владельцам библиотеки, и они исправили ее здесь.