跳转到主要内容

Zope组件架构

项目描述

zope.component

Unit test status Coverage Status Current version on PyPI Supported Python versions Documentation Status

此包代表Zope组件架构的核心。与zope.interface包一起,它提供了定义、注册和查找组件的功能。

请参阅https://zopecomponent.readthedocs.io/en/latest/以获取文档。

变更

6.0 (2023-04-14)

  • 停止支持Python 2.7、3.5和3.6。

5.1.0 (2023-01-03)

  • 修复当环境变量PYTHONOPTIMIZED设置为2且解释器将docstrings设置为None时的崩溃。(#67)

  • 添加对Python 3.10和3.11的支持。

5.0.1 (2021-07-09)

  • 修复在旧的持久适配器注册表中注销工具的问题。以前这可能会引发TypeError。请参阅问题62

5.0.0 (2021-03-19)

  • 删除发出弃用警告的向后兼容性导入。这会影响从 zope.component.interfaces (应从 zope.interface.interfaces 导入)以及从 zope.component.registery (从 zope.interface.registry 导入)导入的某些导入,以及整个 zope.component.hookable 模块。请参阅 问题 59

  • 尊重实用工具工厂注册的权限值(#54

  • 添加对 Python 3.9 的支持

  • 修复 <subscriber> ZCML 指令,以允许在给定 factory= 且 Python 对象已用 @implementer 装饰并实现单个接口时缺少 provides= 属性。这已被记录,但之前并未工作。请参阅 问题 9

  • 使 PersistentAdapterRegistry 使用持久对象(PersistentMappingPersistentList)作为其内部数据结构,而不是使用普通的字典和列表。这有助于使其可扩展到更大的注册表大小。

    这需要 zope.interface 5.3.0a1 或更高版本。

    新注册表(及其主要用户 PersistentComponents 和 zope.site 的 LocalSiteManager)会自动充分利用这一点。为了使现有的持久注册表利用这一点,您必须调用它们的 rebuild() 方法并提交事务。

    请参阅 问题 51

  • 修复 zope.interface.interface.provideInterface 和各种搜索和查询方法,以使用当前站点管理器而不是始终使用全局站点管理器。(当从 ZCML 注册组件时,隐式调用 provideInterface。)搜索和查询方法继续返回在基础站点管理器中注册的接口。

    请参阅 问题 10

4.6.2 (2020-07-03)

  • 改进文档,包括已发布文档和文档字符串。请参阅 PR 49

4.6.1 (2020-03-23)

  • 确保 BaseGlobalComponents 的解析顺序一致。请参阅 问题 45

4.6.0 (2019-11-12)

  • 添加对 Python 3.8 的支持。

  • 停止支持 Python 3.4。

  • 修复 ZODB 5.5.0 修改后的 Python 2 的测试。

4.5.0 (2018-10-10)

  • 添加对 Python 3.7 的支持。

  • 始终将 zope.hookable 作为依赖项安装(现在 hook 额外功能为空)。zope.hookable 尊重 PURE_PYTHON 环境变量,并提供可选的 C 扩展。

  • 当访问已移动到 zope.interface 的名称时,生成 DeprecationWarning

4.4.1 (2017-09-26)

4.4.0 (2017-07-25)

  • 添加对 Python 3.6 的支持。

  • 停止支持 Python 3.3。

  • 停止支持“setup.py test”。

  • 代码覆盖率报告现在由 coveralls.io 生成和托管,PR 必须保持 100%。

  • zope.component.testfiles 中的内部测试代码已调整,并在某些情况下已删除。

4.3.0 (2016-08-26)

  • tox 下测试 PURE_PYTHON 环境,避免污染用户的全局 wheel 缓存。

  • 停止支持 Python 2.6 和 3.2。

  • 添加对 Python 3.5 的支持。

4.2.2 (2015-06-04)

  • 修复 PyPy 和 PyPy3 的测试用例。

4.2.1 (2014-03-19)

  • 添加对 Python 3.4 的支持。

4.2.0 (2014-02-05)

  • 更新 boostrap.py 到版本 2.2。

  • zope.testing.cleanup.cleanUp 时刻重置缓存的 adapter_hooks (LP1100501)。

  • 实现指定适配器和实用工具名称的功能。使用 @zope.component.named(name) 装饰器来指定名称。

4.1.0 (2013-02-28)

  • 将“ZODB3”依赖项更改为“persistent”。

  • 现在 tox 会运行 Python 3.2 和 3.3 的所有测试。

  • 启用 Python 3 的 buildout。

  • 修复新的失败测试。

4.0.2 (2012-12-31)

  • 完善 PyPI Trove 分类器。

4.0.1 (2012-11-21)

  • 添加对 Python 3.3 的支持。

4.0.0 (2012-07-02)

  • 添加 PyPy 和 Python 3.2 支持

    • 安全支持被省略,直到 zope.security 端口。

    • 省略对 Persistent registry 的支持,直到 ZODB 端口(或 persistent 因子提取)。

  • 将单元测试覆盖率提升至 100%。

  • 移除 zope.component.zcml.viewzope.component.zcml.resource ZCML 指令中长时间废弃的 layer 参数。

  • 添加使用 toxjenkins 进行持续集成的支持。

  • 使测试可以通过 setup.py test 运行。

  • 添加 Sphinx 文档。

  • 添加 setup.py docs 别名(安装 Sphinx 和依赖项)。

  • 添加 setup.py dev 别名(运行 setup.py develop 并安装 nosecoverage)。

3.12.1 (2012-04-02)

  • 在 try/finally 中包含 with site(foo) (LP768151)。

3.12.0 (2011-11-16)

  • 添加便利函数 zope.component.hooks.site(一个上下文管理器),因此可以编写 with site(foo): ...

3.11.0 (2011-09-22)

  • 将实现基本非持久化组件注册表的代码从 zope.component.registry 移动到 zope.interface.registry。此代码从 zope.component 移动到 zope.interface 以使仅依赖于基本组件注册表的系统(如 Pyramid)移植到 Python 3 成为可能,而无需移植整个 zope.component 包。在 zope.component 中留下了向后兼容的导入垫片,因此此更改不会破坏任何现有代码。

  • 将接口从 zope.component.interfaces 移动到 zope.interface.interfacesComponentLookupErrorInvalidIObjectEventObjectEventIComponentLookupIRegistrationIUtilityRegistrationIAdapterRegistrationISubscriptionAdapterRegistrationIHandlerRegistrationIRegistrationEventRegistrationEventIRegisteredRegisteredIUnregisteredUnregisteredIComponentRegistryIComponents。已留下向后兼容的垫片。

  • 依赖 zope.interface >= 3.8.0。

3.10.0 (2010-09-25)

  • 删除 docs 额外内容和 sphinxdoc 脚本。

  • 创建一个 security 额外来将安全相关依赖项从 test 额外中移出。

  • 使用新的 zope.testrunner 包进行测试。

  • 添加对提供的 configure.zcml 文件的基线测试。

3.9.5 (2010-07-09)

  • 修复测试需求规范。

3.9.4 (2010-04-30)

  • 优先使用标准库中的 doctest 而不是 zope.testing 中的。

3.9.3 (2010-03-08)

  • zope.component 提供的 ZCML 指令现在在全局注册表中注册组件,而不是在 getSiteManager 返回的注册表中。此更改允许在 ZCML 文件加载之前钩住 getSiteManager 方法,以便在自定义注册表中注册组件。

3.9.2 (2010-01-22)

  • 修复了由最近重构引入的bug,该bug导致将CheckerPublic传递给securityAdapterFactory时错误地将工厂包装为LocatingUntrustedAdapterFactory

3.9.1 (2010-01-21)

  • 修改测试以避免测试运行器被外部测试运行器的选项影响,例如-v选项。

3.9.0 (2010-01-21)

  • 添加测试层支持。现在可以在测试中更轻松地加载ZCML文件。请参阅src/zope/component/testlayer.pysrc/zope/component/testlayer.txt

3.8.0 (2009-11-16)

  • 从zcml额外中移除了对zope.proxyzope.security的依赖:zope.component不再对它们有硬依赖;只有当zope.securityzope.proxy可用时,才启用对安全代理组件ZCML注册的支持。

  • IPossibleSiteISite接口从zope.location移到这里,因为它们处理的是zope.component的站点概念,而不是位置。

  • zope.site.hooks功能移动到zope.component.hooks,因为它实际上并没有处理zope.site的站点概念。

3.7.1 (2009-07-24)

  • 修复了一个问题,即当上下文无法适应IComponentLookup时,queryNextUtility可能会失败。

  • 修复了2个相关bug

    当注册了一个实用工具,并且之前已经为相同的接口和名称注册了一个实用工具时,则旧实用工具将被注销。与这个问题相关的2个bug

    • 对于隐式注销没有Unregistered。现在有了。

    • 旧实用工具仍然被保留并由getAllUtilitiesRegisteredFor返回。换句话说,它仍然被视为已注册,即使它没有。这种做法的一个特别负面的后果是,即使未使用,实用工具也可能被保留在内存或数据库中。

3.7.0 (2009-05-21)

  • 确保测试运行器会运行HookableTests

  • zope:viewzope:resource实现添加到zope.component.zcml中(依赖通过zope.component [zcml]加载)。

3.6.0 (2009-03-12)

  • 重要:在zope.component.bbb.interfaces中定义并已弃用多年的接口现在(重新)移除了。然而,一些包,包括Zope框架的一部分仍在使用这些接口。它们将为此更改进行适配。如果您使用了其中的一些接口,您也需要对您的代码进行适配。

    • IViewIDefaultViewName移到zope.publisher.interfaces

    • IResource移到zope.app.publisher.interfaces

    • 完全删除IContextDependentIPresentationIPresentationRequestIResourceFactoryIViewFactory

      如果您在zope.app.form的上下文中使用了IViewFactory,那么现在在zope.app.form.interfaces中有一个IWidgetFactory

  • getNextUtility / queryNextUtility函数从zope.site(它们在zope.app.component中甚至更早之前)移到这里。

  • 添加一个纯Python的hookable实现,用于在zope.hookable不存在时使用。

  • 通过打破导入循环来移除对zope.deferredimport的使用。

  • 清理包文档和更改日志,并在buildout中添加基于sphinx的文档构建命令。

  • 删除弃用的代码。

  • 将软件包的邮件列表地址更改为zope-dev@zope.org,因为zope3-dev@zope.org现在已停用。

3.5.1 (2008-07-25)

3.5.0 (2008-07-25)

  • 通过组件注册表支持通过工厂注册实用工具,并在注册信息中返回工厂信息。修复了https://bugs.launchpad.net/zope3/+bug/240631

  • 通过存储用于高效检索已注册实用工具的优化数据结构来优化un/registerUtility。这避免了在注册新实用工具时遍历所有实用工具。

3.4.0 (2007-09-29)

自3.4.0a1以来没有进一步更改。

3.4.0a1(2007-04-22)

对应于Zope 3.4.0a1中的zope.component

3.2.0.2 (2006-04-15)

  • 修复打包错误:package_dir必须是一个相对路径。

3.2.0.1 (2006-04-14)

  • 打包更改:抑制在sdist构建中包含setup.cfg

3.2.0 (2006-01-05)

对应于Zope 3.2.0版本中作为Zope 3.2.0版本一部分提供的zope.component包的版本。

  • 弃用服务及其相关API。现在可以通过站点管理器的“适配器”和“实用工具”属性直接访问适配器和实用工具注册表。服务仍然可访问,但已弃用,将在Zope 3.3中删除。

  • 弃用所有与表示相关的API,包括所有与视图相关的API函数。请使用适配器API函数。请参阅http://dev.zope.org/Zope3/ImplementViewsAsAdapters`

  • 弃用contextdependent包:现在通过在URL遍历期间设置的线程全局变量查找站点管理器。《context》参数现在是可选的,不应再传递。

3.0.0 (2004-11-07)

对应于Zope X3.0.0版本中作为Zope 3.0.0版本一部分提供的zope.component包的版本。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

zope.component-6.0.tar.gz (90.3 kB 查看哈希值)

上传时间

构建分布

zope.component-6.0-py3-none-any.whl (68.8 kB 查看哈希值)

上传时间 Python 3

由以下支持