在python代码中轻松配置参数!

configer的Python项目详细描述


配置程序

这是包CONFIGER的存储库有助于在python代码中轻松配置参数

简介

当Python程序变大时,最终需要一种通过文件加载配置的方法对此,python的configparser给出了常见的答案。但至少我发现使用configparse的结果是一段难看的代码:

import ConfigParser
Config = ConfigParser.ConfigParser()
Config.read("c:\\tomorrow.ini")
Config.get(section, option)

这就是我打包解决这个问题的原因configer基本上为您提供了一个扁平的configparser,它具有额外的功能:

  • 对设置文件中的值进行点访问
  • 将设置转储到文件供以后使用
  • 在选择重载上一个设置时添加不同的设置。

依赖关系

这个包是为Python 2.7编写的。 唯一的依赖项是configparser,将由setup.py自动安装

安装

在根目录中,键入

pip install .

示例

整体配置将是一个光滑的方式,从机械分离设置上述代码的准确副本为:

from configer import Configer
Config = Configer(default_ps_fname='c:\\tomorrow.ini')
Config.option

注意,您已经没有部分了,您可以使用点访问方法访问一个选项。

其他用例是:

  1. 加载默认设置

    default_ps_fname = 'pyconfiger/Configer/test/sample_settings.ini'
    ps = Configer(default_ps_fname=default_ps_fname)
    print(ps.status) # None
    
  2. 在添加新参数时加载默认设置

    ps = Configer(default_ps_fname=default_ps_fname, status=False)
    print(ps.status) # False
    ps.status = True
    print(ps.status) # True
    ps.new_status = True
    print(ps.new_status) # True
    
  3. 使用参数字典初始化时加载默认设置

    ps = Configer(default_ps_fname=default_ps_fname, status=False,**{'somethings': [1.0, 2.0]})
    print(ps.somethings) # [1.0, 2.0]
    
  4. 使用第二个配置程序实例添加和重载

    ps1 = Configer(status=False)
    ps2 = Configer(status=True, othersetting = 'this')
    
    ps3 = ps1 + ps2
    print(ps3.status) # False
    print(ps3.othersetting) # 'this'
    
    ps4 = ps1.overload(ps2)
    print(ps4.status) # True
    
  5. 将当前配置程序实例转储为.ini文件

    ps = Configer(default_ps_fname=default_ps_fname, status=False)
    print(ps.status) # False
    ps.dump_settings(fname='~/settings.ini') # saves the settings to the specified file
    

测试

要运行测试,请在根目录中键入:

python -m unittest discover

许可证

请参见license.txt

作者

尼玛·戈尔巴尼,nima.ghorbani@tuebingen.mpg.de

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

推荐PyPI第三方库


热门话题
java SimpleCursorAdapter删除值   java结束while循环条件   java检查设备是否连接到特定网络   java组织。冬眠MappingException找不到逻辑名称为annotation getter的列   为什么java邮件中会抛出此异常?   加载SDK时发生java Eclipse错误   返回奇怪输出的Java数组   JavaXStream和对象类序列化   将枚举列表传递给namedQuery后出现java非法转换异常。Hibernate中的setParameter()   java Android studio不允许我在字符串上使用开关?   有没有办法从Java程序访问存储在Chrome中的cookie   java在枚举中构造实例而不修改枚举类   java Blackberry JDE FieldChangeListener   java修复错误:未报告的异常InterruptedException   java Spring数据JPA:findAll(具有规范和可分页)在计数查询中失败