A Command line tool for generating Python GraphQL implementations(with Graphene) from GraphQL schema files
Project description
SchemaGen
Schema Gen is a simple CLI tool that generates Python GraphQL implementations(using Graphene) from a Graphql Schema file.
Installation
pip install schemagen
Usage
Here's the content of a sample input file(we will call it test.graphql)
type User {
id: ID!
username: String
first_name: String
last_name: String
full_name: String
name: String
name: String
}
Now let's use SchemaGen to generate python code from it.
As a CLI tool:
schemagen parse test.graphql -o test.py
As a Python Package:
from schemagen import SchemaGen
gen = SchemaGen(
input_file='test.graphql',
output_file='test.py'
)
# parse input file
gen()
Output(test.py):
# This file was generated by CodegenTool
from graphene import *
class User(ObjectType):
id = Field(ID, required=True)
username = Field(String)
first_name = Field(String)
last_name = Field(String)
full_name = Field(String)
name = Field(String)
Notes
SchemaGen is currently in its first version so there are some things you need to know:
-
GraphQL type declarations in your schema file must be ordered.
Because of the way Python and SchemaGen works, you cannot use a GraphQL type before declaring it. For example, the following graphql schema definition would be invalid because we are using the Url scalar in our User type before declaring it:
type User { id: ID! username: String avatar_url: Url } scalar Url
The correct version of the above code is:
scalar Url type User { id: ID! username: String avatar_url: Url }
-
Using a GraphQL SDL keyword as an object field name in your schema will throw an error.
For example, doing this:
enum UserType { Example } type User{ name: String type: UserType }
will throw an error.
Do this instead:
enum UserType { Example } type User{ name: String user_type: UserType }
We plan to fix these issues in the future. Pull requests are welcome!
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
Built Distribution
Hashes for schemagen-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 588f7bf8bc59a730d9cc86072633f2be39fd16569fa0c1bc1566caef71aa7d44 |
|
MD5 | 2a96a453c6c2ebf1d4524fee0e11400e |
|
BLAKE2b-256 | 4158c104064a28a75d891cf8d982b86c9554f85168e1f6d6f06ac30d715d652d |