EMS项目的通用配置实用程序
ems-config的Python项目详细描述
EMS配置
这个项目引入了一种处理配置文件的统一方法。其原理是有一个基于文本的配置文件 (ini、yml或toml),然后在代码中执行解析和健全性检查。此外,默认布局是 鼓励。在
你需要提供三条路径
- 一个
app_data
目录。这是您应该放置所有数据的位置,以及最终配置文件的位置。 这是在环境变量APP_DATA_PATH
中设置的,默认为app_data
。在 - 最终配置文件的路径。如果模板文件名为
$APP_DATA_PATH/config.ini
(见下文),则默认为$APP_DATA_PATH/config.ini
。 也就是说,它从模板文件的文件名中剥离.example
。在 - 模板文件的路径。默认为
config.example.ini
。在
注意,2和3都可以在下面的parse方法或环境变量(CONFIG_PATH
和{
然后,您的目录的假定布局如下所示
project
- app_data/
- config.ini
- app.py
- config.py
- config.example.ini
其中config.py
包含以下内容
模板config.ini.example
包含一个配置示例
[DEFAULT]
URL = http://google.com
然后,您可以在其他python文件中使用该配置
from config import URL
print(URL) # do stuff with the URL
注意,如果app_data
中的config.ini
(或者您选择放置它的任何位置),则模板
将被复制到该位置。在
辅助方法
这个库提供了一些可以在^{
# 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')
- 项目
标签: