Как наследовать документацию для абстрактных методов в Sphinx - PullRequest
0 голосов
/ 08 сентября 2018

Возможно ли для Sphinx autodoc показывать строки документов из как метода класса (выходящего из абстрактного класса), так и самого метода абстрактного класса. Например, в следующем коде:

class ExampleAbstractClass(ABC):

    def __init__(self):
        pass

    @abstractmethod
    def example_method(self):
        ''' 
        documentation for example_method in ExampleAbstractClass
        '''
        pass


class TestClass(ExampleAbstractClass):

    def __init__(self):
        pass

    def example_method(self):
        ''' 
        documentation for example_method in TestClass
        '''
        return super().example_method()

Чтобы сгенерированная документация включала «документацию для example_method в ExampleAbstractClass» и «документацию для example_method в TestClass».

Похоже, что если я не включу строку документации в example_method в TestClass, строки документации для методов super будут использоваться по умолчанию, но как только какие-либо строки документов будут определены в example_method в TestClass, они будут использоваться вместо исходные строки документа в example_method, принадлежащем ExampleAbstractClass.

Я пытался вручную добавить свойство doc вручную, используя:

self.example_method.__doc__ = super().example_method.__doc__ += '''test'''

Однако, похоже, это не имеет никакого эффекта. Есть ли способ для сгенерированной документации для example_method в TestClass как «наследовать» родительскую документацию, так и добавлять новые строки документации в документацию?

...