diff --git a/masque/label.py b/masque/label.py index e52e836..0c250cc 100644 --- a/masque/label.py +++ b/masque/label.py @@ -5,17 +5,20 @@ import numpy from numpy.typing import ArrayLike, NDArray from .repetition import Repetition -from .utils import rotation_matrix_2d, AutoSlots, annotations_t +from .utils import rotation_matrix_2d, annotations_t from .traits import PositionableImpl, Copyable, Pivotable, RepeatableImpl, Bounded from .traits import AnnotatableImpl -class Label(PositionableImpl, RepeatableImpl, AnnotatableImpl, - Bounded, Pivotable, Copyable, metaclass=AutoSlots): +class Label(PositionableImpl, RepeatableImpl, AnnotatableImpl, Bounded, Pivotable, Copyable): """ A text annotation with a position (but no size; it is not drawn) """ - __slots__ = ( '_string', ) + __slots__ = ( + '_string', + # Inherited + '_offset', '_repetition', '_annotations', + ) _string: str """ Label string """ diff --git a/masque/traits/__init__.py b/masque/traits/__init__.py index 6b1541f..a3e4361 100644 --- a/masque/traits/__init__.py +++ b/masque/traits/__init__.py @@ -1,5 +1,7 @@ """ Traits (mixins) and default implementations + +Traits and mixins should set `__slots__ = ()` to enable use of `__slots__` in subclasses. """ from .positionable import Positionable, PositionableImpl, Bounded from .layerable import Layerable, LayerableImpl diff --git a/masque/traits/positionable.py b/masque/traits/positionable.py index 3ad93cb..2b9c02e 100644 --- a/masque/traits/positionable.py +++ b/masque/traits/positionable.py @@ -1,5 +1,3 @@ -# TODO top-level comment about how traits should set __slots__ = (), and how to use AutoSlots - from typing import Self, Any from abc import ABCMeta, abstractmethod