实用配置系统

fitb的Python项目详细描述


一个实用的python配置系统。

使用fitb,可以指定程序/库/所需的配置选项的集合。fitb然后 帮助您构造配置对象并将它们合并在一起。

配置对象configuration object只是一个dict,因此fitb可以帮助您构建dicts。 进入dict的路径,即进入dict和子区域的键序列,以及选项和 默认值。

快速启动

使用fitb首先要定义一个配置选项集合:

options=[(('my-app','screen'),fitb.Option('width','Width of screen',100)),(('my-app','screen'),fitb.Option('height','Height of screen',200))]

列表中的每个条目都指定了前缀路径和选项本身。从这里我们可以建立一个 默认配置选项:

config=fitb.build_default_config(options)

这给了我们一个这样的对象:

{'my-app':{'screen':{'width':100,'height':200}}}

用它可以做这样的事情:

print(config['my-app']['screen']['width']

或使用子图:

screen_config=config['my-app']['screen']print(screen_config['width'])

也可以合并配置文件,将条目从一个配置添加到另一个配置文件中,可能覆盖退出选项。 看起来是这样:

fitb.merge(dest=config,src={'my-app':{'screen':{'width':400}}})# The `dest` config has been updatedassertconfig['my-app']['screen']['width']==400

这种合并功能非常有用,因为您可以执行如下操作:

  1. 创建默认配置
  2. 从文件加载用户配置(例如toml、ini或其他文件)
  3. 将用户配置合并到默认配置中。

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

推荐PyPI第三方库


热门话题
java如何使用DBFlow进行迁移?   java无法从socket读取数据   java在JButton上使用鼠标运动监听器?   元素的java ArrayList链接和get IndexOutOfBoundsException   javascript如何在Java脚本中从ajax调用解析JSON对象   从数据库中获取信息并将其写入JTable。错误:java。lang.IndexOutOfBoundsException:索引:2,大小:2   spring如何使用Java SpringBoot在FCM推送通知中向IOS发送图像通知   java jsoup:解析某个标记的数据,该标记恰好位于某个特定标记之后   java没有HashMap的等式依赖于EntrySet。钥匙套?   未按预期评估java Maven属性(osmavenplugin)   类Java向ArrayList添加了用户输入,需要用另一个ArrayList中的变量分隔   JavaJSF丰富:每行呈现的数据列表?   集合Java 8按属性区分   在Java中,是否可以(静态)导入构造函数或局部变量?   安卓在ubuntu 10上安装java时出错64位   java是否应该hashCode()只使用equals()中使用的不可变字段的子集?   java如何创建ConcurrentMultiMap