模块化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

贡献

请随意打开拉取请求。任何形式的贡献都是非常感谢的!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java有没有工具可以将zephyr转换为velocity模板?   java在安卓 studio中从JSON响应中获取值   jvm如何在Java中设计一个好的permgen空间字符串?   java如何防止Rest webservice使用被盗令牌进行身份验证   java无法遍历列表JSTL   找不到用于ResourceServerTokenServices的java Bean SpringSecurityOauth2   java子字符串替换问题   爪哇玻璃鱼3。十、 以编程方式处理任意HTTPSession的终止   java如何检查输入是否为整数,并在最后添加一个命令来重新启动while循环?   引发java ical4j 1.0.6不可解析日期异常   Java等价于Delphi的DBCtrlGrid?   如果发生错误,java将查找下一个预期标记ANTLR 3   java自打开应用程序(创建锁屏)   java为什么netty有自己的ConcurrentHashMap?   Gradle任务中的java拉取和运行依赖项   继承与Java继承的混淆   java使用shell脚本中的版本执行jar   java我无法让Sqlite数据库与带有Maven的JavaFX应用程序IDE Eclipse包正确通信   java控制台日志未通过org打印。阿帕奇。hadoop。mapreduce。作业的waitForCompletion(true)方法   JAVAlang.NoSuchMethodError:apachestorm螺栓中的spring getrequest