Generic Transparent Proxies
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__).
Unfortunately, we don’t have separate documentation for zope.proxy at this time. This is a shame because they are generically useful. We are publishing this release without documentation mainly because it is a dependency of other releases.
- Added support for Python 3.4.
- Updated bootstrap.py to version 2.2.
- Fixed interface object introspection in PyPy. For some reason PyPy made attributes available despite the restrictive __slots__ declaration.
- Added a bunch of tests surrounding interface lookup and adaptation.
- Fixed PyProxyBase.__iter__() to return the result of PyProxyBase._wrapped.__iter__ if available, otherwise fall back to Python internals. The previous implementation always created a generator.
- Fixed PyProxyBase.__setattr__() to 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.
Enabled compilation of dependent modules under Py3k.
Replaced 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.
- Added support for Python 3.3.
Added support for PyPy.
N.B.: the C extension is not built under PyPy.
Added 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.
Added support for continuous integration using tox and jenkins.
100% unit test coverage.
Added Sphinx documentation: moved doctest examples to API reference.
Added ‘setup.py docs’ alias (installs Sphinx and dependencies).
Added ‘setup.py dev’ alias (runs setup.py develop plus installs nose and coverage).
Replaced deprecated zope.interface.implements usage with equivalent zope.interface.implementer decorator.
Dropped support for Python 2.4 and 2.5.
Added Python 3.2 support.
- Make tests compatible with Python 2.7.
- Removed test extra and the remaining dependency on zope.testing.
- Removed use of ‘zope.testing.doctestunit’ in favor of stdlib’s ‘doctest.
- Added support to bootstrap on Jython.
- Use zope.container instead of zope.app.container.
- Made C code compatible with Python 2.5 on 64bit architectures.
- Bug: Updated setup.py script to conform to common layout. Also updated some of the fields.
- Bug: The behavior of tuples and lists in the __getslice__() and __setslice__() method were incorrect by not honoring the pre-cooked indices. See http://docs.python.org/ref/sequence-methods.html.
- Feature: Added 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.
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.