Tools for GraphQL client in python.
Project description
GRAPHQL2PYTHON
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
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 Distributions
Built Distribution
File details
Details for the file graphql2python-0.0.6-py3-none-any.whl
.
File metadata
- Download URL: graphql2python-0.0.6-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2a19fa7998a05f1be61cf306c09ee2e74a94ccc29b1e2dba93d9c9932e09c6f |
|
MD5 | bee5ed47b51694d2f507b23492faa891 |
|
BLAKE2b-256 | 586316785a1a39ac1147dc66c62f0a9edf2f64dba419470aeff919cd86469bb9 |