Сфинкс, как автоматически задокументировать возвращенные атрибуты выходного класса - PullRequest
0 голосов
/ 01 июля 2019

Я сделаю все возможное, чтобы объяснить, чего я хочу достичь. В примере кода мы видим, что есть два файла output.py и code.py. Класс HandleOutput используется как возвращаемый объект из класса CodeClass.

Цель

То, чего я надеюсь достичь, это две вещи

    1. Документируйте класс HandleOutput таким образом, чтобы атрибуты были четко определены.
  • 2. Автоматически документирует унаследованную документацию из класса HandleOutput, когда она используется в качестве возвращаемого объекта в классе CodeClass. Смотрите комментарий в методе CodeClass.checkme. Мой стиль документации - стиль numpy в сфинксе.

В настоящий момент мы видим на скриншоте, что он не показывает все доступные свойства и методы класса HandleOutput. Просто показывает общий возврат.

код

    from __future__ import annotations
    from typing import Any

    # output.py
    class HandleOutput(object):
        def __init__(self, data):
            """The init method

            Parameters
            ----------
            data : list
                Array of data
            """
            self.data = data

        @property
        def count(self) -> int:
            """Count of items

            Returns
            -------
            int
                len of array
            """
            return len(self.data)

        def first(self) -> Any:
            """Returns the first item from the array

            Returns
            -------
            Any
                First item
            """
            return self.data[0]

    # code.py
    # from output import HandleOutput
    class CodeClass(object):
        def __init__(self, data):
            self.data = data

        def checkme(self) -> HandleOutput:
            """Lets run a method

            Returns
            -------
            HandleOutput
                Automatically populate this area with the docs from the 
                HandleOuput class
            """
            return HandleOutput(self.data)

    test = CodeClass(['a', 1, 'string', True])
    print(
        test.checkme()
    )

Скриншот

SS from Vscode

...