I have a python project where I'd like to use YAML (pyYaml 3.11), particularly because it is "pretty" and easy for users to edit in a text editor if and when necessary. My problem, though, is if I bring the YAML into a python application (as I will need to) and edit the contents (as I will need to) then writing the new document is typically not quite as pretty as what I started with.
The pyyaml documentation is pretty poor - does not even document the parameters to the dump function. I found http://dpinte.wordpress.com/2008/10/31/pyaml-dump-option/. However, I'm still missing the information I need. (I started to look at the source, but it doesn't seem the most inviting. If I don't get the solution here, then that's my only recourse.)
I start with a document that looks like this:
- color green :
inputs :
- port thing :
widget-hint : filename
widget-help : Select a filename
- port target_path :
widget-hint : path
value : 'thing'
outputs:
- port value:
widget-hint : string
text : |
I'm lost and I'm found
and I'm hungry like the wolf.
After loading into python (yaml.safe_load( s )), I try a couple ways of dumping it out:
>>> print yaml.dump( d3, default_flow_style=False, default_style='' )
- color green:
inputs:
- port thing:
widget-help: Select a filename
widget-hint: filename
- port target_path:
value: thing
widget-hint: path
outputs:
- port value:
widget-hint: string
text: 'I''m lost and I''m found
and I''m hungry like the wolf.
'
>>> print yaml.dump( d3, default_flow_style=False, default_style='|' )
- "color green":
"inputs":
- "port thing":
"widget-help": |-
Select a filename
"widget-hint": |-
filename
- "port target_path":
"value": |-
thing
"widget-hint": |-
path
"outputs":
- "port value":
"widget-hint": |-
string
"text": |
I'm lost and I'm found
and I'm hungry like the wolf.
Ideally, I would like "short strings" to not use quotes, as in the first result. But I would like multi-line strings to be written as blocks, as with the second result. I guess fundamentally, I'm trying to minimize an explosion of unnecessary quotes in the file which I perceive would make it much more annoying to edit in a text editor.
Does anyone have any experience with this?