模块化python配置实用程序
modular-conf的Python项目详细描述
模块化配置
modular config是一个python包,用于在python中进行动态配置 尽可能简单的计划。它遵循模块化方法,这意味着如果您有一个项目 包含几个模块,每个模块都有您希望能够在中配置的参数 一个中心位置,例如一个配置文件,同时仍然可以定义 配置参数自包含在这些单独的模块中,然后您将看到 好地方。
用法
开始
首先创建一个中心配置对象,该对象保存整个配置并同步 它自己的配置文件。
frommodular_confimportConfigconfig=Config('config.json')
现在您可以使用配置注册模块。 创建一个要拥有的配置字段列表,并在模块名下注册它们。
frommodular_conf.fieldsimportBoolField,StringFieldfields=[BoolField(name='field1',default=False),StringField(name='field2',default='Sample')]config.register_module('your_module_name',fields)
注册字段后,配置将与配置文件同步。如果文件不存在 它将被创建,如果一些字段值还没有包含在配置文件中,它将被填充 给定的默认值。 在我们的例子中,如果以前没有配置文件,那么创建一个新的文件,看起来如下:
{"your_module_name":{"field1":false,"field2":"Sample"}}
可以在您的模块中访问配置,并且可以通过以下方式读取和设置字段值:
config.get('your_module_name','field1')config.set('your_module_name','field2','new value')
由于每个字段都是用给定的类型定义的,配置将自动验证每个字段并引发 发生类型不匹配时出错。例如呼叫
config.set('your_module_name','field2',False)
将引发一个错误,因为field2
被定义为StringField
。
可用配置字段类型列表
- intfield-简单整数
- stringfield-简单字符串
- boolfield-简单布尔型
- choicefield-具有给定一组可能选择的字段(可以是任何类型)
- listfield-包含任意列表
- tuplelistfield-包含元组列表。元组具有预定义的长度,并且 每个元组元素的关联名称。例如IP地址、MAC地址对的列表。元组元素名 提高可读性,可用于前端呈现配置字段。
- dictfield-包含任意字典
安装
简单地
pip install modular-conf
贡献
请随意打开拉取请求。任何形式的贡献都是非常感谢的!