summaryrefslogtreecommitdiff
path: root/six.py
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2014-08-17 23:26:58 -0500
committerBenjamin Peterson <benjamin@python.org>2014-08-17 23:26:58 -0500
commit98db7f7696b9fbe9eb6ccd1c8fc8b4d880709c07 (patch)
tree029eae0d037e3e0059b21b902d37fd97579a1915 /six.py
parent72cc15e87ca8d54f0a5d37204994cc4fa9eac2ad (diff)
downloadsix-git-98db7f7696b9fbe9eb6ccd1c8fc8b4d880709c07.tar.gz
fix add_metaclass when there is a __weakref__ or __dict__ slot (closes #88)
Diffstat (limited to 'six.py')
-rw-r--r--six.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/six.py b/six.py
index 6940d0d..304f618 100644
--- a/six.py
+++ b/six.py
@@ -719,14 +719,14 @@ def add_metaclass(metaclass):
"""Class decorator for creating a class with a metaclass."""
def wrapper(cls):
orig_vars = cls.__dict__.copy()
- orig_vars.pop('__dict__', None)
- orig_vars.pop('__weakref__', None)
slots = orig_vars.get('__slots__')
if slots is not None:
if isinstance(slots, str):
slots = [slots]
for slots_var in slots:
orig_vars.pop(slots_var)
+ orig_vars.pop('__dict__', None)
+ orig_vars.pop('__weakref__', None)
return metaclass(cls.__name__, cls.__bases__, orig_vars)
return wrapper