Проверьте соответствие кода и документации
Используя расширение 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]))