graphql-python / graphql-python/graphene

Failed to print schema with InputObjectType with DateTime field with default_value

Abierto
#1,293 1 comentario 0 reacciones 0 asignados Ver en GitHub
🐛 bug
Lenguaje dominante
Python
Estrellas
8.2k
Forks
818
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Declaring a DateTime with default_value in InputObjectType makes schema unprintable due to unsupported conversion in `graphql/utils/ast_from_value.py`

InputObjectType declared as:
```
class Filters(InputObjectType):
datetime_after = DateTime(required=False, default_value=datetime.min)
datetime_before = DateTime(required=False, default_value=datetime.max)
```

normally attached to the Query
causes `print(schema)` failing with:

```
(...)
File "lib/python3.8/site-packages/graphql/utils/schema_printer.py", line 205, in _print_input_value
default_value = " = " + print_ast(ast_from_value(arg.default_value, arg.type))
File "lib/python3.8/site-packages/graphql/utils/ast_from_value.py", line 53, in ast_from_value
assert isinstance(value, dict)
AssertionError
```

Without default_value it works.
I'm using default values like shown in #856 but even without this support in ast_from_value is clearly missing.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Reproduce el fallo al imprimir el esquema con el Filters InputObjectType y los valores predeterminados de DateTime mostrados en el issue. Empieza en graphql/utils/ast_from_value.py y luego inspecciona el punto de llamada en schema_printer.py; se considera terminado cuando print(schema) se ejecuta correctamente si los campos DateTime tienen valores default_value.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
graphql, python
Área
api, backend
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.