接前文:
- Python之ruamel.yaml模块详解(一);
- Python之ruamel.yaml模块详解(二);
注:以下内容翻译自:https://yaml.readthedocs.io/en/latest/pyyaml.html
12 默认支持Yaml1.2
PyYAML
支持YAML 1.1
标准,ruamel.YAML
支持2009年发布的YAML 1.2;YAML 1.2
放弃了对几个未提及的功能的支持,包括Yes、No、On、Off
;YAML 1.2
不再接受以0开头且仅由数字字符组成的字符串作为八进制,需要使用0o[0-7]
(对于八进制,零 小写o
一个或多个八进制字符)指定此类字符串;YAML 1.2
不再支持sexagesimals
,因此字符串标量12:34:56
不需要引用;/
JSON兼容性转义;- 用指数正确解析浮点标量。
除非YAML文档加载了显式version==1.1
或文档以以下开头,否则ruamel.yaml
将以1.2版本加载文档。
% YAML 1.1
13 Py2和Py3重新整合
ruamel.yaml
重新集成了Python
2和3源代码,运行在Python
2.7(CPython
,PyPy
)、3.3、3.4、3.5和3.6上(2016年中期,对2.6的支持已经下降);- 它更易于扩展和维护,因为只有一小部分代码是特定于
Python
版本的。
14 修复
- 转储时,
ruamel.yaml
跟随标量上的indent
关键字参数; ruamel.yaml
允许:在纯标量中,只要它们后面没有空格(根据规范)。
15 测试
ruamel.yaml
使用tox
和py.test
进行测试。除了新的测试之外,原始的PyYAML
测试框架也在tox
运行中调用;- 在将版本推送到
PyPI
之前,将在所有支持的Python
版本上调用tox
,并且必须在PyPI
以及flake8/pep8
上传递。
16 API
- 从0.15开始,使用
ruamel.yaml
的API
出现了分歧,可以更容易地添加新功能。