2012-04-27 23 views
5

Mam dużą liczbę plików Pythona i chciałbym wygenerować publiczną dokumentację API dla mojego projektu. Wszystkie funkcje, które są częścią api, ozdobiłem dekoratorem.Dokumentacja Sphinx Public API

na przykład:

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

Istnieją inne metody publiczne w tych samych klasach. Interfejs API rozłożony jest na kilka plików, z których każdy definiuje klasy za pomocą metod, a niektóre metody mają tego dekoratora @api. Jak mogę powiedzieć Sphinxowi, aby generował dokumenty tylko dla publicznego API?

Odpowiedz

3

mam odpowiedzi na moje własne pytanie ... Po jakimś bardziej nie szukają znalazłem to:

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

Zasadniczo można zdefiniować funkcję w pliku conf.py może patrzeć na każdego członka i pominąć wszystko, co nie ma właściwego dekoratora.

tutaj jest mały przykład na końcu mojego pliku conf.py (jest to plik konfiguracyjny dla sfinks)

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) 

Można również przetwarzać docstring z funkcji.

Powiązane problemy