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