EMS项目的通用配置实用程序

ems-config的Python项目详细描述


EMS配置

这个项目引入了一种处理配置文件的统一方法。其原理是有一个基于文本的配置文件 (ini、yml或toml),然后在代码中执行解析和健全性检查。此外,默认布局是 鼓励。在

你需要提供三条路径

  1. 一个app_data目录。这是您应该放置所有数据的位置,以及最终配置文件的位置。 这是在环境变量APP_DATA_PATH中设置的,默认为app_data。在
  2. 最终配置文件的路径。如果模板文件名为$APP_DATA_PATH/config.ini(见下文),则默认为$APP_DATA_PATH/config.ini。 也就是说,它从模板文件的文件名中剥离.example。在
  3. 模板文件的路径。默认为config.example.ini。在

注意,2和3都可以在下面的parse方法或环境变量(CONFIG_PATH和{})中设置

然后,您的目录的假定布局如下所示

project
  - app_data/
    - config.ini
  - app.py
  - config.py
  - config.example.ini

其中config.py包含以下内容

^{pr2}$

模板config.ini.example包含一个配置示例

[DEFAULT]
URL = http://google.com

然后,您可以在其他python文件中使用该配置

from config import URL
print(URL)  # do stuff with the URL

注意,如果app_data中的config.ini(或者您选择放置它的任何位置),则模板 将被复制到该位置。在

辅助方法

这个库提供了一些可以在^{中找到的helper方法

# Get the path of p relative to the APP_DATA_DIRget_from_app_data(p)## Help to parse from .ini style filesparse_dt_or_none(...)parse_list_or_none(...)

定制

如果不希望模板以上述方案命名,可以传递另一个模板 parse_config()方法的路径。同样,如果您希望最终配置文件位于其他位置, 您还可以提供另一条路径

fromems_configimportparse_config# config_path will default to $APP_DATA_PATH/cfg.iniconfig=parse_config(config_template='templates/cfg.example.ini')config=parse_config(config_template='templates/cfg.ini',config_path='/etc/app.ini')

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

推荐PyPI第三方库


热门话题
分别使用椭圆曲线密码对文本消息进行java加密和解密   java如何将JTable滚动到特定值?   java JSP登录注销简单web应用程序,使用bean在数据库中存在数据时返回false   java无法编译,未设置类路径,包不存在?   java为什么这一变量会受到影响?   集合为什么Java在Map中没有putIfAbsent(key,supplier)方法?   安卓在Java中计算仿真时间   java初始化方法在主类中的指定方法之前运行   java如何在hadoop的reduce中将genericWritable恢复为用户定义的可写?   如何使用java替换pdf中的文本   参数不适用于ASP服务器的java HttpPost   创建对象时的java NullPointerException   Java JPanel中的swing图形有问题,但它在一个框架中工作   java Android Studio在硬件设备上运行时出错   google api类路径的java空指针异常   java如何将InputStream转换为DataHandler?   java在多个Jetty服务器之间共享连接池