跳转到主要内容

为Zope本地站点和实用程序提供类似Grok的配置

项目描述

此包提供在 Python 中(无需 ZCML)直接编写本地站点和 Zope 实用工具的支持。

设置 grokcore.site

此包的基本设置类似于 grokcore.component 包,请参阅其文档以获取详细信息。您需要的唯一附加 ZCML 行是

<include package="grokcore.site" />

将此放在根 ZCML 文件顶部附近,但在包含 grokcore.component 配置的行下面。

示例

全局实用工具已由 grokcore.component 管理。

这里是一个简单的本地实用工具示例

from zope.interface import implements, Interface
import grokcore.site

class IKangaroo(Interface):

    def jump():
       """Make all kangaroos jump somewhere.
       """

class KangarooUtility(grokcore.site.LocalUtility):
    implements(IKangaroo)

    def jump(self):
        pass

现在,我们可以将我们的实用工具注册到本地站点。这将自动创建并注册该实用工具,当创建该站点时

class Jungle(grokcore.site.Site):

    grokcore.site.local_utility(KangarooUtility, IKangaroo)

如果您不添加最后一行,您仍然会有您的站点,但没有使其跳起来袋鼠的东西。然后,您可以在之后手动添加(如果您想的话)。

API 概览

基类

站点

您站点的基类。

LocalUtility

持久化本地实用工具的基类。

指令

local_utility(factory, provides=None, name=u'', setup=None, public=False, name_in_container=None)

在站点上用于在创建时注册本地实用工具的指令

factory

将是注册的组件(必需参数),

provides

将是用于查询本地实用工具的接口(必需参数),

name

将是用于查询本地实用工具的名称,

setup

将是一个带有参数的函数。如果定义了它,它将在实用工具创建后以它作为第一个和唯一参数调用。

public

如果为真,实用工具将创建在站点容器本身中,而不是在站点管理器中,并且公众可以直接访问它。

name_in_container

将用作创建的实用工具在容器中的 ID。如果没有定义,它将请求 NameChooser 为其选择一个名称。

此外,grokcore.site 包公开了 grokcore.component API。

变更

4.0 (2023-07-11)

  • 停止对 Python 2.7、3.5、3.6 的支持。

  • 添加对 Python 3.9、3.10、3.11 的支持。

  • 将代码调整为 zope.site >= 4.4,因此至少需要该版本。(#7

3.1 (2020-09-02)

  • 修复弃用警告。

  • 停止对 Python 3.4 的支持,并添加对 3.7 和 3.8 的支持。

3.0.3 (2018-01-12)

  • 重新排列测试,以便 Travis CI 可以选择所有功能测试。

3.0.2 (2018-01-11)

  • 不再从 zope.site.hooks 导入 getSite,而是从 zope.component.hooks 导入。

3.0.1 (2018-01-10)

  • 通过删除 ZODB3 修复依赖关系。

3.0.0 (2018-01-05)

  • Python 3 兼容性。

1.8 (2016-09-21)

  • 在删除站点时,请确保从父站点中删除引用。

1.7.1 (2016-01-29)

  • 更新测试。

1.7 (2015-06-11)

  • 添加一个新的指令 install_on,该指令可在站点上使用。此指令允许您自定义何时(即事件)安装配置的本地站点。

  • ApplicationInitializedEvent 重命名为 ApplicationAddedEvent

  • 当触发 IApplicationAddedEvent 时,新应用程序将成为当前的 Zope 本地站点。事件后恢复站点。

1.6.1 (2012-05-02)

  • 公开 ApplicationInitializedEvent 和 IApplicationInitializedEvent。

  • 添加了公开 IApplication 接口所需的缺失导入。

1.6 (2012-05-01)

  • 将指令 site 从 Grok 移动到本包。

  • 将组件 Application 及所有相关实用工具从 Grok 移动到本包。

1.5 (2011-01-03)

  • 将 IApplication 和 getApplication 从 Grok 包移动到本包。

1.4 (2010-11-01)

  • 提高对 Martian 和 grokcore.component 的版本要求。

1.3 (2010-10-18)

  • 使包符合存储库策略。

  • 更新功能测试以仅使用 zope.app.appsetup 而不是 zope.app.testing。

  • 更新功能测试不再需要 zope.app.zcmlfiles。

1.2 (2009-12-20)

  • 将导入从 zope.app.component 迁移到 zope.site。

1.1 (2009-09-18)

  • 更新依赖项(添加缺失的依赖项并添加单独的测试依赖项)。

  • 本地实用工具现在实现了 IAttributeAnnotatable。

  • 更新来自 Grok 自身的代码文档。

  • 在 Grok 的发布信息中使用 1.0b2 版本的 versions.cfg,而不是本地副本;所有 grokcore 包的本地副本都太难维护。

1.0.1 (2009-06-30)

  • 重新上传到 PyPI,使用没有 distutils 错误的正确版本的 Python。

1.0 (2009-06-29)

  • 通过从 Grok 中提取基于本地站点的组件、grokkers 和指令创建 grokcore.site

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面