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 напрямую и проанализировать его, чтобы получить строки документации.

Другие вопросы по тегам