graphql-python / graphql-python/gql-next
Does this package support union type fragments?
- Dominant language
- Python
- Stars
- 78
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
I have a .graphql file that looks like this:
```
query GetBook($id: UUID!) {
book(id: $id) {
author {
id
name
... on FantasyAuthor {
fantasyBooksWritten
}
... on SciFiAuthor {
sciFiBooksWritten
}
}
}
}
```
However, when I run `gql run` I get the following error:
```
Parsing /home/user/python-test/book_query.graphql ... Traceback (most recent call last):
File "/home/user/.local/bin/gql", line 11, in
sys.exit(cli())
File "/home/user/.local/lib/python3.8/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/home/user/.local/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/home/user/.local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/user/.local/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/user/.local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/home/user/.local/lib/python3.8/site-packages/gql/cli.py", line 99, in run
process_file(filename, query_parser, query_renderer)
File "/home/user/.local/lib/python3.8/site-packages/gql/cli.py", line 68, in process_file
parsed = parser.parse(query)
File "/home/user/.local/lib/python3.8/site-packages/gql/query_parser.py", line 243, in parse
visit(document_ast, TypeInfoVisitor(type_info, visitor))
File "/home/user/.local/lib/python3.8/site-packages/graphql/language/visitor.py", line 286, in visit
result = visit_fn(visitor, node, key, parent, path, ancestors)
File "/home/user/.local/lib/python3.8/site-packages/graphql/language/visitor.py", line 394, in leave
result = fn(self.visitor, node, *args) if fn else None
File "/home/user/.local/lib/python3.8/site-packages/gql/query_parser.py", line 109, in leave_selection_set
self.pull()
File "/home/user/.local/lib/python3.8/site-packages/gql/query_parser.py", line 70, in pull
return self.dfs_path.pop()
IndexError: pop from empty list
```
wondering if anyone has seen similar issues. Thanks!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with gql/query_parser.py, especially parse and the selection-set handling shown in the traceback; inspect how gql run in gql/cli.py passes the document to the parser. Reproduce the supplied query, then verify that union type fragments parse without the IndexError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100