mirror of
https://github.com/graphql-python/graphene.git
synced 2024-11-26 03:23:55 +03:00
Use new syntax for fields and arguments
This commit is contained in:
parent
a2ab008ead
commit
bf168e7b12
|
@ -28,9 +28,9 @@ Here is one example for get you started:
|
|||
|
||||
```python
|
||||
class Query(graphene.ObjectType):
|
||||
hello = graphene.StringField(description='A typical hello world')
|
||||
ping = graphene.StringField(description='Ping someone',
|
||||
to=graphene.Argument(graphene.String))
|
||||
hello = graphene.String(description='A typical hello world')
|
||||
ping = graphene.String(description='Ping someone',
|
||||
to=graphene.String())
|
||||
|
||||
def resolve_hello(self, args, info):
|
||||
return 'World'
|
||||
|
|
|
@ -35,9 +35,9 @@ Here is one example for get you started:
|
|||
.. code:: python
|
||||
|
||||
class Query(graphene.ObjectType):
|
||||
hello = graphene.StringField(description='A typical hello world')
|
||||
ping = graphene.StringField(description='Ping someone',
|
||||
to=graphene.Argument(graphene.String))
|
||||
hello = graphene.String(description='A typical hello world')
|
||||
ping = graphene.String(description='Ping someone',
|
||||
to=graphene.String())
|
||||
|
||||
def resolve_hello(self, args, info):
|
||||
return 'World'
|
||||
|
|
|
@ -12,10 +12,10 @@ Episode = graphene.Enum('Episode', dict(
|
|||
|
||||
|
||||
class Character(graphene.Interface):
|
||||
id = graphene.IDField()
|
||||
name = graphene.StringField()
|
||||
friends = graphene.ListField('Character')
|
||||
appears_in = graphene.ListField(Episode)
|
||||
id = graphene.ID()
|
||||
name = graphene.String()
|
||||
friends = graphene.List('Character')
|
||||
appears_in = graphene.List(Episode)
|
||||
|
||||
def resolve_friends(self, args, *_):
|
||||
# The character friends is a list of strings
|
||||
|
@ -23,11 +23,11 @@ class Character(graphene.Interface):
|
|||
|
||||
|
||||
class Human(Character):
|
||||
home_planet = graphene.StringField()
|
||||
home_planet = graphene.String()
|
||||
|
||||
|
||||
class Droid(Character):
|
||||
primary_function = graphene.StringField()
|
||||
primary_function = graphene.String()
|
||||
|
||||
|
||||
class Query(graphene.ObjectType):
|
||||
|
@ -35,10 +35,10 @@ class Query(graphene.ObjectType):
|
|||
episode=graphene.Argument(Episode)
|
||||
)
|
||||
human = graphene.Field(Human,
|
||||
id=graphene.Argument(graphene.String)
|
||||
id=graphene.String()
|
||||
)
|
||||
droid = graphene.Field(Droid,
|
||||
id=graphene.Argument(graphene.String)
|
||||
id=graphene.String()
|
||||
)
|
||||
|
||||
@resolve_only_args
|
||||
|
|
|
@ -40,8 +40,8 @@ class Faction(DjangoNode):
|
|||
class IntroduceShip(relay.ClientIDMutation):
|
||||
|
||||
class Input:
|
||||
ship_name = graphene.StringField(required=True)
|
||||
faction_id = graphene.StringField(required=True)
|
||||
ship_name = graphene.String(required=True)
|
||||
faction_id = graphene.String(required=True)
|
||||
|
||||
ship = graphene.Field(Ship)
|
||||
faction = graphene.Field(Faction)
|
||||
|
|
|
@ -8,7 +8,7 @@ schema = graphene.Schema(name='Starwars Relay Schema')
|
|||
|
||||
class Ship(relay.Node):
|
||||
'''A ship in the Star Wars saga'''
|
||||
name = graphene.StringField(description='The name of the ship.')
|
||||
name = graphene.String(description='The name of the ship.')
|
||||
|
||||
@classmethod
|
||||
def get_node(cls, id):
|
||||
|
@ -17,7 +17,7 @@ class Ship(relay.Node):
|
|||
|
||||
class Faction(relay.Node):
|
||||
'''A faction in the Star Wars saga'''
|
||||
name = graphene.StringField(description='The name of the faction.')
|
||||
name = graphene.String(description='The name of the faction.')
|
||||
ships = relay.ConnectionField(
|
||||
Ship, description='The ships used by the faction.')
|
||||
|
||||
|
@ -34,8 +34,8 @@ class Faction(relay.Node):
|
|||
class IntroduceShip(relay.ClientIDMutation):
|
||||
|
||||
class Input:
|
||||
ship_name = graphene.StringField(required=True)
|
||||
faction_id = graphene.StringField(required=True)
|
||||
ship_name = graphene.String(required=True)
|
||||
faction_id = graphene.String(required=True)
|
||||
|
||||
ship = graphene.Field(Ship)
|
||||
faction = graphene.Field(Faction)
|
||||
|
|
|
@ -10,6 +10,7 @@ from graphene.core.schema import (
|
|||
|
||||
from graphene.core.types import (
|
||||
ObjectType,
|
||||
InputObjectType,
|
||||
Interface,
|
||||
Mutation,
|
||||
BaseType,
|
||||
|
@ -55,6 +56,7 @@ __all__ = [
|
|||
'BaseType',
|
||||
'LazyType',
|
||||
'ObjectType',
|
||||
'InputObjectType',
|
||||
'Interface',
|
||||
'Mutation',
|
||||
'Field',
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
from graphene import Schema
|
||||
from graphene.contrib.django.types import DjangoInterface, DjangoNode
|
||||
from graphene.core.fields import Field, IntField
|
||||
from graphene.core.fields import Field
|
||||
from graphene.core.types.scalars import Int
|
||||
from graphene.relay.fields import GlobalIDField
|
||||
from graphql.core.type import GraphQLInterfaceType, GraphQLObjectType
|
||||
|
@ -23,7 +23,7 @@ class Character(DjangoInterface):
|
|||
class Human(DjangoNode):
|
||||
'''Human description'''
|
||||
|
||||
pub_date = IntField()
|
||||
pub_date = Int()
|
||||
|
||||
def get_node(self, id):
|
||||
pass
|
||||
|
|
|
@ -18,7 +18,7 @@ class Character(DjangoNode):
|
|||
|
||||
|
||||
class Human(DjangoNode):
|
||||
raises = graphene.StringField()
|
||||
raises = graphene.String()
|
||||
|
||||
class Meta:
|
||||
model = Article
|
||||
|
|
|
@ -5,15 +5,15 @@ my_id = 0
|
|||
|
||||
|
||||
class Query(graphene.ObjectType):
|
||||
base = graphene.StringField()
|
||||
base = graphene.String()
|
||||
|
||||
|
||||
class ChangeNumber(graphene.Mutation):
|
||||
'''Result mutation'''
|
||||
class Input:
|
||||
to = graphene.IntField()
|
||||
to = graphene.Int()
|
||||
|
||||
result = graphene.StringField()
|
||||
result = graphene.String()
|
||||
|
||||
@classmethod
|
||||
def mutate(cls, instance, args, info):
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from py.test import raises
|
||||
|
||||
from graphene.core.fields import StringField
|
||||
from graphene.core.fields import Field
|
||||
from graphene.core.options import Options
|
||||
|
||||
|
||||
|
@ -20,7 +20,7 @@ def test_field_added_in_meta():
|
|||
pass
|
||||
|
||||
opt.contribute_to_class(ObjectType, '_meta')
|
||||
f = StringField()
|
||||
f = Field(None)
|
||||
f.attname = 'string_field'
|
||||
opt.add_field(f)
|
||||
assert f in opt.fields
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
|
||||
|
||||
from graphene.core.fields import Field, ListField, StringField
|
||||
from graphene.core.fields import Field
|
||||
from graphene.core.schema import Schema
|
||||
from graphene.core.types import Interface, ObjectType
|
||||
from graphene.core.types import Interface, List, ObjectType, String
|
||||
from graphql.core import graphql
|
||||
from graphql.core.type import GraphQLSchema
|
||||
|
||||
|
||||
class Character(Interface):
|
||||
name = StringField()
|
||||
name = String()
|
||||
|
||||
|
||||
class Pet(ObjectType):
|
||||
type = StringField(resolve=lambda *_: 'Dog')
|
||||
type = String(resolver=lambda *_: 'Dog')
|
||||
|
||||
|
||||
class Human(Character):
|
||||
friends = ListField(Character)
|
||||
friends = List(Character)
|
||||
pet = Field(Pet)
|
||||
|
||||
def resolve_name(self, *args):
|
||||
|
@ -27,8 +27,6 @@ class Human(Character):
|
|||
|
||||
def resolve_pet(self, *args):
|
||||
return Pet(object())
|
||||
# def resolve_friends(self, *args, **kwargs):
|
||||
# return 'HEY YOU!'
|
||||
|
||||
|
||||
schema = Schema()
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from py.test import raises
|
||||
|
||||
from graphene import Interface, ObjectType, Schema
|
||||
from graphene.core.fields import Field, ListField, StringField
|
||||
from graphene import Interface, List, ObjectType, Schema, String
|
||||
from graphene.core.fields import Field
|
||||
from graphene.core.types.base import LazyType
|
||||
from graphql.core import graphql
|
||||
from tests.utils import assert_equal_lists
|
||||
|
@ -10,15 +10,15 @@ schema = Schema(name='My own schema')
|
|||
|
||||
|
||||
class Character(Interface):
|
||||
name = StringField()
|
||||
name = String()
|
||||
|
||||
|
||||
class Pet(ObjectType):
|
||||
type = StringField(resolve=lambda *_: 'Dog')
|
||||
type = String(resolver=lambda *_: 'Dog')
|
||||
|
||||
|
||||
class Human(Character):
|
||||
friends = ListField(Character)
|
||||
friends = List(Character)
|
||||
pet = Field(Pet)
|
||||
|
||||
def resolve_name(self, *args):
|
||||
|
@ -109,7 +109,7 @@ def test_schema_register():
|
|||
|
||||
@schema.register
|
||||
class MyType(ObjectType):
|
||||
type = StringField(resolve=lambda *_: 'Dog')
|
||||
type = String(resolver=lambda *_: 'Dog')
|
||||
|
||||
schema.query = MyType
|
||||
|
||||
|
@ -121,7 +121,7 @@ def test_schema_register_no_query_type():
|
|||
|
||||
@schema.register
|
||||
class MyType(ObjectType):
|
||||
type = StringField(resolve=lambda *_: 'Dog')
|
||||
type = String(resolver=lambda *_: 'Dog')
|
||||
|
||||
with raises(Exception) as excinfo:
|
||||
schema.get_type('MyType')
|
||||
|
@ -132,7 +132,7 @@ def test_schema_introspect():
|
|||
schema = Schema(name='My own schema')
|
||||
|
||||
class MyType(ObjectType):
|
||||
type = StringField(resolve=lambda *_: 'Dog')
|
||||
type = String(resolver=lambda *_: 'Dog')
|
||||
|
||||
schema.query = MyType
|
||||
|
||||
|
@ -147,7 +147,7 @@ def test_lazytype():
|
|||
|
||||
@schema.register
|
||||
class MyType(ObjectType):
|
||||
type = StringField(resolve=lambda *_: 'Dog')
|
||||
type = String(resolver=lambda *_: 'Dog')
|
||||
|
||||
schema.query = MyType
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
from py.test import raises
|
||||
|
||||
from graphene.core.fields import IntField, StringField
|
||||
from graphene.core.schema import Schema
|
||||
from graphene.core.types import Interface
|
||||
from graphene.core.types import Int, Interface, String
|
||||
from graphql.core.execution.middlewares.utils import (resolver_has_tag,
|
||||
tag_resolver)
|
||||
from graphql.core.type import GraphQLInterfaceType, GraphQLObjectType
|
||||
|
@ -10,7 +9,7 @@ from graphql.core.type import GraphQLInterfaceType, GraphQLObjectType
|
|||
|
||||
class Character(Interface):
|
||||
'''Character description'''
|
||||
name = StringField()
|
||||
name = String()
|
||||
|
||||
class Meta:
|
||||
type_name = 'core_Character'
|
||||
|
@ -18,7 +17,7 @@ class Character(Interface):
|
|||
|
||||
class Human(Character):
|
||||
'''Human description'''
|
||||
friends = StringField()
|
||||
friends = String()
|
||||
|
||||
class Meta:
|
||||
type_name = 'core_Human'
|
||||
|
@ -93,7 +92,7 @@ def test_object_type_container_too_many_args():
|
|||
def test_field_clashes():
|
||||
with raises(Exception) as excinfo:
|
||||
class Droid(Character):
|
||||
name = IntField()
|
||||
name = Int()
|
||||
|
||||
assert 'clashes' in str(excinfo.value)
|
||||
|
||||
|
@ -104,7 +103,7 @@ def test_fields_inherited_should_be_different():
|
|||
|
||||
def test_field_mantain_resolver_tags():
|
||||
class Droid(Character):
|
||||
name = StringField()
|
||||
name = String()
|
||||
|
||||
def resolve_name(self, *args):
|
||||
return 'My Droid'
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
import graphene
|
||||
from graphene import relay
|
||||
from graphene.core.schema import Schema
|
||||
from graphql.core.type import GraphQLInputObjectField
|
||||
|
||||
my_id = 0
|
||||
|
||||
|
||||
class Query(graphene.ObjectType):
|
||||
base = graphene.StringField()
|
||||
base = graphene.String()
|
||||
|
||||
|
||||
class ChangeNumber(relay.ClientIDMutation):
|
||||
'''Result mutation'''
|
||||
class Input:
|
||||
to = graphene.IntField()
|
||||
to = graphene.Int()
|
||||
|
||||
result = graphene.StringField()
|
||||
result = graphene.String()
|
||||
|
||||
@classmethod
|
||||
def mutate_and_get_payload(cls, input, info):
|
||||
|
@ -33,16 +34,15 @@ schema = Schema(query=Query, mutation=MyResultMutation)
|
|||
def test_mutation_arguments():
|
||||
assert ChangeNumber.arguments
|
||||
assert list(ChangeNumber.arguments) == ['input']
|
||||
ChangeNumber.arguments['input']
|
||||
|
||||
# inner_type = _input.get_object_type(schema)
|
||||
# client_mutation_id_field = inner_type._meta.fields_map[
|
||||
# 'client_mutation_id']
|
||||
# assert issubclass(inner_type, InputObjectType)
|
||||
# assert isinstance(client_mutation_id_field, graphene.StringField)
|
||||
# assert client_mutation_id_field.object_type == inner_type
|
||||
# assert isinstance(client_mutation_id_field.internal_field(
|
||||
# schema), GraphQLInputObjectField)
|
||||
assert 'input' in ChangeNumber.arguments
|
||||
inner_type = ChangeNumber.input_type
|
||||
client_mutation_id_field = inner_type._meta.fields_map[
|
||||
'client_mutation_id']
|
||||
assert issubclass(inner_type, graphene.InputObjectType)
|
||||
assert isinstance(client_mutation_id_field.type, graphene.NonNull)
|
||||
assert isinstance(client_mutation_id_field.type.of_type, graphene.String)
|
||||
assert client_mutation_id_field.object_type == inner_type
|
||||
assert isinstance(schema.T(client_mutation_id_field), GraphQLInputObjectField)
|
||||
|
||||
|
||||
def test_execute_mutations():
|
||||
|
|
|
@ -6,12 +6,12 @@ schema = graphene.Schema()
|
|||
|
||||
|
||||
class MyConnection(relay.Connection):
|
||||
my_custom_field = graphene.StringField(
|
||||
resolve=lambda instance, *_: 'Custom')
|
||||
my_custom_field = graphene.String(
|
||||
resolver=lambda instance, *_: 'Custom')
|
||||
|
||||
|
||||
class MyNode(relay.Node):
|
||||
name = graphene.StringField()
|
||||
name = graphene.String()
|
||||
|
||||
@classmethod
|
||||
def get_node(cls, id):
|
||||
|
|
|
@ -7,7 +7,7 @@ schema = graphene.Schema()
|
|||
|
||||
|
||||
class OtherNode(relay.Node):
|
||||
name = graphene.StringField()
|
||||
name = graphene.String()
|
||||
|
||||
@classmethod
|
||||
def get_node(cls, id):
|
||||
|
@ -17,7 +17,7 @@ class OtherNode(relay.Node):
|
|||
def test_field_no_contributed_raises_error():
|
||||
with raises(Exception) as excinfo:
|
||||
class Part(relay.Node):
|
||||
x = graphene.StringField()
|
||||
x = graphene.String()
|
||||
|
||||
assert 'get_node' in str(excinfo.value)
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
from graphene.core.fields import BooleanField, Field, ListField, StringField
|
||||
from graphene.core.types import (InputObjectType, Interface, Mutation,
|
||||
ObjectType)
|
||||
from graphene.core.types import (Boolean, Field, InputObjectType, Interface,
|
||||
List, Mutation, ObjectType, String)
|
||||
from graphene.core.types.argument import ArgumentsGroup
|
||||
from graphene.core.types.base import LazyType
|
||||
from graphene.core.types.definitions import NonNull
|
||||
|
@ -10,15 +9,15 @@ from graphql_relay.node.node import to_global_id
|
|||
|
||||
|
||||
class PageInfo(ObjectType):
|
||||
has_next_page = BooleanField(
|
||||
has_next_page = Boolean(
|
||||
required=True,
|
||||
description='When paginating forwards, are there more items?')
|
||||
has_previous_page = BooleanField(
|
||||
has_previous_page = Boolean(
|
||||
required=True,
|
||||
description='When paginating backwards, are there more items?')
|
||||
start_cursor = StringField(
|
||||
start_cursor = String(
|
||||
description='When paginating backwards, the cursor to continue.')
|
||||
end_cursor = StringField(
|
||||
end_cursor = String(
|
||||
description='When paginating forwards, the cursor to continue.')
|
||||
|
||||
|
||||
|
@ -29,7 +28,7 @@ class Edge(ObjectType):
|
|||
|
||||
node = Field(LazyType(lambda object_type: object_type.node_type),
|
||||
description='The item at the end of the edge')
|
||||
cursor = StringField(
|
||||
cursor = String(
|
||||
required=True, description='A cursor for use in pagination')
|
||||
|
||||
@classmethod
|
||||
|
@ -50,8 +49,8 @@ class Connection(ObjectType):
|
|||
|
||||
page_info = Field(PageInfo, required=True,
|
||||
description='The Information to aid in pagination')
|
||||
edges = ListField(LazyType(lambda object_type: object_type.edge_type),
|
||||
description='Information to aid in pagination.')
|
||||
edges = List(LazyType(lambda object_type: object_type.edge_type),
|
||||
description='Information to aid in pagination.')
|
||||
|
||||
_connection_data = None
|
||||
|
||||
|
@ -104,11 +103,11 @@ class Node(BaseNode, Interface):
|
|||
|
||||
|
||||
class MutationInputType(InputObjectType):
|
||||
client_mutation_id = StringField(required=True)
|
||||
client_mutation_id = String(required=True)
|
||||
|
||||
|
||||
class ClientIDMutation(Mutation):
|
||||
client_mutation_id = StringField(required=True)
|
||||
client_mutation_id = String(required=True)
|
||||
|
||||
@classmethod
|
||||
def _prepare_class(cls):
|
||||
|
|
Loading…
Reference in New Issue
Block a user