Sphinx Public API文档

Nik*_*sov 5 python documentation python-sphinx

我有大量的python文件,我想为我的项目生成公共API文档.作为api一部分的所有函数我都用装饰器装饰.

例如:

@api
def post_comment(comment)"
    """ Posts a coment
    """
    pass
Run Code Online (Sandbox Code Playgroud)

在同一个类中还有其他公共方法.API分布在几个文件中,每个文件用方法定义类,有些方法有@api装饰器.我怎样才能告诉Sphinx为公共API生成文档?

Nik*_*sov 4

我正在回答我自己的问题...经过更多搜索后我发现了这个:

https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#skipping-members

基本上,您可以在文件中定义一个函数,conf.py可以查看每个成员并跳过所有没有正确装饰器的成员。

这是我的文件末尾的一个小示例conf.py(这是 sphinx 的配置文件):

def my_doc_skip(app, what, name, obj, skip, options):
    if what != "method":
        return True

    # if obj is decorated with @api
    #     return True
    # return False

def setup(app):
    app.connect('autodoc-process-docstring', my_process_docstring)
    app.connect('autodoc-skip-member', my_doc_skip)
Run Code Online (Sandbox Code Playgroud)

您还可以使用函数处理文档字符串。