具有嵌套访问、插值和回退功能的字典。它主要用于存储程序的配置。

confdict的Python项目详细描述


confdict

通过递归访问、自引用和回退功能扩展内置python dict的配置字典。目前还没有大量的文档,您可以查看测试以了解所有特性。

示例用法。

>>>fromconfdictimportConfDict>>>cd=ConfDict(# Configuration of ConfDict, these are default values__separator='/',__self_key='.',__parent_key='..',__root_key='...',__key_key='<key>',__interpolation_regex=r'({{([^{}]*)}})',__fallback_key='fallback',# Remaining arguments will directly be stored in underlying dictusers={# fallback dict is used when a key is not found at that level'fallback':{# <key> is evaluated to key of the current level# it is useful when used with fallback'username':'{{<key>}}',# you can use self references'ssh_private_key':'/home/{{username}}/.ssh/id_rsa',},})>>>cdConfDict{'users':{'fallback':{'ssh_private_key':'/home/{{username}}/.ssh/id_rsa','username':'{{<key>}}'}}}>>>cd['users/john/username']'john'>>>cd['users/john/ssh_private_key']'/home/john/.ssh/id_rsa'>>>cd['users/john']ConfDict{'ssh_private_key':'/home/john/.ssh/id_rsa','username':'john'}>>>cd['users/jean']ConfDict{'ssh_private_key':'/home/jean/.ssh/id_rsa','username':'jean'}>>>cd['users/jean']={'username':'jeans_custom_username'}>>>cd['users/jean/ssh_private_key']'/home/jeans_custom_username/.ssh/id_rsa'>>># 'jean' exists now under 'users'>>># there is no partial fallback so there is no 'ssh_private_key'>>>cd['users/jean']ConfDict{'username':'jeans_custom_username'}>>># we can realize fallback as jean to make concrete values>>>cd['users/fallback'].realize('jean')>>>cd['users/jean']ConfDict{'ssh_private_key':'/home/jeans_custom_username/.ssh/id_rsa','username':'jeans_custom_username'}>>># interpolation still works>>>cd['users/jean/username']='jeans_custom_username2'>>>cd['users/jean/ssh_private_key']'/home/jeans_custom_username2/.ssh/id_rsa'

安装

$ pip install confdict

开发

有一个Makefile来自动执行常用的开发任务。

环境设置

### create a virtualenv for development

$ sudo pip install virtualenv # or your preferred way to install virtualenv

$ make virtualenv # will also install dependencies

$ source env/bin/activate

### run pytest / coverage

$ make test

### before commit

$ make format

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

推荐PyPI第三方库


热门话题
java有可能让一个bean在春天拥有多个父对象吗?   java将字符串转换为sparql URI   java如何仅从JPQL中的日期时间字段按日期分组   java到节点。js代码转换   java为什么即使构建成功,applet也不启动?   java多人查询jpql   令牌“}”上的java语法错误,{应为   基于列表的简单留言板实现中的java NullPointerException   javasimplenlg:我们如何指定数量?   java如何仅从Freemarker中的字符串获取字母表?   java Spring引导JPA按实体排序集合   java排序单链表与排序双链表   eclipse将版权头添加到所有项目文件(.java、.xml、…)