summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthon van der Neut <anthon@mnt.org>2016-10-28 15:42:15 +0200
committerAnthon van der Neut <anthon@mnt.org>2016-10-28 15:42:15 +0200
commitcbbe40b4246fab799886078136d959e112fc60f0 (patch)
treefb22e0069108f50fc88dca79c4370aa4c3224961
parent6edb229b01177b9599c269ecf7588e89c0105b3a (diff)
downloadruamel.yaml-cbbe40b4246fab799886078136d959e112fc60f0.tar.gz
Fix for issue #70 no preserve_quotes on _load_all0.12.15
-rw-r--r--__init__.py2
-rw-r--r--_test/test_yamlfile.py15
-rw-r--r--main.py4
-rw-r--r--representer.py1
4 files changed, 19 insertions, 3 deletions
diff --git a/__init__.py b/__init__.py
index 15142b6..61068d6 100644
--- a/__init__.py
+++ b/__init__.py
@@ -9,7 +9,7 @@ from __future__ import absolute_import
_package_data = dict(
full_package_name="ruamel.yaml",
- version_info=(0, 12, 14),
+ version_info=(0, 12, 15),
author="Anthon van der Neut",
author_email="a.van.der.neut@ruamel.eu",
description="ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order", # NOQA
diff --git a/_test/test_yamlfile.py b/_test/test_yamlfile.py
index 9b224b8..e7e31ca 100644
--- a/_test/test_yamlfile.py
+++ b/_test/test_yamlfile.py
@@ -192,3 +192,18 @@ class TestYAML:
round_trip(s)
assert d['c'][0].split('it.')[1] == ''
assert d['c'][1].split('line.')[1] == ''
+
+ def test_load_all_perserve_quotes(self):
+ s = dedent("""\
+ a: 'hello'
+ ---
+ b: "goodbye"
+ """)
+ data = []
+ for x in ruamel.yaml.round_trip_load_all(s, preserve_quotes=True):
+ data.append(x)
+ out = ruamel.yaml.dump_all(data, Dumper=ruamel.yaml.RoundTripDumper)
+ print(type(data[0]['a']), data[0]['a'])
+ # out = ruamel.yaml.round_trip_dump_all(data)
+ print(out)
+ assert out == s
diff --git a/main.py b/main.py
index 646330f..fabe8a1 100644
--- a/main.py
+++ b/main.py
@@ -83,12 +83,12 @@ def load(stream, Loader=Loader, version=None, preserve_quotes=None):
loader.dispose()
-def load_all(stream, Loader=Loader, version=None):
+def load_all(stream, Loader=Loader, version=None, preserve_quotes=None):
"""
Parse all YAML documents in a stream
and produce corresponding Python objects.
"""
- loader = Loader(stream, version)
+ loader = Loader(stream, version, preserve_quotes=preserve_quotes)
try:
while loader.check_data():
yield loader.get_data()
diff --git a/representer.py b/representer.py
index 8fcbc7c..77a3f59 100644
--- a/representer.py
+++ b/representer.py
@@ -660,6 +660,7 @@ class RoundTripRepresenter(SafeRepresenter):
def represent_key(self, data):
if isinstance(data, CommentedKeySeq):
+ self.alias_key = None
return self.represent_sequence(u'tag:yaml.org,2002:seq', data,
flow_style=True)
return SafeRepresenter.represent_key(self, data)