验证代码和文档匹配

时间:2016-12-10 02:45:44

标签: python python-sphinx numpydoc

使用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 个答案:

答案 0 :(得分:0)

这是内置于NumpyDoc或Sphinx,但可以使用NumpyDoc's scraping abilities。这是一个完成所需功能的代码片段:

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]))