Improved enum. Removed old @implements

This commit is contained in:
Syrus Akbary 2016-06-17 01:27:31 -07:00
parent 995150bfa5
commit 80f98c5fd3
2 changed files with 4 additions and 5 deletions

View File

@ -66,14 +66,14 @@ class EnumTypeMeta(type):
def __call__(cls, *args, **kwargs): def __call__(cls, *args, **kwargs):
if cls is Enum: if cls is Enum:
return cls.from_enum(PyEnum(*args, **kwargs)) description = kwargs.pop('description', None)
return cls.from_enum(PyEnum(*args, **kwargs), description=description)
return super(EnumTypeMeta, cls).__call__(*args, **kwargs) return super(EnumTypeMeta, cls).__call__(*args, **kwargs)
class Enum(six.with_metaclass(EnumTypeMeta, UnmountedType)): class Enum(six.with_metaclass(EnumTypeMeta, UnmountedType)):
@classmethod @classmethod
def from_enum(cls, python_enum): def from_enum(cls, enum, description=None):
class Meta: Meta = type('Meta', (object,), {'enum': enum, 'description': description})
enum = python_enum
return type(Meta.enum.__name__, (Enum,), {'Meta': Meta}) return type(Meta.enum.__name__, (Enum,), {'Meta': Meta})

View File

@ -16,7 +16,6 @@ class Pet(ObjectType):
type = String() type = String()
# @implements(Character)
class Human(ObjectType): class Human(ObjectType):
class Meta: class Meta: