diff options
author | Anthon van der Neut <anthon@mnt.org> | 2023-05-05 20:08:37 +0200 |
---|---|---|
committer | Anthon van der Neut <anthon@mnt.org> | 2023-05-05 20:08:37 +0200 |
commit | a6a96c99a78cdc34e291af8d7d2d17fd1bf42a42 (patch) | |
tree | 99c4e94587427d628bb5679a8ee85b8c2487bf01 /main.py | |
parent | 199f4f52fa9c1700de3b4d3709de81c34b7402a4 (diff) | |
download | ruamel.yaml-a6a96c99a78cdc34e291af8d7d2d17fd1bf42a42.tar.gz |
fixes issue: 458,454, stackoverflow reports
Diffstat (limited to 'main.py')
-rw-r--r-- | main.py | 22 |
1 files changed, 20 insertions, 2 deletions
@@ -54,7 +54,7 @@ class YAML: def __init__( self: Any, *, - typ: Optional[Text] = None, + typ: Optional[Union[List[Text], Text]] = None, pure: Any = False, output: Any = None, plug_ins: Any = None, @@ -157,7 +157,7 @@ class YAML: self.top_level_colon_align = None self.prefix_colon = None - self.version: Optional[Any] = None + self._version: Optional[Any] = None self.preserve_quotes: Optional[bool] = None self.allow_duplicate_keys = False # duplicate keys in map, set self.encoding = 'utf-8' @@ -798,6 +798,24 @@ class YAML: self.sequence_dash_offset = offset @property + def version(self) -> Optional[Any]: + return self._version + + @version.setter + def version(self, val: Optional[VersionType]) -> None: + if val is None: + self._version = val + return + if isinstance(val, str): + sval = tuple(int(x) for x in val.split('.')) + else: + sval = tuple(int(x) for x in val) + assert len(sval) == 2, f'version can only have major.minor, got {val}' + assert sval[0] == 1, f'version major part can only be 1, got {val}' + assert sval[1] in [1, 2], f'version minor part can only be 2 or 1, got {val}' + self._version = sval + + @property def indent(self) -> Any: return self._indent |