From: Andrey S. <py...@gm...> - 2009-04-06 12:59:07
|
Hi All, even though there is plenty of options while dumping YAML in PyYAML, I could not find how I can mix different scalar styles in the same document. For instance, instead of: --- value1: 1 value2: 'line1 line2 line3' ... I would like to dump --- value1: 1 value2: |- line1 line2 line3 ... So I would like to use the plain scalar style but if the value contains '\n' then the literal style shall be used. Is it possible? Andrey |
From: Ingy d. N. <in...@in...> - 2009-04-06 14:23:40
|
This works for me: from yaml import *; tokens = ( StreamStartEvent(), DocumentStartEvent(explicit=True), MappingStartEvent(anchor=None, tag=None, implicit=True), ScalarEvent(None, None, [1,1], 'value1', style=''), ScalarEvent(None, None, [1,1], '1', style=''), ScalarEvent(None, None, [1,1], 'value2', style=''), ScalarEvent(None, None, [1,1], 'line1\nline2\nline3', style='|'), MappingEndEvent(), DocumentEndEvent(), StreamEndEvent(), ) print emit(tokens) - Ingy On Mon, Apr 6, 2009 at 2:59 PM, Andrey Somov <py...@gm...> wrote: > Hi All, > even though there is plenty of options while dumping YAML in PyYAML, I > could not find how I can mix different scalar styles in the same > document. > For instance, instead of: > --- > value1: 1 > value2: 'line1 > > line2 > > line3' > ... > I would like to dump > --- > value1: 1 > value2: |- > line1 > line2 > line3 > ... > > So I would like to use the plain scalar style but if the value > contains '\n' then the literal style shall be used. > Is it possible? > > Andrey > > > ------------------------------------------------------------------------------ > _______________________________________________ > Yaml-core mailing list > Yam...@li... > https://lists.sourceforge.net/lists/listinfo/yaml-core > |
From: Andrey S. <py...@gm...> - 2009-04-06 14:03:46
|
This solution requires development and it is not suitable for any document. I would expect something like this: yaml.addExplicitStyle('<regular expression>', '|') obj = {} obj['value1']: 1 obj['value2']: "line1\nline2\nline3\n" print yaml.dump(obj) Andrey On Mon, Apr 6, 2009 at 3:50 PM, Ingy dot Net <in...@in...> wrote: > This works for me: > > from yaml import *; > > tokens = ( > StreamStartEvent(), > DocumentStartEvent(explicit=True), > MappingStartEvent(anchor=None, tag=None, implicit=True), > ScalarEvent(None, None, [1,1], 'value1', style=''), > ScalarEvent(None, None, [1,1], '1', style=''), > ScalarEvent(None, None, [1,1], 'value2', style=''), > ScalarEvent(None, None, [1,1], 'line1\nline2\nline3', style='|'), > MappingEndEvent(), > DocumentEndEvent(), > StreamEndEvent(), > ) > > print emit(tokens) > > - Ingy > > On Mon, Apr 6, 2009 at 2:59 PM, Andrey Somov <py...@gm...> wrote: >> >> Hi All, >> even though there is plenty of options while dumping YAML in PyYAML, I >> could not find how I can mix different scalar styles in the same >> document. >> For instance, instead of: >> --- >> value1: 1 >> value2: 'line1 >> >> line2 >> >> line3' >> ... >> I would like to dump >> --- >> value1: 1 >> value2: |- >> line1 >> line2 >> line3 >> ... >> >> So I would like to use the plain scalar style but if the value >> contains '\n' then the literal style shall be used. >> Is it possible? >> >> Andrey >> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> Yaml-core mailing list >> Yam...@li... >> https://lists.sourceforge.net/lists/listinfo/yaml-core > > |