summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_test/test_issues.py1
-rw-r--r--parser.py13
-rw-r--r--resolver.py2
-rw-r--r--scanner.py4
4 files changed, 10 insertions, 10 deletions
diff --git a/_test/test_issues.py b/_test/test_issues.py
index 5606122..f2b5d74 100644
--- a/_test/test_issues.py
+++ b/_test/test_issues.py
@@ -846,7 +846,6 @@ class TestIssues:
null
""")
yaml = YAML()
- yaml.version = (1, 1) # This should not be necessary -> issue 301
with pytest.raises(ruamel.yaml.scanner.ScannerError,
match='while scanning a directive'):
yaml.load(inp)
diff --git a/parser.py b/parser.py
index 566d13a..10deaa8 100644
--- a/parser.py
+++ b/parser.py
@@ -109,7 +109,6 @@ class Parser(object):
# type: () -> None
# Reset the state attributes (to clear self-references)
self.current_event = None
- self.yaml_version = None
self.tag_handles = {} # type: Dict[Any, Any]
self.states = [] # type: List[Any]
self.marks = [] # type: List[Any]
@@ -269,12 +268,12 @@ class Parser(object):
def process_directives(self):
# type: () -> Any
- self.yaml_version = None
+ yaml_version = None
self.tag_handles = {}
while self.scanner.check_token(DirectiveToken):
token = self.scanner.get_token()
if token.name == u'YAML':
- if self.yaml_version is not None:
+ if yaml_version is not None:
raise ParserError(
None, None, 'found duplicate YAML directive', token.start_mark
)
@@ -286,7 +285,7 @@ class Parser(object):
'found incompatible YAML document (version 1.* is ' 'required)',
token.start_mark,
)
- self.yaml_version = token.value
+ yaml_version = token.value
elif token.name == u'TAG':
handle, prefix = token.value
if handle in self.tag_handles:
@@ -295,11 +294,11 @@ class Parser(object):
)
self.tag_handles[handle] = prefix
if bool(self.tag_handles):
- value = self.yaml_version, self.tag_handles.copy() # type: Any
+ value = yaml_version, self.tag_handles.copy() # type: Any
else:
- value = self.yaml_version, None
+ value = yaml_version, None
if self.loader is not None and hasattr(self.loader, 'tags'):
- self.loader.version = self.yaml_version
+ self.loader.version = yaml_version
if self.loader.tags is None:
self.loader.tags = {}
for k in self.tag_handles:
diff --git a/resolver.py b/resolver.py
index 9bcbd37..6379943 100644
--- a/resolver.py
+++ b/resolver.py
@@ -383,7 +383,7 @@ class VersionedResolver(BaseResolver):
def processing_version(self):
# type: () -> Any
try:
- version = self.parser.yaml_version
+ version = self.loadumper._scanner.yaml_version
except AttributeError:
try:
if hasattr(self.loadumper, 'typ'):
diff --git a/scanner.py b/scanner.py
index 7267cea..69869a5 100644
--- a/scanner.py
+++ b/scanner.py
@@ -81,6 +81,7 @@ class Scanner(object):
self.loader._scanner = self
self.reset_scanner()
self.first_time = False
+ self.yaml_version = None
@property
def flow_level(self):
@@ -955,7 +956,8 @@ class Scanner(object):
"expected a digit or ' ', but found %r" % utf8(srp()),
self.reader.get_mark(),
)
- return (major, minor)
+ self.yaml_version = (major, minor)
+ return self.yaml_version
def scan_yaml_directive_number(self, start_mark):
# type: (Any) -> Any