Files
blender-portable-repo/scripts/addons/Rokoko Libraries/python311/gql/gql.py
T
2026-03-17 14:58:51 -06:00

25 lines
932 B
Python

from __future__ import annotations
from graphql import DocumentNode, Source, parse
def gql(request_string: str | Source) -> DocumentNode:
"""Given a string containing a GraphQL request, parse it into a Document.
:param request_string: the GraphQL request as a String
:type request_string: str | Source
:return: a Document which can be later executed or subscribed by a
:class:`Client <gql.client.Client>`, by an
:class:`async session <gql.client.AsyncClientSession>` or by a
:class:`sync session <gql.client.SyncClientSession>`
:raises GraphQLError: if a syntax error is encountered.
"""
if isinstance(request_string, Source):
source = request_string
elif isinstance(request_string, str):
source = Source(request_string, "GraphQL request")
else:
raise TypeError("Request must be passed as a string or Source object.")
return parse(source)