summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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