用于引用YAML文件中的环境变量的自定义YAML标记。
pyyaml_env_tag的Python项目详细描述
pyyaml_env_标记
用于引用YAML文件中的环境变量的自定义YAML标记。在
安装
使用pip安装PyYAML
和pyyaml_env_tag
包:
pip install pyyaml pyyaml_env_tag
启用标签
要启用标记,请导入并将construct_env_tag
构造函数添加到YAML中
装载机选择。在
然后你可以照常使用装载机。例如:
yaml.load(data,Loader=yaml.Loader)
使用标签
在YAML中包含标记!ENV
,后跟环境变量的名称
文件和环境变量的值将在其位置使用。在
key:!ENVSOME_VARIABLE
如果SOME_VARIABLE
设置为A string!
,那么上述YAML将导致
以下Python对象:
{'key':'A string!'}
变量的内容使用YAML的隐式标量类型进行解析,例如
字符串、bool、integer、float、datestamp和null。不是更复杂的类型
识别并简单地作为字符串传递。例如,如果SOME_VARIABLE
设置为字符串true
,则上述YAML将导致以下结果:
{'key':True}
如果未设置指定的变量,则会指定一个null
值作为默认值。
您可以将自己的默认值定义为序列中的最后一项。在
key:!ENV[SOME_VARIABLE,default]
在上面的例子中,如果没有定义SOME_VARIABLE
,那么字符串default
将
改为使用,如下所示:
{'key':'default'}
您可以列出多个变量作为备用。设置的第一个变量是 用过。在任何包含多个项目的序列中,最后一个项目必须始终是 默认值,不会被解析为环境变量。在
key:!ENV[SOME_VARIABLE,FALLBACK,default]
与变量内容一样,默认值被解析为 隐含类型(string、bool、integer、float、datestamp和null)。在
当SOME_VARIABLE
未设置时,以下四个项目都将解析为
相同的值(None
):
-!ENVSOME_VARIABLE-!ENV[SOME_VARIABLE]-!ENV[SOME_VARIABLE,~]-!ENV[SOME_VARIABLE,null]
相关
pyyaml_env_标记的灵感来自Ruby包yaml-env-tag。在
在YAML文件中引用环境变量的另一种方法是 由pyyaml-tags和{a3}实现。 每个库都使用一个模板字符串,并将模板标记替换为 变量的内容。而这允许引用单个值 多个变量,并且为了包含其他内容,它限制所有值 但不提供一种只定义默认值的方法。在
许可证
pyyaml\u env_标记是在LICENSE
中定义的MIT License下授权的。在
变更日志
版本0.1(发布于2020年11月11日)
初始版本。在
- 项目
标签: