From 80f98c5fd37fc6fa052ef5804cc6179d18697c1b Mon Sep 17 00:00:00 2001
From: Syrus Akbary <me@syrusakbary.com>
Date: Fri, 17 Jun 2016 01:27:31 -0700
Subject: [PATCH] Improved enum. Removed old @implements

---
 graphene/types/enum.py              | 8 ++++----
 graphene/types/tests/test_schema.py | 1 -
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/graphene/types/enum.py b/graphene/types/enum.py
index 0c7e3c2f..2fda8412 100644
--- a/graphene/types/enum.py
+++ b/graphene/types/enum.py
@@ -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})
diff --git a/graphene/types/tests/test_schema.py b/graphene/types/tests/test_schema.py
index fcda7283..cb5ed568 100644
--- a/graphene/types/tests/test_schema.py
+++ b/graphene/types/tests/test_schema.py
@@ -16,7 +16,6 @@ class Pet(ObjectType):
     type = String()
 
 
-# @implements(Character)
 class Human(ObjectType):
 
     class Meta: