Настройка pprint.PrettyPrinter
В документации для модуля pprint
указано, что метод PrettyPrinter.format
предназначен для настройки форматирования.
Я понимаю, что можно переопределить этот метод в подклассе, но это, похоже, не дает способа использовать методы базового класса для переноса строк и отступов.
- Я что-то пропустил здесь?
- Есть ли лучший способ сделать это (например, другой модуль)?
Альтернативы?
Я проверил модуль pretty
, который выглядит интересным, но, похоже, не обеспечивает способ настройки форматирования классы из других модулей без изменения этих модулей.
Я думаю, что то, что я ищу, - это то, что позволит мне отображать типы (или, возможно, функции), которые идентифицируют типы для подпрограмм, обрабатывающих node. Подпрограммы, которые обрабатывают node, принимают node и возвращают строковое представление, вместе со списком дочерних узлов. И так далее.
Почему я смотрю на красивую печать
Моя конечная цель - компактно распечатать разделы, отформатированные в формате DocBook xml.etree.ElementTree
.
(Я был удивлен, что не нашел больше поддержки Python для DocBook. Возможно, я что-то пропустил.)
Я создал некоторые базовые функции в клиенте под названием xmlearn, который использует lxml. Например, чтобы выгрузить файл Docbook, вы можете:
xmlearn -i docbook_file.xml dump -f docbook -r book
Это довольно наполовину задница, но мне досталась информация, которую я искал.
xmlearn имеет и другие функции, такие как возможность построения графического изображения и создания дампов, показывающих отношения между тегами в XML-документе, Они почти не связаны с этим вопросом.
Вы также можете выполнить дамп на произвольную глубину или указать XPath как набор начальных точек. Материал XPath вроде бы устарел на формат docbook, поэтому он не очень хорошо развит.
Это еще не ответ на вопрос. Я все еще надеюсь, что там где-то есть удобный настраиваемый принтер.