我有大量的python文件,我想为我的项目生成公共API文档。作为api一部分的所有函数我都用装饰器装饰。
例如:
@api
def post_comment(comment)"
""" Posts a coment
"""
pass
同一个类中还有其他公共方法。 API分布在几个文件中,每个文件用方法定义类,有些方法有@api装饰器。如何告诉Sphinx仅为公共API生成文档?
答案 0 :(得分:3)
我正在回答我自己的问题......经过一番搜索,我发现了这个问题:
http://sphinx.pocoo.org/ext/autodoc.html#event-autodoc-skip-member
基本上你可以在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)
您还可以使用函数处理docstring。