Skip to main content

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'),
        ])

Metadata

Release files for clear-skies-gql 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for clear-skies-gql 0.1.2
File Size Uploaded
clear-skies-gql-0.1.2.tar.gz 9.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for clear-skies-gql 0.1.2
File Interpreter ABI Platform
clear_skies_gql-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 19.7 kB

Release files / clear-skies-gql-0.1.2.tar.gz

Download URL clear-skies-gql-0.1.2.tar.gz
Size 9.2 kB
Tags Source
SHA-256 checksum
How to use checksums
442f70e878bda25ce17f58ced012705a012a9a6ed3ef8eee0d2a548824751483
BLAKE2b-256 checksum
How to use checksums
7c3a68a231e11e0c71eef535cb968be7cccfaeb96772f095231f8131976e74a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release files / clear_skies_gql-0.1.2-py3-none-any.whl

Download URL clear_skies_gql-0.1.2-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7b26e5cf6bf785d9e2d14ba5f378256ae0303a662ebc3fd8159d656ba3e92aa3
BLAKE2b-256 checksum
How to use checksums
3da993ed2ed73fdf3cba8b84ad423bd50d9b5c4132e5ecf3bcc0417eb00b9129
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page