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

25

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

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

Не связано, но может быть полезно. Проверьте пакет plac на PyPI. Mikko Ohtamaa
Не думаю, что мне это помогает, но интересно, спасибо за хедз-ап. jeremiahbuddha

Ваш Ответ

3   ответа
19
Превосходно. Есть ли способ, чтобы блок «использования» обрабатывался по-другому? Для меня иметь буквальный блок не совсем правильно. orome
И пока я на этом, было бы неплохо, если бы вывод совпадал с тем, что.. option:: производит: только флаги (не указано по умолчанию), выровнено по левому краю с меньшим отступом для описания и заменой первой буквы на прописные, а также добавлением точки в конце, если ее еще нет (так как идиома для--help это опустить и использовать все строчные). Также возможно помечать записи, которые соответствуют выводам справки, более близко (например,-cols [COL [COL ...]] а не простоcols), так как весь текст написан в этом контексте. orome
Кажется, есть ошибка: Pastebin.com / jXAz1qHw Martin Thoma
17

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

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

4

Вы можете использовать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

Похожие вопросы