1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
from dataclasses import dataclass
from graphql import print_schema
from apischema.graphql import graphql_schema, interface
@interface
@dataclass
class Bar:
bar: int
@dataclass
class Foo(Bar):
baz: str
def bar() -> Bar:
...
schema = graphql_schema(query=[bar], types=[Foo])
# type Foo would have not been present if Foo was not put in types
schema_str = """\
type Foo implements Bar {
bar: Int!
baz: String!
}
interface Bar {
bar: Int!
}
type Query {
bar: Bar!
}"""
assert print_schema(schema) == schema_str
|