Skip to main content

A module used to generate querry statements and perform data fetching via GraphQL

Project description

GQLA - GraphQL Assistant

GQLA provides an easy way to fetch data from GraphQL api on server side.

Navigation:

Intro

GQLA is published under MIT license and doesn't provide any warranty. It is single person developed package.
No roadmap No warranty No consistency No active and fast responces to dev

Usage

WARNING : watch carefull about your recursion depth; nodes and edges also counted as recursion level;

Example of basic usage bellow:

from gqla import GQLA

# Create a list of ignored fields (recommended values)
ignore = ['pageInfo', 'deprecationReason', 'isDeprecated', 'cursor', 'parent1', 'id']

# Create a list of fields you only want to retrieve
only = ['edges', 'node', 'code', 'name', 'StarObject', 'PlanetObject', 'orbitals']

# Create a GQLA class instance with provided settings
helper = GQLA('solar', url='localhost', port='8080', usefolder=True, only=only, ignore=ignore, recursive_depth=5)

# Set output visualization to "pretty" json
helper._pretty = True

# Gather service structure
await helper.introspection()

# Request 'allStellar' query with arguments (filters:{not: {objectType: planet}}, first: 5) and save to json file
await helper.query_one('allStellar', usefolder=True, filters={'not': {'objectType': 'planet'}}, first='5')

# Request 'allStellar' query with fields in 'only' list and arguments (first: 1) without saving to file
result = await helper.query_one('allStellar', usefolder=False, only_fields=True, first='1')

# Print result of execution
print(result)

Installation

PIP

  • pip install gqla

SETUP

  • python setup.py install

Requirements:

  • r/w access if using folder to save infrastucture
  • python >= 3.5
  • aiohttp

Structure

Classes
  • statics - static data like intrispection query and url/query templates
  • GQLStorage - Storage package to contain and parse GraphQL data types
  • VerticalStorage - package to share data between vertical structures
  • Generator - Generator package used to create queries from model
  • GQLModel - Model package containing GraphQL service data
  • abstracts - package containing abstracts of all classes
  • GQQStorage - Queries storage package
  • Executor - Executor package
  • GQQuery - Queries package
  • GQLA - main class
Parameters:
  • usefolder - directive to use folder to store data such as service model, querries and returned data
  • name - name used to define service; required to create folders if usefolder is set
  • _subpid - number of subtask running; No actual usage besides logging
  • ignore - list of statements to ignore during querries generation
  • only - list of statements to keep during querries generation
  • recursive_depth - recursion depth limitation;
  • port - port of GraphQL service
  • url - url of GraphQL service
Methods

Notice that async meant to execute in execution loop;

  • introspection - method to gather information about service;async
  • query_one - method to generate and execute querries;async

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gqla-1.1.2.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gqla-1.1.2-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file gqla-1.1.2.tar.gz.

File metadata

  • Download URL: gqla-1.1.2.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3

File hashes

Hashes for gqla-1.1.2.tar.gz
Algorithm Hash digest
SHA256 90113a57f7920e343de02767baf4c37155ecaebd763dc75d23d39ebca23cf2f9
MD5 a23833a07ec9bc25b90a3143e4aaea1f
BLAKE2b-256 ed2e7804d6963424e45eb2af5bf45da02f197c1fd692c090029ed0e233c180ca

See more details on using hashes here.

File details

Details for the file gqla-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: gqla-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3

File hashes

Hashes for gqla-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 79242af47306cfa506ec52f9d1b0464bf0143a89f5714451d46d89bc397ada5a
MD5 b08b89f25d4292b9db5d4e8ae35567f5
BLAKE2b-256 5098e4c71674bf97b50fb66f205aa543a828d67e9f202d71bc22af18b63193c6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page