Возможно ли разобрать докстроны уровня модуля с AST?Parsing Python Module Docstrings
Я работаю над документатором python here и, посещая модульные маркеры и захватывая документацию, не уступает docstring модуля. До сих пор мне приходилось прибегать к импорту модуля и захвату его __doc__
или с использованием inspect
, чтобы получить документацию.
Я заглянул в источник информации о том, как другие документалисты разбирают докстры, и обнаружил, что pydoc заканчивается тем, что должен делать в основном то же самое, что и мой документатор, чтобы захватить строки уровня модуля.
Я что-то упустил? Единственный способ разобрать docstrings на уровне модуля, фактически импортируя модуль, или можно ли напрямую разбирать docstrings из AST?
О круто! Если я правильно понимаю, это должно быть инструментом для примеров 'eval' в' __doc__' против того, что сам модуль производит? – Droogans
Вот и все! Я использовал класс 'NodeVisitor' и' ast.get_docstring (node) '. Запуск его на модуле не работал. Я думал, что другие документаторы, такие как 'pydoc', могут делать что-то другое, но в конечном итоге используют' inspect'. Большое спасибо! – mvanveen
@Droogans: Я думаю, что модуль, который вы ищете, является 'doctest' (' python -m doctest -v mymodule.py'). Это больше о том, как получить строку документа без импорта модуля (импортирование модуля запускает его, и это может иметь побочные эффекты) или разбор текста самостоятельно (есть сборка в парсере python, используйте его). – mdaoust