clearskies bindings for Apollo GQL
Project description
clearskies-gql
clearskies bindings for Graph QL. While this may eventually include handlers to create GQL servers, the current focus is just on a backend to interact with GQL servers.
Installation, Documentation, and Usage
To install:
pip3 install clear-skies-gql
Usage
Example
Include this in your binding modules, extend it if you need to specify authentication, and then use it in your models.
import clearskies
import clearskies_gql
def process_pets_from_gql(pets):
for pet in pets.where('name=fido'):
print(pet.species)
class GqlBackendWithAuth(clearskies_gql.backends.GqlBackend):
def __init__(self, requests, environment, logging, my_auth_method):
super().__init__(requests, environment, logging)
self.configure(
url='https://gql.server.example.com',
auth=my_auth_method,
)
class Pet(clearskies.Model):
def __init__(self, gql_backend_with_auth, columns):
super().__init__(gql_backend_with_auth, columns)
def columns_configuration(self):
return OrderedDict([
clearskies.column_types.string('name'),
clearskies.column_types.string('species'),
])
process_pets = clearskies.Application(
clearskies.handlers.Callable,
{'callable': process_pets_from_gql},
binding_modules=[clearskies_gql],
binding_classes=[Pet, GqlBackendWithAuth],
)
Then just wire up your application to a context and you're ready to go!
Record name
clear-skies-gql
will use the pluralized and snake_case version of the model class name as the descriptor of the records in GQL, e.g. the above model class results in this query:
query Query {
pets {
name
species
}
}
But you can override this behavior by specifying the table name for your model, e.g.:
class Pet(clearskies.Model):
def __init__(self, gql_backend_with_auth, columns):
super().__init__(gql_backend_with_auth, columns)
@classmethod
def table_name(cls):
return 'whateverYouWant'
def columns_configuration(self):
return OrderedDict([
clearskies.column_types.string('name'),
clearskies.column_types.string('species'),
])
results in this query:
query Query {
whateverYouWant {
name
species
}
}
Server URL
You can also specify the URL to the GQL server by setting the gql_server_url
environment variable. If your gql server doesn't require authentication, then you can use the graphql backend directly:
# note: requires the gql_server_url environment variable to point to the server
class Pet(clearskies.Model):
def __init__(self, gql_backend, columns):
super().__init__(gql_backend, columns)
def columns_configuration(self):
return OrderedDict([
clearskies.column_types.string('name'),
clearskies.column_types.string('species'),
])
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file clear-skies-gql-0.1.2.tar.gz
.
File metadata
- Download URL: clear-skies-gql-0.1.2.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 442f70e878bda25ce17f58ced012705a012a9a6ed3ef8eee0d2a548824751483 |
|
MD5 | 2a0e3206d8736fb0cf80c1d0d41146b7 |
|
BLAKE2b-256 | 7c3a68a231e11e0c71eef535cb968be7cccfaeb96772f095231f8131976e74a0 |
Provenance
File details
Details for the file clear_skies_gql-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: clear_skies_gql-0.1.2-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b26e5cf6bf785d9e2d14ba5f378256ae0303a662ebc3fd8159d656ba3e92aa3 |
|
MD5 | 9dec67634e8c7ea5861cab983de48c23 |
|
BLAKE2b-256 | 3da993ed2ed73fdf3cba8b84ad423bd50d9b5c4132e5ecf3bcc0417eb00b9129 |