Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to prevent YAML to dump long line without new line

While dumping/serializing data having long lines in input, pyyaml adds extra indentation with new line - which is annoying, how can we avoid this conversion in two lines / multiple lines ?

e.g.

In [1]:

x = "-c /home/user/test/test2/test23/tet/2s/test1/stest/longdirectory1/directory2/ --optnion12 --verbose" 

In [2]: import yaml

In [3]: print (yaml.dump([dict(ATTRIBUTES=[dict(CONFIG=x)])], default_flow_style=False))

WRONG ONE

- ATTRIBUTES:   - CONFIG: -c /home/user/test/test2/test23/tet/2s/test1/stest/longdirectory1/directory2/       --optnion12 --verbose 

Which should be like

- ATTRIBUTES:   - CONFIG: -c /home/user/test/test2/test23/tet/2s/test1/stest/longdirectory1/directory2/ --optnion12 --verbose 
like image 485
shahjapan Avatar asked Aug 29 '13 14:08

shahjapan


1 Answers

Thanks @MathieuMarques for suggesting to look @ dump options and link provided, YAML documentation was not good enough to find it out.

Anyways solution is to specify width parameter for dump function.

i.e. yaml.dump(data, width=1000)

A better approach suggested by @RandomCoder to use yaml.dump(data, width=float("inf")) for a permanent solution.

like image 198
shahjapan Avatar answered Sep 26 '22 09:09

shahjapan