Python之ruamel.yaml模块详解(三)| ruamel.yaml与pyyaml的区别

举报
虫无涯 发表于 2023/02/13 09:38:58 2023/02/13
【摘要】 接前文:Python之ruamel.yaml模块详解(一);Python之ruamel.yaml模块详解(二);注:以下内容翻译自:https://yaml.readthedocs.io/en/latest/pyyaml.html 12 默认支持Yaml1.2PyYAML支持YAML 1.1标准,ruamel.YAML支持2009年发布的YAML 1.2;YAML 1.2放弃了对几个未提及的...

接前文:

注:以下内容翻译自: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(CPythonPyPy)、3.3、3.4、3.5和3.6上(2016年中期,对2.6的支持已经下降);
  • 它更易于扩展和维护,因为只有一小部分代码是特定于Python版本的。

14 修复

  • 转储时,ruamel.yaml跟随标量上的indent关键字参数;
  • ruamel.yaml允许:在纯标量中,只要它们后面没有空格(根据规范)。

15 测试

  • ruamel.yaml使用toxpy.test进行测试。除了新的测试之外,原始的PyYAML测试框架也在tox运行中调用;
  • 在将版本推送到PyPI之前,将在所有支持的Python版本上调用tox,并且必须在PyPI以及flake8/pep8上传递。

16 API

  • 从0.15开始,使用ruamel.yamlAPI出现了分歧,可以更容易地添加新功能。
【版权声明】本文为华为云社区用户翻译文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容, 举报邮箱:cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。