Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Обратите внимание, что
Dumperне может быть передан вyaml.safe_dump, у которого определен свой собственный dumper-класс.
А как передать в yaml.safe_dump?
Покопавшись в коде PyYAML (версия 6.0) можно заметить что в yaml.safe_dump нельзя передать свой Dumper в отличии yaml.dump


yaml.safe_dump в обязательном порядке использует свой SafeDumper и это нельзя переопределить. Однако вам ни кто не запрещает построить свой Dumper наследуя от SafeDumper. И уже его передать в yaml.dump.
class IndentSafeDumper(yaml.SafeDumper):
def increase_indent(self, flow=False, indentless=False):
return super(IndentSafeDumper, self).increase_indent(flow, False)
В итоге тот же результат, но с использованием SafeDumper
Советы, которые могут спасти Вас от ужасов PyYAML