mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Adding custom indentation of YAML and JSON filters (#10008)
This commit is contained in:
parent
e1d248dddf
commit
27d065924f
2 changed files with 11 additions and 5 deletions
|
@ -25,6 +25,11 @@ For human readable output, you can use::
|
||||||
{{ some_variable | to_nice_json }}
|
{{ some_variable | to_nice_json }}
|
||||||
{{ some_variable | to_nice_yaml }}
|
{{ some_variable | to_nice_yaml }}
|
||||||
|
|
||||||
|
It's also possible to change the indentation of both::
|
||||||
|
|
||||||
|
{{ some_variable | to_nice_json(indent=2) }}
|
||||||
|
{{ some_variable | to_nice_yaml(indent=8) }}
|
||||||
|
|
||||||
Alternatively, you may be reading in some already formatted data::
|
Alternatively, you may be reading in some already formatted data::
|
||||||
|
|
||||||
{{ some_variable | from_json }}
|
{{ some_variable | from_json }}
|
||||||
|
|
|
@ -75,16 +75,16 @@ def to_yaml(a, *args, **kw):
|
||||||
transformed = yaml.dump(a, Dumper=AnsibleDumper, allow_unicode=True, **kw)
|
transformed = yaml.dump(a, Dumper=AnsibleDumper, allow_unicode=True, **kw)
|
||||||
return to_unicode(transformed)
|
return to_unicode(transformed)
|
||||||
|
|
||||||
def to_nice_yaml(a, *args, **kw):
|
def to_nice_yaml(a, indent=4, *args, **kw):
|
||||||
'''Make verbose, human readable yaml'''
|
'''Make verbose, human readable yaml'''
|
||||||
transformed = yaml.dump(a, Dumper=AnsibleDumper, indent=4, allow_unicode=True, default_flow_style=False, **kw)
|
transformed = yaml.dump(a, Dumper=AnsibleDumper, indent=indent, allow_unicode=True, default_flow_style=False, **kw)
|
||||||
return to_unicode(transformed)
|
return to_unicode(transformed)
|
||||||
|
|
||||||
def to_json(a, *args, **kw):
|
def to_json(a, *args, **kw):
|
||||||
''' Convert the value to JSON '''
|
''' Convert the value to JSON '''
|
||||||
return json.dumps(a, cls=AnsibleJSONEncoder, *args, **kw)
|
return json.dumps(a, cls=AnsibleJSONEncoder, *args, **kw)
|
||||||
|
|
||||||
def to_nice_json(a, *args, **kw):
|
def to_nice_json(a, indent=4, *args, **kw):
|
||||||
'''Make verbose, human readable JSON'''
|
'''Make verbose, human readable JSON'''
|
||||||
# python-2.6's json encoder is buggy (can't encode hostvars)
|
# python-2.6's json encoder is buggy (can't encode hostvars)
|
||||||
if sys.version_info < (2, 7):
|
if sys.version_info < (2, 7):
|
||||||
|
@ -99,9 +99,10 @@ def to_nice_json(a, *args, **kw):
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
if major >= 2:
|
if major >= 2:
|
||||||
return simplejson.dumps(a, indent=4, sort_keys=True, *args, **kw)
|
return simplejson.dumps(a, indent=indent, sort_keys=True, *args, **kw)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return json.dumps(a, indent=4, sort_keys=True, cls=AnsibleJSONEncoder, *args, **kw)
|
return json.dumps(a, indent=indent, sort_keys=True, cls=AnsibleJSONEncoder, *args, **kw)
|
||||||
except:
|
except:
|
||||||
# Fallback to the to_json filter
|
# Fallback to the to_json filter
|
||||||
return to_json(a, *args, **kw)
|
return to_json(a, *args, **kw)
|
||||||
|
|
Loading…
Reference in a new issue