基于伪分层INI文件格式,支持配置模式定义的Zope 2/3应用程序的中央配置服务
项目描述
简介
haufe.hrs.configuration为基于Zope的应用程序提供了一种伪分层的配置机制,以提供中央配置服务。
特性
基于INI文件的配置
配置是伪分层的(部分名称可以是点名称(如cms.somepath,foo.bat.something.else)
所有有效的配置选项都通过模型定义(一个定义部分、它们的选项、它们的类型和默认值的INI样式文件)。该模型用于执行类型检查和提供默认值
模型和配置文件可以一次性或增量加载到配置服务中
可选地监督配置文件的更改(配置文件的更改可以触发配置的立即重新加载)
非常简单的API
用于定义模型和配置文件位置的ZCML指令
易于与Zope 2和Zope 3集成
可以在Zope之外(纯Python应用程序)使用 - 该包对其他zope.*包的依赖性很少
良好的测试覆盖率
定义一个模型
模型定义可能如下所示
[cms] HRSCheckoutPath=string,default=42 HRSCheckoutURL=string HRSImportPath=string HRSImportClientPath=string HRSPreviewPath=string HRSPreviewClientPath=string CvtSGMLtoRtfPath=string CvtSGMLtoRtfMaxWait=int ADB2StartURLbase=string ADB2Version=int ToolboxStartURLbase=string NormenDBStartURLbase=string VADBStartURLbase=string LauflistenStartURL=string HRS2UIStartURLbase=string MedienStartURLbase=string [cms.db] datenbank1= datenbank2= datenbank3=
您可以看到语法相当简单。语法始终是
<optionname> = <type>, [default=<default-value>]
<optionname>是必填项。<type>默认为‘string’,可以省略(其他类型有‘int’,‘list’,‘float’,‘complex’或‘bool’)。‘=’是必填项(否则Python的配置解析器会报错。可以定义一个可选的默认值(否则将使用None)。提示:作为默认值使用的字符串必须使用引号。
相关的配置文件可能如下所示
[cms] HRSCheckout = /foo/bar adb2version = 44 hrscheckoutpath = 12 port = 22 [toolbox] partition_id = Toolbox nginx_baseurl = http://weiss.nix.de/
配置值的访问方式如下
cms.ADB2Version cms.HRSCheckoutURL cms.db.datenbank
用法
从Python
from haufe.hrs.configuration import ConfigurationService service = ConfigurationService(watch=True) service.registerModel('example/model') service.loadConfiguration('example/sample_config/all-in-one.ini') print service.getConfiguration() print service.get('cms.ADB2Version') print service.get('datenbank', domain='cms.db')
ZCML集成
haufe.hrs.configuration提供了两个ZCML指令haufe:registerModel和haufe:registerConfiguration
<configure xmlns="http://namespaces.zope.org/zope" xmlns:haufe="http://namespaces.haufe.de/haufe"> <haufe:registerModel model="haufe/hrs/configuration/tests/model" /> <haufe:registerConfiguration configuration="haufe/hrs/configuration/tests/example-config.ini" /> </configure>
模型和配置的路径名称可以是绝对路径,相对于当前ZCML文件的路径,或者包含环境变量的路径字符串(将自动替换)。
致谢
实现基于Dann Gass的cfgparse模块
许可证
haufe.hrs.configuration根据Zope公共许可证2.1授权。请参阅包含的ZPL.txt文件。
联系方式
变更日志
0.5.18 (2012-05-16)
添加了configure zcml,用于注册haufe.hrs.configuration.services.CentralConfigurationService实用程序,以通过buildout zcml指令集中加载它
0.5.17 (2011-05-23)
修复了0.5.16中错误修复的改进
修复了reST结构
0.5.16 (2011-05-23)
对于测试runner,只要haufe.hrs.configuration不能区分它是在测试模式下运行还是从实例目录中运行的生产模式,就使测试模型和测试配置的路径绝对
0.5.15 (2011-03-03)
添加了另一个缺少的测试配置路径
0.5.14 (2011-03-03)
更正了测试配置的路径
0.5.13 (2011-03-02)
如果opts为空,则使util安全失败
更正了在eggified环境中运行的测试
拼写纠正
0.5.12 (2009-10-15)
修复了文档中的拼写错误
移除了模型文件必须以.ini结尾的愚蠢限制
0.5.11 (2009-07-07)
保留键的区分大小写,而不会盲目地将它们映射到小写
0.5.10 (2009-05-14)
移除了对pyinotify的硬编码依赖
0.5.9 (2009-03-17)
使用列表而不是集合来保持配置和模型文件名列表
0.5.8 (2009-03-03)
使日志记录不那么冗长
一些更多的测试
0.5.7 (2009-02-23)
使用OptionNotSetMarker
0.5.6 (2009-01-13)
扩展cfgparse模块以支持‘bool’类型
0.5.5 (2009-01-13)
registerModel()现在触发一个reload(),以便为具有默认值的配置选项提供配置支持
0.5.4 (2008-11-21)
重构服务
0.5.3 (2008-11-21)
由于它已移动到HaufeCMS核心,因此已移除service_hrs.py
0.5.2 (2008-11-17)
重构通知线程处理
0.5.1 (2008-11-12)
在服务构造函数中预设了一些实例变量
0.5.0 (2008-11-12)
如果没有配置值,则配置将引发KeyError
service.get()现在在查找失败时引发KeyError而不是ValueError
将‘prefix’重命名为‘domain’
清理ZCML配置(名称和命名空间)。请参阅README.txt
0.4.5 (2008-11-11)
现在ZCML配置中的配置路径可以是相对于相关ZCML文件的位置
小清理
0.4.4 (2008-11-07)
在Zope环境中运行时不要修改日志记录级别
通知现在应该更可靠地工作。在处理慢速编辑器时,将在延迟五秒后触发 reload() 方法。
0.4.3 (2008-11-06)
添加了显式的 shutdown() 函数(对于正确的 Z2 集成是必需的)。
0.4.2(内部发布)
添加了 service.getConfigurationFor()。
0.4.1 (2008-11-03)
移除了 haufe.decorator 依赖。
0.4.0 (2008-11-03)
第一个公开版本。
更新了文档和测试。
进行了一些内部清理,以修复竞争条件。
0.3.0 (2008-11-02)
添加了 pyinotify 依赖。
监视配置文件更改。
在 reload() 时发送 ConfigurationChangedEvent。
0.2.0 (2008-11-01)
添加了服务实现。
添加了 zcml 实现。
更多测试。
0.1.0 (2008-10-31)
初始发布。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
haufe.hrs.configuration-0.5.18.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 215dbe3a18c515acbfad1caa75b07c0d676adffc1773fb4bec7f820981f1df62 |
|
MD5 | 3e3cd6bab33660b86a6ebc14b1039d12 |
|
BLAKE2b-256 | af84eb5c244411cc9fc5234b4b972e37c6cee1c27235fdc9dc82e3ba3c2206ce |