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 00000000000..5dee7c51bea --- /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 21cf656a36e..c39e01208bc 100644 --- a/lib/ansible/plugins/filter/core.py +++ b/lib/ansible/plugins/filter/core.py @@ -62,7 +62,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)