diff options
author | Benjamin Peterson <benjamin@python.org> | 2013-12-20 22:14:45 -0600 |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2013-12-20 22:14:45 -0600 |
commit | 54e88aec5f7156dd6dcd440abb5b7e81cdb38ca5 (patch) | |
tree | 69e08818d2bfa52962e846ac01bbdbf0dc86f9e5 /six.py | |
parent | 4ba1d2432cbb5217226194b5a3941c6de01fef6e (diff) | |
download | six-54e88aec5f7156dd6dcd440abb5b7e81cdb38ca5.tar.gz |
fix add_metaclass when __slots__ is a string (fixes #47)
Diffstat (limited to 'six.py')
-rw-r--r-- | six.py | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -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 |