Проверьте соответствие кода и документации

Используя расширение Sphinx NumpyDoc, есть ли способ автоматически убедиться, что документация соответствует коду, который она документирует?

Например, следующая документация не соответствует коду из-за опечатки:

def myfunc(apples, bears):
"""
    Parameters
    ----------
    apples : int
        The number of apples.
    beards : int
        The number of bears to eat the apples.
"""

Может ли Sphinx или NumpyDoc сделать это ошибкой?

1 ответ

Решение

Это встроено в NumpyDoc или Sphinx, но это возможно, используя скребковые способности NumpyDoc. Вот фрагмент кода, который выполняет желаемую функциональность:

import inspect

from numpydoc.docscrape import FunctionDoc

def myfunc(apples, bears):
    """
        Parameters
        ----------
        apples : int
            The number of apples.
        beards : int
            The number of bears to eat the apples.
    """

doc = FunctionDoc(myfunc)
argspec = inspect.getargspec(myfunc)

# check for basic spelling errors
for a_i, arg in enumerate(argspec.args):
    if arg != doc["Parameters"][a_i][0]:
        print("%s != %s" %(arg, doc["Parameters"][a_i][0]))
Другие вопросы по тегам