2012-04-27 24 views
5

Çok sayıda python dosyam var ve projem için genel API belgelerini oluşturmak istiyorum. Api'nin bir parçası olan tüm fonksiyonlar bir dekoratör ile dekore edilmiştir. örneğinSphinx Public API belgeleri

:

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

aynı sınıfta diğer kamu yöntemler vardır. API, dosyalar ile sınıfları tanımlayan her dosyaya birkaç dosya arasında yayılır ve bazı yöntemler bu @api dekoratörüne sahiptir. Sphinx’in sadece kamuya açık API’lar için dokümanlar üretmesini nasıl söyleyebilirim? Eğer conf.py dosyada bir işlev tanımlayabilirsiniz

Temelde

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

her üye bakıp atlayabilirsiniz: bunu buldum biraz daha arama ettikten sonra

cevap

3

ben ... benim kendi soru yanıtlama tüm doğru dekoratör yok. Burada

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) 

Ayrıca fonksiyonu ile docstring'ini işleyebilir (bu sfenks için yapılandırma dosyası) benim conf.py dosyanın sonunda biraz örnektir.