There are a number of abstract base classes in the Chaco codebase, but the abstractness is not enforced. This leads to problems with partial implementations of the abstract base class interface in subclasses.
All abstract classes should inherit from ABCHasTraits which ensures that:
- the abstract base class cannot be instantiated
- all subclasses must at least provide a minimal implementation of the interface
This would be a backwards incompatible change, as user code which inherits from abstract base classes but implements the interface incompletely may break.
There are a number of abstract base classes in the Chaco codebase, but the abstractness is not enforced. This leads to problems with partial implementations of the abstract base class interface in subclasses.
All abstract classes should inherit from
ABCHasTraitswhich ensures that:This would be a backwards incompatible change, as user code which inherits from abstract base classes but implements the interface incompletely may break.