mastern2k3 / graphql-codegen-pydantic

Generate pydantic types from any graphql schema

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pydantic type generation for graphql

graphql-codegen-pydantic is a plugin for graphql-codegen that generates pydantic types from any graphql schema

Example

type Book {
  title: String
  author: Author
}

type Author {
  name: String
  books: [Book]
}

becomes

from typing import Optional, List
from pydantic import BaseModel


class Author(BaseModel):
    name: Optional[str]
    books: Optional[List[Optional['Book']]]


class Book(BaseModel):
    title: Optional[str]
    author: Optional['Author']

Warning

graphql-codegen-pydantic is currently still very experimental and is not ready for production use

Installation

  1. Set up graphql-codegen
  2. Install graphql-codegen-pydantic
yarn add graphql-codegen-pydantic -D
  1. Add python file to codegen.yml
schema: http://localhost:3000/graphql
generates:
  ./src/schema.py:
    plugins:
      - pydantic

Limitations

Currently very limited

  1. No configuration supported
  2. No comments included in generated code
  3. No support for documents
  4. No resolver support for eg graphene or ariadne
  5. Properties converted to snake_case

About

Generate pydantic types from any graphql schema

License:MIT License


Languages

Language:TypeScript 99.2%Language:JavaScript 0.8%