diff --git a/graphene/__init__.py b/graphene/__init__.py index 88404d62..71066499 100644 --- a/graphene/__init__.py +++ b/graphene/__init__.py @@ -11,7 +11,7 @@ from .core import ( Interface, Mutation, Scalar, - BaseType, + InstanceType, LazyType, Argument, Field, @@ -51,7 +51,7 @@ __all__ = [ 'NonNull', 'signals', 'Schema', - 'BaseType', + 'InstanceType', 'LazyType', 'ObjectType', 'InputObjectType', diff --git a/graphene/core/__init__.py b/graphene/core/__init__.py index d27a72bb..9e8c7108 100644 --- a/graphene/core/__init__.py +++ b/graphene/core/__init__.py @@ -11,7 +11,7 @@ from .classtypes import ( ) from .types import ( - BaseType, + InstanceType, LazyType, Argument, Field, @@ -35,7 +35,7 @@ __all__ = [ 'List', 'NonNull', 'Schema', - 'BaseType', + 'InstanceType', 'LazyType', 'ObjectType', 'InputObjectType', diff --git a/graphene/core/schema.py b/graphene/core/schema.py index e2f24b57..960f0aca 100644 --- a/graphene/core/schema.py +++ b/graphene/core/schema.py @@ -12,7 +12,7 @@ from graphene import signals from ..plugins import CamelCase, Plugin from .classtypes.base import ClassType -from .types.base import BaseType +from .types.base import InstanceType class GraphQLSchema(_GraphQLSchema): @@ -59,7 +59,7 @@ class Schema(object): if not _type: return is_classtype = inspect.isclass(_type) and issubclass(_type, ClassType) - is_instancetype = isinstance(_type, BaseType) + is_instancetype = isinstance(_type, InstanceType) if is_classtype or is_instancetype: if _type not in self._types: internal_type = self.get_internal_type(_type) diff --git a/graphene/core/types/__init__.py b/graphene/core/types/__init__.py index 0ffa52bb..51512ec4 100644 --- a/graphene/core/types/__init__.py +++ b/graphene/core/types/__init__.py @@ -1,4 +1,4 @@ -from .base import BaseType, LazyType, OrderedType +from .base import InstanceType, LazyType, OrderedType from .argument import Argument, ArgumentsGroup, to_arguments from .definitions import List, NonNull # Compatibility import @@ -8,7 +8,7 @@ from .scalars import String, ID, Boolean, Int, Float from .field import Field, InputField __all__ = [ - 'BaseType', + 'InstanceType', 'LazyType', 'OrderedType', 'Argument', diff --git a/graphene/core/types/base.py b/graphene/core/types/base.py index 35797f8e..96501a19 100644 --- a/graphene/core/types/base.py +++ b/graphene/core/types/base.py @@ -4,14 +4,13 @@ from functools import partial, total_ordering import six -class BaseType(object): +class InstanceType(object): - @classmethod - def internal_type(cls, schema): - return getattr(cls, 'T', None) + def internal_type(self, schema): + raise NotImplementedError("internal_type for type {} is not implemented".format(self.__class__.__name__)) -class MountType(BaseType): +class MountType(InstanceType): parent = None def mount(self, cls): @@ -129,11 +128,11 @@ class MountedType(FieldType, ArgumentType): pass -class NamedType(BaseType): +class NamedType(InstanceType): pass -class GroupNamedType(BaseType): +class GroupNamedType(InstanceType): def __init__(self, *types): self.types = types diff --git a/graphene/core/types/scalars.py b/graphene/core/types/scalars.py index d0d315b4..9d7f5aeb 100644 --- a/graphene/core/types/scalars.py +++ b/graphene/core/types/scalars.py @@ -4,21 +4,27 @@ from graphql.core.type import (GraphQLBoolean, GraphQLFloat, GraphQLID, from .base import MountedType -class String(MountedType): - T = GraphQLString +class ScalarType(MountedType): + + def internal_type(self, schema): + return self._internal_type -class Int(MountedType): - T = GraphQLInt +class String(ScalarType): + _internal_type = GraphQLString -class Boolean(MountedType): - T = GraphQLBoolean +class Int(ScalarType): + _internal_type = GraphQLInt -class ID(MountedType): - T = GraphQLID +class Boolean(ScalarType): + _internal_type = GraphQLBoolean -class Float(MountedType): - T = GraphQLFloat +class ID(ScalarType): + _internal_type = GraphQLID + + +class Float(ScalarType): + _internal_type = GraphQLFloat