跳转到主要内容

通用透明代理

项目描述

zope.proxy

https://github.com/zopefoundation/zope.proxy/actions/workflows/tests.yml/badge.svg https://coveralls.io/repos/github/zopefoundation/zope.proxy/badge.svg?branch=master Documentation Status Latest release Python versions

代理是特殊对象,充当围绕另一个对象的主要透明包装器,仅在必要时介入包装对象的明显行为以应用代理负责的策略(例如,访问检查、位置代理等)。

zope.proxy通过C扩展模块实现,这使得它可以执行诸如对其自身的__class__撒谎之类的操作,这在纯Python中难以实现(在元类出现之前完全不可能)。它还代理所有内部槽(如__int__/__str__/__add__)。

完整文档位于 https://zopeproxy.readthedocs.io

变更

6.1 (2024-10-02)

  • 尊重设置为0PURE_PYTHON环境变量。

6.0 (2024-09-17)

  • 声明完全支持Python 3.13。

  • 停止支持Python 3.7。

5.3 (2024-08-07)

  • 在GHA上构建Windows轮子。

  • 修正wrap_hash的返回类型(修复了在i386上的构建)。 (#61)

5.2 (2024-02-09)

  • 自3.13a3版本开始,初步支持Python 3.13。

5.1 (2023-10-05)

  • 支持Python 3.12。

5.0.0 (2023-01-18)

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

  • 移除对于Python 3中不再存在的名称(如__long__等)的代理代码。(#55)

4.6.1 (2022-11-16)

  • 支持在macOS上构建arm64 wheels。

4.6.0 (2022-11-03)

  • 支持Python 3.11。

4.5.1 (2022-09-15)

4.5.0 (2021-11-17)

  • 支持Python 3.10。

4.4.0 (2021-07-22)

  • 支持Python 3.9。

  • 创建aarch64 wheels。

4.3.5 (2020-03-16)

  • 停止在PyPy上安装C头文件(这是zope.proxy在4.3.4之前所做的事情),修复了问题39

4.3.4 (2020-03-13)

  • 修复Python 3.8上的编译警告。在3.8中,slot tp_print 已更改为 tp_vectorcall_offset,不得设置。在3.8之前,它在所有Python 3版本中都是预留的且被忽略。参见问题36

  • 移除已弃用的setuptools功能。参见问题38

4.3.3 (2019-11-11)

  • 支持Python 3.8。

  • 停止支持Python 3.4。

4.3.2 (2019-07-12)

  • 修复ProxyBase.__setattr__中的错误处理:由PyString_AsString/PyUnicode_AsUTF8引发的异常会被静默吞没并忽略。参见问题31

4.3.1 (2018-08-09)

  • 简化__getattribute____setattr__中内部C处理属性名称。

  • 使构建C扩展成为可选。我们仍然尝试在支持的平台上构建它,但在缺少编译器或头文件的情况下允许它失败。参见问题26

  • 在Travis CI上测试PURE_PYTHON环境和PyPy3。

  • 支持Python 3.7。

4.3.0 (2017-09-13)

  • 修复在释放代理时可能发生的罕见崩溃。参见问题20

  • 停止支持Python 3.3。

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

  • 100%测试覆盖率。

  • 修复在Python 3下使用切片索引纯Python代理的问题,并在Python 2下恢复使用__getslice__(如果目标类型实现了)。之前,纯Python代理在Python 3下给出切片时会失败,在Python 2下,自定义的__getslice__被忽略。参见问题21

4.2.1 (2017-04-23)

  • 使纯Python实现的sameProxiedObjects能够处理zope.security代理。参见问题15

  • 支持Python 3.6。

4.2.0 (2016-05-05)

  • removeAllProxies中正确去除zope.security代理。参见问题13

  • 在tox下测试PURE_PYTHON环境时,避免毒害用户的全局wheel缓存。

  • 停止支持Python 2.6和3.2。

  • 支持Python 3.5。

4.1.6 (2015-06-02)

  • 使ProxyBase的子类正确地委托__module__到包装对象。这修复了PyPy下的某些zope.interface查找。

  • 使ProxyBase的纯Python实现正确报告由内置类型如list实现的zope.interface接口。这修复了PyPy下的某些zope.interface查找。

4.1.5 (2015-05-19)

4.1.4 (2014-03-19)

  • 添加对Python 3.4的支持。

  • bootstrap.py 更新到版本2.2。

4.1.3 (2013-03-12)

  • 修复PyPy中接口对象的自省。由于某种原因,PyPy即使在限制性的 __slots__ 声明下也会使属性可用。

  • 添加一系列关于接口查找和适配的测试。

4.1.2 (2013-03-11)

  • 如果存在,使 PyProxyBase.__iter__() 返回 PyProxyBase._wrapped.__iter__ 的结果,否则回退到Python内部。之前的实现始终创建生成器。

  • PyProxyBase.__setattr__() 中,允许在代理本身上设置属性。这是在 zope.security.decorator 模块中作为代理扩展的示例所必需的。

4.1.1 (2012-12-31)

  • 完善了PyPI Trove分类器。

4.1.0 (2012-12-19)

  • 启用在Py3k下编译依赖模块。

  • 除了在Python 2.6下外,用等效的 PyCapsule API替换 PyCObject API的使用。

    注意:此更改在Python 2.7下是不兼容的ABI。

    在Python 2.7下针对4.0.x版本的 zope.proxy 构建的扩展必须重新构建。

4.0.1 (2012-11-21)

  • 添加对Python 3.3的支持。

4.0.0 (2012-06-06)

  • 添加对PyPy的支持。

    注意:C扩展在PyPy下未构建。

  • 添加了纯Python的 zope.proxy.ProxyBase 和代理模块API函数的引用/回退实现。

    注意:纯Python代理实现了 ProxyBase 的所有常规功能;然而,它并没有像C版本那样排除对包装对象的访问。如果您需要这种信息隐藏(例如,实现安全沙箱),您仍然需要使用C版本。

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

  • 100%单元测试覆盖率。

  • 添加Sphinx文档:将doctest示例移动到API参考。

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

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

  • 用等效的 zope.interface.implementer 装饰器替换过时的 zope.interface.implements 使用。

  • 停止支持Python 2.4和2.5。

  • 添加Python 3.2支持。

3.6.1 (2010-07-06)

  • 使测试与Python 2.7兼容。

3.6.0 (2010-04-30)

  • 移除测试额外项和对zope.testing的剩余依赖。

  • 使用stdlib的“doctest”代替“zope.testing.doctestunit”。

3.5.0 (2009/01/31)

  • 为Jython添加启动支持。

  • 使用 zope.container 而不是 zope.app.container

3.4.2 (2008/07/27)

  • 使C代码与64位架构上的Python 2.5兼容。

3.4.1 (2008/06/24)

3.4.0 (2007/07/12)

  • 功能:添加一个支持在代理上声明接口并与其代理事物的接口混合的 decorator 模块。

3.3.0 (2006/12/20)

  • 对应于Zope 3.3.0版本发布时作为Zope 3.3.0版本的一部分提供的 zope.proxy 包的版本。

3.2.0 (2006/01/05)

  • 对应于Zope 3.2.0版本发布时作为Zope 3.2.0版本的一部分提供的 zope.proxy 包的版本。

3.0.0 (2004/11/07)

  • 对应于Zope X3.0.0版本发布时作为Zope X3.0.0版本的一部分提供的 zope.proxy 包的版本。

项目详情


下载文件

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

源代码分发

zope_proxy-6.1.tar.gz (43.8 kB 查看哈希值)

上传时间 源代码

构建分发版

zope.proxy-6.1-cp313-cp313-win_amd64.whl (40.8 kB 查看哈希值)

上传时间 CPython 3.13 Windows x86-64

zope.proxy-6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (72.8 kB 查看哈希值)

上传时间 CPython 3.13 manylinux: glibc 2.17+ ARM64

zope.proxy-6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (73.5 kB 查看哈希值)

上传时间 CPython 3.13 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

zope.proxy-6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (68.0 kB 查看哈希值)

上传时间 CPython 3.13 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zope.proxy-6.1-cp313-cp313-macosx_11_0_arm64.whl (39.8 kB 查看哈希值)

上传时间 CPython 3.13 macOS 11.0+ ARM64

zope.proxy-6.1-cp313-cp313-macosx_10_9_x86_64.whl (39.3 kB 查看哈希值)

上传于 CPython 3.13 macOS 10.9+ x86-64

zope.proxy-6.1-cp312-cp312-win_amd64.whl (40.8 kB 查看哈希)

上传于 CPython 3.12 Windows x86-64

zope.proxy-6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (72.7 kB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARM64

zope.proxy-6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (73.5 kB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

zope.proxy-6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (68.0 kB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zope.proxy-6.1-cp312-cp312-macosx_11_0_arm64.whl (39.8 kB 查看哈希)

上传于 CPython 3.12 macOS 11.0+ ARM64

zope.proxy-6.1-cp312-cp312-macosx_10_9_x86_64.whl (39.3 kB 查看哈希)

上传于 CPython 3.12 macOS 10.9+ x86-64

zope.proxy-6.1-cp311-cp311-win_amd64.whl (40.7 kB 查看哈希)

上传于 CPython 3.11 Windows x86-64

zope.proxy-6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (71.7 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARM64

zope.proxy-6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (71.8 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

zope.proxy-6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (66.7 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zope.proxy-6.1-cp311-cp311-macosx_11_0_arm64.whl (39.7 kB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

zope.proxy-6.1-cp311-cp311-macosx_10_9_x86_64.whl (39.1 kB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

zope.proxy-6.1-cp310-cp310-win_amd64.whl (40.7 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

zope.proxy-6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (70.2 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

zope.proxy-6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (70.2 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

zope.proxy-6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (65.1 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zope.proxy-6.1-cp310-cp310-macosx_11_0_arm64.whl (39.7 kB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

zope.proxy-6.1-cp310-cp310-macosx_10_9_x86_64.whl (39.1 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

zope.proxy-6.1-cp39-cp39-win_amd64.whl (40.7 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

zope.proxy-6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (68.1 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

zope.proxy-6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (68.0 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

zope.proxy-6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (63.7 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zope.proxy-6.1-cp39-cp39-macosx_11_0_arm64.whl (39.7 kB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

zope.proxy-6.1-cp39-cp39-macosx_10_9_x86_64.whl (39.1 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

zope.proxy-6.1-cp38-cp38-win_amd64.whl (40.7 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

zope.proxy-6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (67.0 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

zope.proxy-6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (67.4 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

zope.proxy-6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (63.1 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

zope.proxy-6.1-cp38-cp38-macosx_11_0_arm64.whl (39.7 kB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

zope.proxy-6.1-cp38-cp38-macosx_10_9_x86_64.whl (39.1 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

支持者