Generic Transparent Proxies
Proxies are special objects which serve as mostly-transparent wrappers around another object, intervening in the apparent behavior of the wrapped object only when necessary to apply the policy (e.g., access checking, location brokering, etc.) for which the proxy is responsible.
zope.proxy is implemented via a C extension module, which lets it do things like lie about its own __class__ that are difficult in pure Python (and were completely impossible before metaclasses). It also proxies all the internal slots (such as __int__/__str__/__add__).
Complete documentation is at https://zopeproxy.readthedocs.io
- Fix a potential rare crash when deallocating proxies. See issue 20.
- Drop support for Python 3.3.
- Drop support for “python setup.py test”.
- 100% test coverage.
- Fix indexing pure-Python proxies with slices under Python 3, and restore the use of __getslice__ (if implemented by the target’s type) under Python 2. Previously, pure-Python proxies would fail with an AttributeError when given a slice on Python 3, and on Python 2, a custom __getslice__ was ignored. See issue 21.
- Make the pure-Python implementation of sameProxiedObjects handle zope.security proxies. See issue 15.
- Add support for Python 3.6.
- Correctly strip zope.security proxies in removeAllProxies. See issue 13.
- Avoid poisoning the user’s global wheel cache when testing PURE_PYTHON environments under tox,
- Drop support for Python 2.6 and 3.2.
- Add support for Python 3.5.
- Make subclasses of ProxyBase properly delegate __module__ to the wrapped object. This fixes some zope.interface lookups under PyPy.
- Make the pure-Python implementation of ProxyBase properly report the zope.interface interfaces implemented by builtin types like list. This fixes some zope.interface lookups under PyPy.
- Make the C implementation proxy __unicode__ correctly.
- Make the C implementation use the standard methods to proxy int and float.
- Make the pure Python implementation handle descriptors defined in subclasses like the C version. See https://github.com/zopefoundation/zope.proxy/issues/5.
- Add support for Python 3.4.
- Update bootstrap.py to version 2.2.
- Fix interface object introspection in PyPy. For some reason PyPy makes attributes available despite the restrictive __slots__ declaration.
- Add a bunch of tests surrounding interface lookup and adaptation.
- Make PyProxyBase.__iter__() return the result of PyProxyBase._wrapped.__iter__ if available, otherwise falling back to Python internals. The previous implementation always created a generator.
- In PyProxyBase.__setattr__(), allow setting of properties on the proxy itself. This is needed to properly allow proxy extensions as was evidenced int he zope.security.decorator module.
- Fleshed out PyPI Trove classifiers.
Enable compilation of dependent modules under Py3k.
Replace use of PyCObject APIs with equivalent PyCapsule APIs, except under Python 2.6.
- N.B. This change is an ABI incompatibility under Python 2.7:
extensions built under Python 2.7 against 4.0.x versions of zope.proxy must be rebuilt.
- Add support for Python 3.3.
Add support for PyPy.
N.B.: the C extension is not built under PyPy.
Add a pure-Python reference / fallback implementations of zope.proxy.ProxyBase and the proxy module API functions.
N.B.: the pure-Python proxy implements all regular features of ProxyBase; however, it does not exclude access to the wrapped object in the same way that the C version does. If you need that information hiding (e.g., to implement security sandboxing), you still need to use the C version.
Add support for continuous integration using tox and jenkins.
100% unit test coverage.
Add Sphinx documentation: moved doctest examples to API reference.
Add ‘setup.py docs’ alias (installs Sphinx and dependencies).
Add ‘setup.py dev’ alias (runs setup.py develop plus installs nose and coverage).
Replace deprecated zope.interface.implements usage with equivalent zope.interface.implementer decorator.
Drop support for Python 2.4 and 2.5.
Add Python 3.2 support.
- Make tests compatible with Python 2.7.
- Remove test extra and the remaining dependency on zope.testing.
- Remove use of ‘zope.testing.doctestunit’ in favor of stdlib’s ‘doctest.
- Add support to bootstrap on Jython.
- Use zope.container instead of zope.app.container.
- Make C code compatible with Python 2.5 on 64bit architectures.
- Bug: Update setup.py script to conform to common layout. Also updated some of the fields.
- Bug: Honor pre-cooked indices for tuples and lists in the __getslice__() and __setslice__() methods. See http://docs.python.org/ref/sequence-methods.html.
- Feature: Add a decorator module that supports declaring interfaces on proxies that get blended with the interfaces of the things they proxy.
- Corresponds to the verison of the zope.proxy package shipped as part of the Zope 3.3.0 release.
- Corresponds to the verison of the zope.proxy package shipped as part of the Zope 3.2.0 release.
- Corresponds to the verison of the zope.proxy package shipped as part of the Zope X3.0.0 release.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.