Skip to content

wavemm/gql

 
 

Repository files navigation

GQL

This is a GraphQL client for Python. Plays nicely with graphene, graphql-core, graphql-js and any other GraphQL implementation compatible with the spec.

GQL architecture is inspired by React-Relay and Apollo-Client.

travis pypi coveralls

Installation

$ pip install gql

Usage

The example below shows how you can execute queries against a local schema.

from gql import gql, Client

client = Client(schema=schema)
query = gql('''
{
  hello
}
''')

client.execute(query)

To execute against a graphQL API. (We get the schema by using introspection).

from gql import gql, Client
from gql.transport.requests import RequestsHTTPTransport

_transport = RequestsHTTPTransport(
    url='http://api.xxx/graphql',
    use_json=True,
)

client = Client(
    retries=3,
    transport=_transport,
    fetch_schema_from_transport=True,
)
query = gql('''
{
  hello
}
''')

client.execute(query)

If you have a local schema stored as a schema.graphql file, you can do:

from graphql import build_ast_schema, parse
from gql import gql, Client

with open('schema.graphql') as source:
    document = parse(source.read())
    
schema = build_ast_schema(document)

client = Client(schema=schema)
query = gql('''
{
  hello
}
''')

client.execute(query)

License

MIT License

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.4%
  • Shell 0.6%