我有大量的python文件,我想为我的项目生成公共API文档。我用装饰器装饰过的api的所有功能。
例如:
@api
def post_comment(comment)"
""" Posts a coment
"""
pass
同一类中还有其他公共方法。该API分布在多个文件中,每个文件都使用方法定义类,某些方法具有此@api装饰器。如何告诉Sphinx仅为公共API生成文档?
我正在回答自己的问题...经过更多搜索后,我发现了这一点:
https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#skipping-members
基本上您可以在conf.py
文件中定义一个函数,可以查看每个成员并跳过没有合适的装饰器的所有东西。
这是我的conf.py
文件(这是狮身人面像的配置文件)末尾的一个小例子:
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)
您还可以使用函数来处理文档字符串。