Sphinx и argparse - автодокументирование сценариев командной строки?

Я создаю пакет Python и использую Sphinx для создания документов. Помимо кода моего пакета, я также включил в себя множество скриптов Python для командной строки, которые используют argparse. Мне было интересно, есть ли способ заставить Сфинкса автоматически документировать эти сценарии? Конечной целью будет довольно распечатанный список сценариев с соответствующей справкой print, аргументами и параметрами. И чтобы быть ясным, я ищу уже существующий способ сделать это, а не способ реализовать это самостоятельно.

Это не такой конкретный вопрос, как я обычно задаю для S.O., если есть более подходящий S.E. сайт, чтобы отправить этот вопрос, пожалуйста, дайте мне знать. Благодарность

 Mikko Ohtamaa04 июн. 2012 г., 23:58
Не связано, но может быть полезно. Проверьте пакет plac на PyPI.
 jeremiahbuddha05 июн. 2012 г., 00:55
Не думаю, что мне это помогает, но интересно, спасибо за хедз-ап.

Ответы на вопрос(3)

Решение Вопроса

sphinxcontrib.programoutput чтобы включить справочные сообщения из командной строки в вашу документацию.

Это не относится кargparse но может использоваться для документирования любых сценариев, выводящих справочные сообщения в командную строку.

Вы можете использоватьsphinxcontrib.autoprogram. pip install sphinxcontrib-autoprogram, затем положи

extensions += ['sphinxcontrib.autoprogram']

в вашемconf.py. Для документирования командыcli.py импортируяcli с аргпарсомparser объектparser (которое может быть выражением Python, как функцияget_parser()), используйте

.. autoprogram:: cli:parser
   :prog: cli.py
 orome21 янв. 2014 г., 22:43
Превосходно. Есть ли способ, чтобы блок «использования» обрабатывался по-другому? Для меня иметь буквальный блок не совсем правильно.
 orome21 янв. 2014 г., 23:26
И пока я на этом, было бы неплохо, если бы вывод совпадал с тем, что.. option:: производит: только флаги (не указано по умолчанию), выровнено по левому краю с меньшим отступом для описания и заменой первой буквы на прописные, а также добавлением точки в конце, если ее еще нет (так как идиома для--help это опустить и использовать все строчные). Также возможно помечать записи, которые соответствуют выводам справки, более близко (например,-cols [COL [COL ...]] а не простоcols), так как весь текст написан в этом контексте.
 Martin Thoma20 окт. 2014 г., 17:34
Кажется, есть ошибка: Pastebin.com / jXAz1qHw

Ваш ответ на вопрос