使用环境变量插值Yaml文件
项目描述
使用环境变量和其他Yaml文件插值YaML文件。
给定一个类似
a: ${A}
b: 2
的环境变量 $A 的值 hello,yamlenv.load 将返回
{
a: 'hello',
b: 2
}
包括YAML字面量作为环境变量也受到支持 - 因此如果环境变量 $A 被设置为 false,yamlenv.load 将返回
{
a: False,
b: 2
}
支持默认值
yamlenv.load('''
a: ${A:-hello}
b: 2
''') == {
'a': 'hello',
'b': 2
}
如在Bash中,默认值可以通过 :-(不允许空默认值)或通过 -(允许空值)来实现。
环境变量也可以嵌入到更大的字符串中
yamlenv.load('''
a: foo ${A:-bar} baz
b: 2
''') == {
'a': 'foo bar baz',
'b': 2
}
字符串中可以出现多个环境变量
yamlenv.load('''
a: foo ${A:-bar} ${B:-baz}
b: 2
''') == {
'a': 'foo bar baz',
'b': 2
}
Yaml文件也可以包含其他Yaml文件。例如,如果 b.yaml 包含“2”,则
yamlenv.load('''
a: 1
b: !include b.yaml
''') == {
'a': 1
'b': 2
}
包含的Yaml文件可以像必要的那么复杂。
更多示例可以在测试中找到。