summaryrefslogtreecommitdiff
path: root/six.py
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2013-12-20 22:14:45 -0600
committerBenjamin Peterson <benjamin@python.org>2013-12-20 22:14:45 -0600
commit54e88aec5f7156dd6dcd440abb5b7e81cdb38ca5 (patch)
tree69e08818d2bfa52962e846ac01bbdbf0dc86f9e5 /six.py
parent4ba1d2432cbb5217226194b5a3941c6de01fef6e (diff)
downloadsix-54e88aec5f7156dd6dcd440abb5b7e81cdb38ca5.tar.gz
fix add_metaclass when __slots__ is a string (fixes #47)
Diffstat (limited to 'six.py')
-rw-r--r--six.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/six.py b/six.py
index f782f9a..a0eea9a 100644
--- a/six.py
+++ b/six.py
@@ -581,7 +581,11 @@ def add_metaclass(metaclass):
orig_vars = cls.__dict__.copy()
orig_vars.pop('__dict__', None)
orig_vars.pop('__weakref__', None)
- for slots_var in orig_vars.get('__slots__', ()):
- orig_vars.pop(slots_var)
+ 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)
return metaclass(cls.__name__, cls.__bases__, orig_vars)
return wrapper