跳转到主要内容

基于伪分层INI文件格式,支持配置模式定义的Zope 2/3应用程序的中央配置服务

项目描述

简介

haufe.hrs.configuration为基于Zope的应用程序提供了一种伪分层的配置机制,以提供中央配置服务。

特性

  • 基于INI文件的配置

  • 配置是伪分层的(部分名称可以是点名称(如cms.somepathfoo.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:registerModelhaufe: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是由德国弗莱堡的Haufe Mediengruppe和德国图宾根的ZOPYX Ltd. & Co. KG的Andreas Jung编写的。

许可证

haufe.hrs.configuration根据Zope公共许可证2.1授权。请参阅包含的ZPL.txt文件。

联系方式

ZOPYX Ltd. & Co. KG
Andreas Jung
Charlottenstr. 37/1
D-72070 图宾根,德国
E-mail: info at zopyx dot com

变更日志

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 (13.6 kB 查看哈希值)

上传时间

支持