2012-06-04 26 views
22

Tôi đang xây dựng một gói Python và sử dụng Nhân sư để tạo tài liệu. Ngoài mã gói của tôi, tôi cũng bao gồm rất nhiều dòng lệnh Python script, sử dụng argparse. Tôi đã tự hỏi nếu có một cách để có được Sphinx để autodocument các kịch bản? Mục tiêu cuối cùng sẽ là một danh sách các tập lệnh được in đẹp, với các bản in, đối số và tùy chọn liên quan. Và để được rõ ràng, tôi đang tìm một cách có sẵn để làm điều này, không phải là một cách để thực hiện điều này bản thân mình.Nhân sư và argparse - tự động viết kịch bản dòng lệnh?

Đây không phải là câu hỏi cụ thể như tôi thường hỏi về S.O., nếu có một S.E. thích hợp hơn trang web để đăng câu hỏi này, vui lòng cho tôi biết. Cảm ơn.

+0

Không liên quan, nhưng có thể hữu ích. Kiểm tra gói plac trên PyPI. –

+0

Đừng nghĩ rằng nó giúp tôi với điều này, nhưng thú vị, cảm ơn cho người đứng đầu. – jeremiahbuddha

Trả lời

16

Bạn có thể sử dụng sphinxcontrib.programoutput để bao gồm thông báo trợ giúp từ dòng lệnh trong tài liệu của mình.

Điều này không cụ thể cho argparse nhưng có thể được sử dụng để ghi lại mọi thông báo trợ giúp in tập lệnh vào dòng lệnh.

16

Sử dụng phần mở rộng Sphinx-argparse:

http://sphinx-argparse.readthedocs.org/en/latest/

+1

Tuyệt vời. Có cách nào để khối "sử dụng" được xử lý khác nhau không? Đối với tôi, có nó như là một khối chữ là không hoàn toàn đúng. – orome

+1

Và trong khi tôi ở đó, nó sẽ được tốt đẹp của đầu ra cho các tùy chọn phù hợp với những gì '.. tùy chọn ::' sản xuất: cờ chỉ (không có chỉ định mặc định), liên kết tất cả các cách bên trái với ít indentation cho mô tả và thay đổi chữ cái đầu tiên thành mũ và thêm một dấu chấm ở cuối nếu một từ chưa có (vì thành ngữ của '--help' là bỏ qua các ký tự này và sử dụng tất cả chữ thường). Cũng có thể các mục nhập cờ khớp với đầu ra trợ giúp trợ giúp chặt chẽ hơn (ví dụ: '-cols [COL [COL ...]]' thay vì chỉ 'cols'), vì tất cả văn bản được viết trong ngữ cảnh đó. – orome

+0

Dường như có lỗi: http://pastebin.com/jXAz1qHw –

2

Bạn có thể sử dụng sphinxcontrib.autoprogram. pip install sphinxcontrib-autoprogram, sau đó đặt

extensions += ['sphinxcontrib.autoprogram'] 

trong conf.py. Để ghi lại lệnh cli.py bằng cách nhập cli với argparse parser đối tượng parser (mà có thể là một biểu hiện Python, như một hàm get_parser()), sử dụng

.. autoprogram:: cli:parser 
    :prog: cli.py 
Các vấn đề liên quan