# HG changeset patch # User Jeremy Thurgood # Date 1378503562 -7200 # Node ID e0d27a11f49ab6297a464164e711e9bf8dabe8b4 # Parent 70f6917cad07f978670387be6a3809c1db9feefa# Parent a106d7e1415b625a0125b2cc8995d76f15267dcb Bleh. diff -r 70f6917cad07 -r e0d27a11f49a nagslang/tests/test_yamlish.py --- a/nagslang/tests/test_yamlish.py Fri Sep 06 23:37:55 2013 +0200 +++ b/nagslang/tests/test_yamlish.py Fri Sep 06 23:39:22 2013 +0200 @@ -108,6 +108,14 @@ 0.7: -0.7, }) + def test_dictish_string(self): + self.roundtrip({ + 'strings': [ + 'Foo: bar', + 'Baz: qux', + ], + }) + def test_tuples(self): if self.from_pyyaml: raise SkipTest("Can't parse PyYAML tuples") diff -r 70f6917cad07 -r e0d27a11f49a nagslang/yamlish.py --- a/nagslang/yamlish.py Fri Sep 06 23:37:55 2013 +0200 +++ b/nagslang/yamlish.py Fri Sep 06 23:39:22 2013 +0200 @@ -100,7 +100,7 @@ def _dump_basestring(self, data): if data in ('true', 'false', 'null'): return "'%s'" % data - if "'" in data: + if "'" in data or ':' in data or data.startswith('['): return "'%s'" % data.replace("'", "''") if data == '': return "''" @@ -123,7 +123,7 @@ class Parser(object): _spaces_re = re.compile(r'^(\s*)(.*)') _list_re = re.compile(r'^(-\s+)(.*)') - _dict_re = re.compile(r'^((?![{[])[^-:]+):\s?(.*)') + _dict_re = re.compile(r"^((?![{['])[^-:]+):\s?(.*)") _inline_list_re = re.compile(r"^([^',]+|(?:'')+|'.+?[^'](?:'')*')" r"(?:, (.*))?$")