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):
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)
class Enum(six.with_metaclass(EnumTypeMeta, UnmountedType)):
@classmethod
def from_enum(cls, python_enum):
class Meta:
enum = python_enum
def from_enum(cls, enum, description=None):
Meta = type('Meta', (object,), {'enum': enum, 'description': description})
return type(Meta.enum.__name__, (Enum,), {'Meta': Meta})

View File

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