基于zope.interface的组件基础设施
项目描述
zeam.component 受 zope.component 和 grokcore.component 的启发,但保持更加简单,并且概念较少。希望这能提高灵活性。
注册
可以使用一个基类来注册组件,zeam.component.Component。它支持所有在Grok中定义的指令 grok.context、grok.adapts、grok.provides 和 grok.name,您可以使用这些指令将组件注册为工具、(命名)适配器或(命名)多适配器。
注册组件的另一种可能性是使用 component 装饰器,即 zeam.component.component。它接受组件适配的接口作为参数,以及作为关键字参数,提供组件提供的 Interface,并以 name 的形式提供注册时的名称。
查找
您可以使用 zeam.component.getComponent 查找特定的已注册组件。您可以提供以下选项:
specs:组件必须适配的对象或规范元组,以便返回。
provided:组件必须提供 Interface,以便返回。
name:组件必须注册的名称,以便返回。
default:如果没有组件符合要求,将返回的默认值。如果没有提供默认值,并且未找到任何组件,将触发异常。
您可以使用 zeam.component.getAllComponents 查找可能已注册的组件列表。您可以提供以下选项:
specs:组件必须适配的对象或规范元组,以便返回。
provided:组件必须提供 Interface,以便返回。
请注意,在这两种情况下,组件都直接返回。在任何情况下,都不会对查找结果进行构造。
辅助函数 zeam.component.getWrapper 支持与 zeam.component.getComponent 函数相同的选项,并将作为参数传递给查找结果的值。这是为了获得类似 getAdapter 或 queryAdapter 的行为。请注意,如果在组件初始化过程中发生错误,错误不会被为您捕获。
更改
1.0 (2012/09/03)
初始发布。
项目详细信息
zeam.component-1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3580593c782ba74fe5d90d1cd3f5c40c998bb45b849c1d4b58f5918dded3b833 |
|
MD5 | b071706d5feeaf576e9c52e46141275c |
|
BLAKE2b-256 | f35d76217dfb9499fe2a4289f8df82af072d660e8cc7427d57bda703b06d3c73 |