summaryrefslogtreecommitdiff
path: root/main.py
diff options
context:
space:
mode:
authorAnthon van der Neut <anthon@mnt.org>2023-05-05 20:08:37 +0200
committerAnthon van der Neut <anthon@mnt.org>2023-05-05 20:08:37 +0200
commita6a96c99a78cdc34e291af8d7d2d17fd1bf42a42 (patch)
tree99c4e94587427d628bb5679a8ee85b8c2487bf01 /main.py
parent199f4f52fa9c1700de3b4d3709de81c34b7402a4 (diff)
downloadruamel.yaml-a6a96c99a78cdc34e291af8d7d2d17fd1bf42a42.tar.gz
fixes issue: 458,454, stackoverflow reports
Diffstat (limited to 'main.py')
-rw-r--r--main.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/main.py b/main.py
index 636ad6c..e3bf851 100644
--- a/main.py
+++ b/main.py
@@ -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