把json文件当作配置文件使用时,为了方便对配置文件进行操作而创建的配置文件类库
Project description
ni-config
把json文件当作配置文件使用时,为了方便对配置文件进行操作而创建的配置文件类库
配置文件的内容为json格式。
规范化json内容的实现层面上,主要通过 JSON Schema 对配置文件的json结构进行定义并进行校验实现的。
安装
pip install ni-config
pip install --upgrade ni-config
构建实例
from config import config
c = config(desc)
desc | 说明 |
---|---|
str | 不含扩展名的文件名,一般为当前目录下、以”desc“为后缀的文件名,如:server.desc |
dict | 包含“name”、“default”、“schema”定义的词典 |
关于默认值
可以通过set_default方法来初始化配置实例的默认值
config("server").set_default()
如若想检查目前的设定是否是默认值,可以使用is_default方法
c = config("server")
c.set_default()
c.is_default()
c.is_default('ip')
如果仅希望检查某个配置是否为默认值,把该配置项作为参数传递给is_default方法,默认不传递参数的情况下,将会对所有配置项进行检查。
若配置项下有多个key,可以通过传递一个list对象来校验具体配置是否为默认值。
{
'server': {
'db': { 'port': 6666 }
},
'ip': '127.0.0.1'
}
c.is_default(['server', 'db', 'port'])
validate
校验配置文件的内容是否与定义的一致。
config("server").validate()
load_config
加载配置文件内容,并对内容进行校验,如果校验失败,则回退到原来的配置内容。
config("server").load_config("slaver.cfg")
dump
把配置内容输出到指定文件
config("server").dump()
config("server").dump("master.cfg")
Get + Set
对config对象中的配置进行修订、设置,或者获取相关配置项的信息;进行修改/设置时,会对变更后的配置内容进行有效性校验,如果校验失败,则回退到原来的配置内容。
c = config("server")
c["ip"] = "192.168.1.101"
print(c["ip"])
"192.168.1.101"
加密型config
为了更好的保护config,不那么容易被篡改,在config的基础上,构建EncryptionConfig。
为了创建一个EncryptionConfig对象,必须为其提供一个Codec;为此,你必须根据自己实际的需要,设计一个Codec的子类。
为了更好的展示使用方式,我建立了一个EasyCodec,可以通过测试用例中参考其应用方式。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for ni_config-0.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50d5ce96a1339ae19a2413c2103b1d45082477703e1c9f0d741b3efcbe3f77c5 |
|
MD5 | 6e9580cfa61e84e336a5c6ad7d54f13c |
|
BLAKE2b-256 | ea09f4c5d634505da59977773f6c840307a7f1833477abf07b3bcc02e0552dcb |