PEP 257 docstring в стандартной библиотеке?

PEP 257 говорит:

Инструменты обработки Docstring будут разделять равномерное количество отступов от второй и последующих строк докшлинга, равную минимальному отступу всех непустых строк после первой строки. Любое отступы в первой строке документа (то есть до первой строки новой строки) несущественны и удалены. Относительный отступ более поздних строк в докштрине сохраняется. Пустые строки должны быть удалены с начала и конца строки документа.

Функция trim, реализующая этот алгоритм, затем отображается в PEP.

Я могу найти вопросы, где люди спрашивают, как форматировать docstrings и относятся к PEP 257 (например, this). Я также вижу некоторую информацию об инструментах, которые пытаются обеспечить соответствие ваших docstrings PEP 257 (например, this). То, что я не могу найти, - это любая библиотека Python, которая на самом деле является "инструментом обработки docstring", который обрабатывает docstrings так, как это определено в PEP 257, или, по крайней мере, я не могу найти инструмент, который напрямую обрабатывает эту функцию обработки docstring доступны.

Имеется ли в стандартной библиотеке функция trim, показанная в PEP 257? Очевидно, что я могу вставить функцию в файл сам, но я бы предпочел использовать его из стандартной библиотеки, если я использую какой-то другой компьютер, где мне нужна эта функциональность, а не всегда копировать и вставлять из PEP. Учитывая, что функция находится в PEP, соавтором которой является BDFL, я бы подумал, что это будет какая-то официальная или полуформальная библиотека, которая делает это.

Причина, по которой я хочу это, - написать декоратор, который выполняет некоторую внутреннюю переформатировку Python докстепнов классов/функций. Я не хочу генерировать HTML или что-то еще; Я просто хочу изменить фактические docstrings фактических объектов. Я хочу взять атрибут plain-text __doc__ объекта Python и переформатировать его во что-то, что будет служить атрибутом plain-text __doc__ объекта Python.

Ответ 1

В поисках ответа на соответствующий вопрос мне удалось найти ответ на этот вопрос. Алгоритм trim реализован в inspect.cleandoc всех мест.