2012-04-27 42 views
5

Tôi có một số lượng lớn tệp python và tôi muốn tạo tài liệu API công khai cho dự án của mình. Tất cả các chức năng là một phần của api tôi đã trang trí với một trang trí.Tài liệu API công cộng Sphinx

ví dụ:

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

Có nhiều phương pháp nào khác trong các lớp tương tự. API được trải rộng trong một số tệp mỗi tệp xác định các lớp với các phương thức và một số phương thức có trình trang trí @api này. Làm cách nào để tôi có thể nói cho Nhân sư tạo tài liệu chỉ dành cho API công khai?

Trả lời

3

Tôi trả lời câu hỏi của riêng tôi ... Sau khi một số chi tiết đã tìm kiếm Tôi thấy điều này:

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

Về cơ bản bạn có thể định nghĩa một hàm trong file conf.py của bạn có thể nhìn vào mỗi thành viên và bỏ qua tất cả những gì không có trang trí phù hợp.

đây là một ví dụ nhỏ ở phần cuối của tập tin conf.py của tôi (đây là tập tin cấu hình cho nhân sư)

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) 

Bạn cũng có thể xử lý docstring với một hàm.