YAML 파일의 버전을 가져 덧 값입니다 로드 후 재설정. 최신 문서의 버전을 어떻게 든 사용할 수있게하려는 계획 이었지만 스트림에 여러 문서가 있으면 좀 더 생각해야합니다.
단일 문서 스트림의 경우 지시문에서 버전을 캡처하려면 다음을 수행 할 수 있습니다. 이것은 새로운 API로 모두 완료됩니다. 에 속성을 첨부 할 YAML()
인스턴스가 없기 때문에 같은이 가능하지만, 더 어려운 예에서 사용하는 기존의 API를 :
import sys
from ruamel.yaml import YAML
from ruamel.yaml.parser import Parser
yaml_str = """\
%YAML 1.1
---
is_string: 'on'
is_boolean: on
"""
class MyParser(Parser):
def dispose(self):
self.loader.last_yaml_version = self.yaml_version
Parser.dispose(self)
yaml = YAML()
yaml.Parser = MyParser
data = yaml.load(yaml_str)
yaml2 = YAML()
yaml2.version = yaml.last_yaml_version
yaml2.dump(data, sys.stdout)
주는 :
%YAML 1.1
---
is_string: 'on'
is_boolean: true
있습니다 %YAML 1.1
지시문을 만나면 "unversioned"읽기가 yaml
인스턴스를 완전히 재설정하지 않기 때문에 출력용으로 깨끗하고 새로운 객체를 만들어야합니다.
is_boolean
과 연결된 값을 on
으로 버릴 수도 있지만 스트림의 모든 부울에 영향을 미칩니다.