轻松组合配置文件
项目描述
Layer-Loader
Layer-loader是一个Python库,旨在允许轻松组合配置文件。
该项目受到hiera的启发,尽管其目的是更简单。
用法
主要接口是Python API
import json
import layer_loader
data = layer_loader.load_files(
['dev.json', 'main.json'],
loader=json.load,
)
这将从dev.json
和main.json
加载数据,将其解释为JSON,将其合并为单个对象,然后展开任何占位符。
为了方便,您还可以将layer_loader
作为模块运行
$ cat dev.json
{
"url": "http://localhost:8000"
}
$ cat main.json
{
"endpoints": [
"{url}/abc",
"{url}/def",
"{url}/ghi"
],
"url": "https://production.system"
}
$ python -m layer_loader --loader=json.load dev.json main.json
{
"endpoints": [
"http://localhost:8000/abc",
"http://localhost:8000/def",
"http://localhost:8000/ghi"
],
"url": "http://localhost:8000"
}
层
层的指定顺序是从最重要的(顶部)到最不重要的(底部)。在组合层时,layer-loader使用以下规则
- 映射可以合并,结合几个层的条目
- 标量值和列表替换底层层的条目
- 重要层中的键会覆盖底层层中的键
- 如果多个层中存在键,则这些键具有不同类型的值是错误的。例外情况是,可以在较高层中明确地将键设置为
null
,以删除在较低层中设置的值。
占位符
占位符的指定方式类似于Python格式字符串,可以出现在字符串值内部,例如'foo {place.holder} bar'
。占位符不应出现在键中--它们在那里找不到。
占位符通过遍历扁平化的数据结构进行展开,占位符中的点用于分隔嵌套各层的名称。
没有机制来指定占位符应在哪一层内查找 -- 所有占位符展开都发生在层被扁平化之后。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
layer-loader-0.0.1.tar.gz (6.1 kB 查看哈希值)
构建分发
layer_loader-0.0.1-py3-none-any.whl (8.2 kB 查看哈希值)
关闭
layer-loader-0.0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 064fa86c5ecf2d2e1f9bc635225e58e9c2f6a8f916491b501ff5430ab441b5d6 |
|
MD5 | 4c66025222e56756aa104548580c1462 |
|
BLAKE2b-256 | 06e7ce9f3976be13a98e5d05954ccec4ecf56a27a76c837c858d078858275eff |
关闭
layer_loader-0.0.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | db85853256904db07f055ce44cc55b4ad75c76a51efc30f5af97661966ee9c0e |
|
MD5 | c131c98f43155c31b118e5e2fc80c324 |
|
BLAKE2b-256 | 4bdba29830f4de76d1125cd6e5eff02bbfae78fe2b487383437ed0001a6b4f38 |