Skip to main content

Tools for GraphQL client in python.

Project description

GRAPHQL2PYTHON

Build tag last-commit license

graphql2python is a tool that generates python code out of your GraphQL schema. If you are using python as GraphQL client you can to generate pydantic data-model with graphql2python. The documentation for graphql2python can be found at https://denisart.github.io/graphql2python.

GraphQL query generation moved to https://github.com/denisart/graphql-query

The special example for gql users here.

Quickstart

Install with pip

pip install graphql2python

Create the following file

# graphql2python.yaml
schema: ./schema.graphql
output: ./model.py

and run the following command

graphql2python render --config ./graphql2python.yaml

Config reference

Global keywords

keyword description
schema A path to the target GraphQL schema file.
output A file name for output py file.
license_file An optional path to a file with license for output py file.
options Optional options for render of output py file.

Options keywords

keywords description
max_line_len The maximum of line length of output py file. Default is 120.
name_suffix A suffix for invalid field name (as python object name). Default is "_".
each_field_optional Each fields of interfaces and objects are optional. Default is false.
add_from_dict Add from_dict (dict -> model) method to the general class. Default is false.
add_to_dict Add to_dict (model -> dict) method to the general class. Default is false.
scalar_pytypes A dict with python types for custom GraphQL scalars. Maps from scalar name to python type name. Default is empty dict.
fields_setting Settings for interfaces or objects fields. Maps from object name to a dict with setting. Default is empty dict.

fields_setting keywords for some object name

keywords desciption
alias An alias for a field (see Field.alias for pydantic). Default is null.
new_name A new name for a field. Default is null.

An example for graphql2python.yaml config:

# graphql2python.yaml
schema: ./schema/schema.graphql
output: ./model/model.py
license_file: ./LICENSE
options:
  scalar_pytypes:
    String: str
    Float: float
    Int: int
    ID: str
    Boolean: bool
    DateTime: datetime
    Date: date
  max_line_len: 79
  each_field_optional: true
  fields_setting:
    MyObjectName:
      from:
        alias: from
        new_name: correct_from

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

graphql2python-0.0.6-py3-none-any.whl (17.8 kB view hashes)

Uploaded Python 3

Supported by

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