跳至主要内容

轻松组合配置文件

项目描述

Layer-Loader

CircleCI

Layer-loader是一个Python库,旨在允许轻松组合配置文件。

该项目受到hiera的启发,尽管其目的是更简单。

用法

主要接口是Python API

import json
import layer_loader

data = layer_loader.load_files(
    ['dev.json', 'main.json'],
    loader=json.load,
)

这将从dev.jsonmain.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 查看哈希值)

上传时间 Python 3

由以下组织支持