We have now four archive classes with (almost) identical interfaces and quite a bit of undesirable duplication of docstrings (or lack thereof) for the respective methods. This cannot be directly solved by inheritance, because the inheriting subclass overwrites the methods of the interface.
A possible fix is to define a class which provides the docstrings, say MOArchiveDocstrings (or MOArchiveParent), and use them like
def hypervolume_plus(self):
___doc__ = MOArchiveDocstrings.hypervolume_plus.__doc__ + """
subclass specific remarks, doctests,...
"""
see for example https://stackoverflow.com/questions/2025562/inherit-docstrings-in-python-class-inheritance
We have now four archive classes with (almost) identical interfaces and quite a bit of undesirable duplication of docstrings (or lack thereof) for the respective methods. This cannot be directly solved by inheritance, because the inheriting subclass overwrites the methods of the interface.
A possible fix is to define a class which provides the docstrings, say
MOArchiveDocstrings(orMOArchiveParent), and use them likesee for example https://stackoverflow.com/questions/2025562/inherit-docstrings-in-python-class-inheritance