diff --git a/masque/utils/autoslots.py b/masque/utils/autoslots.py index e82d3db..cef8006 100644 --- a/masque/utils/autoslots.py +++ b/masque/utils/autoslots.py @@ -17,11 +17,12 @@ class AutoSlots(ABCMeta): for base in bases: parents |= set(base.mro()) - slots = tuple(dctn.get('__slots__', ())) + slots = list(dctn.get('__slots__', ())) for parent in parents: if not hasattr(parent, '__annotations__'): continue - slots += tuple(parent.__annotations__.keys()) + slots.extend(parent.__annotations__.keys()) - dctn['__slots__'] = slots + # Deduplicate (dict to preserve order) + dctn['__slots__'] = tuple(dict.fromkeys(slots)) return super().__new__(cls, name, bases, dctn)