扩展环境变量的yaml解析器

syaml的Python项目详细描述


TravisCI StatusCircleCI Statusdrone.io StatusRequirements Status

安装

$ pip install syaml

如何使用

syaml是扩展环境变量的yaml解析器。 它可以在yaml文件中使用路径名称此处和环境变量。 用mako模板的语法描述。见http://www.makotemplates.org/

apath是yaml文件的绝对路径,name是yaml文件的文件名, 这里的是yaml文件存储的绝对目录路径。

例如。

/路径/to/test.yaml:

- ${here}
- ${name}
- ${path}

上面的文件相当于下面的一个文件。

- /path/to/
- test.yaml
- /path/to/test.yaml

而且,它也可以在yaml文件中使用环境变量。

/路径/to/test.yaml:

- email: ${EMAIL}

如果设置了环境变量email,则上述文件等同于以下文件。

- email: test@example.com

加载文件并加载字符串

示例文件/path/to/syaml/example.yml:

general:
  - ${here}
  - ${name}
  - ${path}

加载文件对象:

>>> import syaml
>>> with open('example.yml', 'rb') as fp:
...     syaml.load(fp)
...
{'general': ['/path/to/syaml', 'example.yml', '/path/to/syaml/example.yml']}

加载字节字符串对象:

>>> syaml.loads(b'general:\n  - ${here}\n  - ${name}\n  - ${path}\n')
{'general': ['', '', '']}

加载字符串对象:

>>> syaml.loads('general:\n  - ${here}\n  - ${name}\n  - ${path}\n')
{'general': ['', '', '']}
>>>

namepath如果将字符串传递给syaml.loads函数,则此处的将替换为空字符串。 它们用于文件对象。类似字符串的对象没有文件路径。

使用命令行工具

syaml呈现

它呈现sayml文件。

示例.yml:

general:
  - ${here}
  - ${name}
  - ${path}

执行syaml render命令:

$ syaml render example.yml
general:
- /path/to/syaml
- example.yml
- /path/to/syaml/example.yml

执行syaml render命令json样式:

$ syaml render example.yml --json
{"general": ["/path/to/syaml", "example.yml", "/path/to/syaml/example.yml"]}

仅执行syaml render命令预处理:

$ syaml render example.yml --pre
general:
  - /path/to/syaml
  - example.yml
  - /path/to/syaml/example.yml

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将列表a作为从流收集的映射中的值   java SVN Eclipse忽略所有用户的文件夹   @PathVariable类型不匹配的java配置错误页   java在应用程序中使用Oracle数据库需要什么?   java无法确定用户何时为我的自定义异常输入数字小于0的问题   java如何通过软件导航网站?   java将JFace TableViewer添加到SWT表   Java中“field”和“this.field”的区别   java战舰代码不工作   java如何设置可执行IE 11驱动程序的路径   java这个程序如何一步一步地计算两个区间之间的阿姆斯特朗数?   JavaRestlet:在过滤器中使用转换器服务   Tensorflow:如何在java中使用python训练的语音识别模型   EclipseJava。util。使用迭代器从HashMap获取ArrayList时出现NoTouchElementException   Java Swing启动屏幕配置错误   为什么MySQL浮点与Java浮点不同?