diff options
-rw-r--r-- | constructor.py | 7 | ||||
-rw-r--r-- | representer.py | 5 |
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 |