2012-04-27 96 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) 

您也可以處理與函數的文檔字符串。