Как документировать код Python с помощью doxygen [закрыто]
Мне нравится doxygen для создания документации C или PHP кода. У меня есть предстоящий проект Python, и я думаю, что помню, что Python не имеет /* .. */ комментарии, а также будет иметь собственную документацию объекта, который, кажется, быть подходящие для Python путь к документу.
поскольку я знаком с doxygen, как я могу использовать его для создания моей документации Python? Есть ли что-то особенное, что мне нужно знать?
5 ответов:
Это документально на сайте doxygen, но изложить здесь:
вы можете использовать doxygen для документирования кода Python. Вы можете использовать синтаксис строки документации Python:
"""@package docstring Documentation for this module. More details. """ def func(): """Documentation for a function. More details. """ passв этом случае комментарии будут извлечены doxygen, но вы не сможете использовать ни один из специальные команды doxygen.
или вы можете (по аналогии с C-подобным языкам при помощи Doxygen) удвоить свой комментарий маркер (
#) в первой строке перед членом:## @package pyexample # Documentation for this module. # # More details. ## Documentation for a function. # # More details. def func(): passв этом случае вы можете использовать специальные команды doxygen. Там нет конкретного режима вывода Python, но вы можете, по-видимому, улучшить результаты, установив
OPTMIZE_OUTPUT_JAVAдоYES.честно говоря, я немного удивлен разницей - кажется, как только doxygen может обнаружить комментарии в блоках ## или блоках"", большая часть работы будет выполнена, и вы сможете использовать специальные команды в любом случае. Может быть, они ожидают, что люди, использующие "" придерживаться более Pythonic практики документации, и это будет мешать специальным командам doxygen?
The doxypy входной фильтр позволяет использовать практически все теги форматирования Doxygen в стандартном формате Python docstring. Я использую его для документирования большой смешанной платформы игровых приложений C++ и Python, и она хорошо работает.
Sphinx-это в основном инструмент для форматирования документов, написанных независимо от исходного кода, как я понимаю.
для создания API-документов из Python docstrings ведущими инструментами являются pdoc и pydoctor. Вот созданные PYDOCTOR API docs для витая и базар.
конечно, если вы просто хотите взглянуть на документы, пока вы работаете над материалом, есть "pydoc" инструмент командной строки, а также
help()функция доступна в интерактивном интерпретаторе.
В конце концов, у вас только два варианта:
вы создаете свой контент с помощью Doxygen, или вы создаете свой контент с помощью Sphinx*.
помощи Doxygen: это не инструмент выбора для большинства проектов Python. Но если вам приходится иметь дело с другими связанными проектами, написанными на C или C++, это может иметь смысл. Для этого вы можете улучшить интеграцию между Doxygen и Python с использованием doxypypy.
Сфинкс инструмент ранее для документирования проекта на Python. У вас есть три варианта здесь: ручной, полуавтоматический (stub generation) и полностью автоматический (Doxygen like).
- для ручной документации API у вас есть Sphinx autodoc. Это здорово, чтобы написать руководство пользователя со встроенными API сгенерированных элементов.
- для полуавтомата у вас есть Сфинкс autosummary. Вы можете либо настроить свою систему сборки для вызова sphinx-autogen, либо настроить Sphinx с помощью
autosummary_generateconfig. Вам потребуется настроить страницу с автосуммариями, а затем вручную отредактировать страницы. У вас есть варианты, но мой опыт работы с этим подходом заключается в том, что он требует слишком большой конфигурации, и в конце даже после создания новых шаблонов я обнаружил ошибки и невозможность точно определить, что было выставлено как публичный API, а что нет. Мое мнение, что этот инструмент хорош для заглушки генерация, которая потребует ручного редактирования, и ничего больше. Это как ярлык, чтобы в конечном итоге в руководстве.- полностью автоматическая. Это критиковалось много раз, и долгое время у нас не было хорошего полностью автоматического генератора API Python, интегрированного с Sphinx, пока AutoAPI пришел, который является новым ребенком в блоке. Это, безусловно, лучше всего подходит для автоматической генерации API в Python (Примечание: бесстыдное самореклама).
есть другие варианты, чтобы отметить:
- Дыши: это началось как очень хорошая идея, и имеет смысл, когда вы работаете с несколькими связанными проектами на других языках, которые используют Doxygen. Идея состоит в том, чтобы использовать вывод Doxygen XML и передать его в Sphinx для создания вашего API. Таким образом, вы можете сохранить всю доброту Doxygen и унифицировать систему документации в Sphinx. Потрясающе в теории. Теперь, на практике, последний раз, когда я проверял проект, он не был готов производство.
- pydoctor*: очень конкретное. Генерирует свой собственный выход. Он имеет некоторую базовую интеграцию со Сфинксом и некоторые приятные функции.
другой очень хороший инструмент документации является сфинкс. Он будет использоваться для предстоящего python 2.6 документация и Джанго и много других проектов python.
с сайта Сфинкса:
- форматы вывода: HTML (включая Windows HTML Help) и LaTeX, для печати PDF-версий
- обширные перекрестные ссылки: семантическая разметка и автоматическая ссылки на функции, классы, термины глоссария и аналогичные части информации
- иерархической структуры: простое определение дерева документов, с автоматическими ссылками на братьев и сестер, родителей и детей
- автоматические индексы: общий индекс, а также индекс модуля
- код: автоматическая подсветка с помощью пигментного маркера
- расширения: автоматическая тестирование фрагментов кода, включение docstrings из модулей Python и многое другое
Comments