Python - Как не сортировать вывод pydoc в алфавитном порядке
Вывод pydoc сортирует результаты (методы и их строки документов) в алфавитном порядке. Это хорошо, но я хочу быть в курсе того, что нового. Когда я добавляю новый метод в свой модуль, я добавляю его как первый метод, поэтому каждый раз, когда я добавляю новый метод, он становится первым методом в файле.
Я хочу, чтобы вывод pydoc отображался в том же порядке, что и методы в файле.
Это возможно?
Пример:
Вот мой модуль, pydoc_test.py:
#!/usr/bin/python
def test_my_code():
"""
Docstring for test_my_code()
:return:
"""
pass
def add_my_code():
"""
Docstring for add_my_code()
:return:
"""
pass
Вот вывод "pydoc pydoc_test":
Help on module pydoc_test:
NAME
pydoc_test
FILE
/Users/myname/Documents/scripts/python_learning/pydoc_test.py
FUNCTIONS
add_my_code()
Docstring for add_my_code()
:return:
test_my_code()
Docstring for test_my_code()
:return:
pydoc сначала отображает "add_my_code", а затем "test_my_code", но я хочу тот же порядок, что и в файле.
1 ответ
Недавно я столкнулся с той же проблемой, и, насколько я могу судить из документации, сам pydoc не дает вам такой возможности.
Я думаю, что единственное, что вы можете сделать, это поймать вывод pydoc:
import pydoc
import pydoc_test
docstrings = pydoc.render_doc(pydoc_test)
И разобрать его, чтобы получить отдельные строки документов.
Затем прочитайте pydoc_test.py, получите имена функций, выполнив поиск 'def' и измените порядок строк документации pydoc в соответствии с порядком их появления в pydoc_test.py.
Очень некрасиво, я согласен. Я предполагаю, что это такой окольный способ получить то, что вы хотите, так что вы можете также забыть о pydoc все вместе и просто прочитать ваш файл pydoc_test.py напрямую и проанализировать его, чтобы получить строки документации.