2012-04-27 65 views
5

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

例如:

@api 
def post_comment(comment)" 
    """ Posts a coment 
    """ 
    pass 

有在同一类的其他公共方法。 API分散在几个文件中,每个文件用方法定义类,一些方法拥有这个@api修饰器。我如何告诉Sphinx为公共API生成文档?

回答

3

我回答我的问题......更有些人搜索后,我发现这一点:

http://sphinx.pocoo.org/ext/autodoc.html#event-autodoc-skip-member

基本上你可以在你的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) 

您也可以处理与函数的文档字符串。