graphql-python / graphql-python/graphql-core-legacy

Parser raises an error for null Boolean Type

Open
#285 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
372
Forks
175
PR merge metrics
No merged PRs in 30d

Description

The parser is not able to handle boolean types with `null` default type.

This is handled in this line: https://github.com/graphql-python/graphql-core-legacy/blob/master/graphql/language/parser.py#L502

Following a [commit](https://github.com/octokit/graphql-schema/commit/18c40d2bb68d8f27acfc62e768d34aadfca9e8b2#diff-9fcde326d127f74194f70e563bdf2c118c51b719c308f015b8eb0204a9a552fb) GitHub introduced to their schema yesterday `gql` can no longer parse its schema, as it fails on this `null` `Boolean` type:

```
{'name': 'isVerified', 'description': 'Filter by if the domain is verified.', 'type': {'kind': 'SCALAR', 'name': 'Boolean', 'ofType': None}, 'defaultValue': 'null'}
```

GitHub claims this change is in accordance with the [GraphQL standards documentation](https://graphql.org/graphql-js/basic-types/):

> By default, every type is nullable - it's legitimate to return null as any of the scalar types. Use an exclamation point to indicate a type cannot be nullable, so String! is a non-nullable string.

> Therefore, it appears that a null default value for a boolean is valid in GraphQL.

Currently the code specifically ignores `null` values.

![image](https://user-images.githubusercontent.com/20818773/109168192-3d706b00-7787-11eb-8594-d84361c4081a.png)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.