在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在某些练习中避免索引异常   java Android,如何在具有socket的网络区域上提高性能?   更改web中的执行顺序后,JavaServlet过滤器不起作用。xml   java如何绑定泛型类?   JavaGmail RESTAPI:使用Google凭证而不模拟   java是解码整数序列的最快方法   java根据hashmaps的值(通过map的值进行比较)对hashmaps的数组列表进行排序   用于JBoss 7.1或Apache的java负载平衡器,带有Healt检查   java非常慢的MySQL读取性能   java如何在使用iRetryAnalyzer时从Windows CMD关闭Selenium WebDriver?   java随机闪烁仅出现在Galaxy Note 4上   java AttributeOverride MappedSuperClass属性的类型不同   java JPA:如何检测现有实体是否已更新?   java如何使用mavenassemblyplugin从dependencySet中删除METAINF?   安装SecurityManager时,java MQQueueManager构造函数挂起