summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Floyd <cognifloyd@gmail.com>2022-03-07 01:02:21 -0600
committerJacob Floyd <cognifloyd@gmail.com>2022-03-07 01:02:21 -0600
commit9b00a89d94a38a31af24e32031ade5a9e50b9371 (patch)
treeec70562129e01cf534b70e8ab5d66a2e54599093
parent93219905074f2db276572bccaf886e260355fbb5 (diff)
downloadruamel.yaml-9b00a89d94a38a31af24e32031ade5a9e50b9371.tar.gz
Preserve Octal format in YAML 1.1 docs
-rw-r--r--constructor.py7
-rw-r--r--representer.py5
2 files changed, 10 insertions, 2 deletions
diff --git a/constructor.py b/constructor.py
index 6aa6371..a67ca55 100644
--- a/constructor.py
+++ b/constructor.py
@@ -1148,7 +1148,12 @@ class RoundTripConstructor(SafeConstructor):
anchor=node.anchor,
)
elif self.resolver.processing_version != (1, 2) and value_s[0] == '0':
- return sign * int(value_s, 8)
+ return OctalInt(
+ sign * int(value_s, 8),
+ width=width,
+ underscore=underscore,
+ anchor=node.anchor,
+ )
elif self.resolver.processing_version != (1, 2) and ':' in value_s:
digits = [int(part) for part in value_s.split(':')]
digits.reverse()
diff --git a/representer.py b/representer.py
index 820559b..c57d9aa 100644
--- a/representer.py
+++ b/representer.py
@@ -634,7 +634,10 @@ class RoundTripRepresenter(SafeRepresenter):
else:
s = format(data, 'o')
anchor = data.yaml_anchor(any=True)
- return self.insert_underscore('0o', s, data._underscore, anchor=anchor)
+ prefix = '0o'
+ if getattr(self.serializer, 'use_version', None) == (1, 1):
+ prefix = '0'
+ return self.insert_underscore(prefix, s, data._underscore, anchor=anchor)
def represent_hex_int(self, data):
# type: (Any) -> Any