使用python进行简单的配置管理。
python-simpleconf的Python项目详细描述
simpleConf
使用python进行简单的配置管理
安装
# released version pip install python-simpleconf # lastest version pip install git+https://github.com/pwwang/simpleconf
功能
- 很简单!很简单!很简单!
- 配置文件切换
- 支持的格式:
.ini/.cfg/.config
(使用ConfigParse
).env
(使用python-dotenv
).yaml/.yml
(使用pyyaml
).toml
(使用toml
).json
(使用json
)- 系统环境变量
- python词典
- 值转换
用法
加载配置
fromsimpleconfimportconfig# load a single fileconfig._load('~/xxx.ini')# load multiple filesconfig._load('~/xxx.ini','~/xxx.env','~/xxx.yaml','~/xxx.toml','~/xxx.json','simpleconf.osenv',{'default':{'a':3}})
对于.env
配置,变量名使用配置文件名作为前缀。例如:
default_a=1default_b=py:1 test_a=2
config._load('xxx.env')config.a=='1'config.b==1config._use('test')config.a=='2'config._revert()config.a=='1'
使用with
临时切换配置文件:
config._load('xxx.env')config.a=='1'config.b==1withconfig._with('test')ascfgconfig.a=='2'config.a=='1'
对于.osenv
配置,例如simpleconf.osenv
,将只加载名称以SIMPLECONF_
开头的变量,然后紧跟大写配置文件名。
os.environ['SIMPLECONF_DEFAULT_A']=1os.environ['SIMPLECONF_test_A']=2config._load('simpleconf.osenv')config.A==1config._use('test')config.A==2
优先级由加载配置的顺序决定。
在上面的例子中,config.A
无论如何都是3
,不管在先前的配置中分配了什么值。
提示:要使系统环境变量始终具有最高优先级,应始终最后加载它们。
切换配置文件
与ConfigParse
一样,将首先加载默认配置文件(节)。
[default]a=1b=2[test]a=3
config._load('xxx.ini')config.a==1config.b==2config._use('test')config.a==3config.b==2
注意simpleconf
配置文件不区分大小写,我们对第一层配置使用大写名称:
default:complicated_conf:a = 9
config._load('xxx.yaml')config.complicated_conf.a==9
获取配置值
simpleconf.config
是来自python-box
的^{ConfigBox
支持的所有方法都适用于simpleconf.config
。
此外,我们还扩展了get
方法,允许用户定义cast
方法:
config._load('xxx.ini')config.int('A')==1config.float('A')==1.0defversion(x):return'%s.0.0'%xconfig.get('A',cast=version)=='1.0.0'
无配置文件模式
a:1b:2
fromsimpleconfimportConfigconfig=Config(with_profile=False)config._load('xxx.yaml')config.A==1config.B==2
注意,在.ini配置文件中,您仍然必须使用节名[DEFAULT]