diff --git a/changelogs/fragments/to_yaml-default_flow_style.yaml b/changelogs/fragments/to_yaml-default_flow_style.yaml new file mode 100644 index 0000000000..5dee7c51be --- /dev/null +++ b/changelogs/fragments/to_yaml-default_flow_style.yaml @@ -0,0 +1,2 @@ +minor_changes: + - "``to_yaml`` filter updated to maintain formatting consistency when used with ``pyyaml`` versions 5.1 and later (https://github.com/ansible/ansible/pull/53772)" diff --git a/lib/ansible/plugins/filter/core.py b/lib/ansible/plugins/filter/core.py index e7954ee887..6c35cc3ef9 100644 --- a/lib/ansible/plugins/filter/core.py +++ b/lib/ansible/plugins/filter/core.py @@ -61,7 +61,8 @@ UUID_NAMESPACE_ANSIBLE = uuid.UUID('361E6D51-FAEC-444A-9079-341386DA8E2E') def to_yaml(a, *args, **kw): '''Make verbose, human readable yaml''' - transformed = yaml.dump(a, Dumper=AnsibleDumper, allow_unicode=True, **kw) + default_flow_style = kw.pop('default_flow_style', None) + transformed = yaml.dump(a, Dumper=AnsibleDumper, allow_unicode=True, default_flow_style=default_flow_style, **kw) return to_text(transformed)