- Add support for Python 3.8.
- Drop support for Python 3.4.
- Fix error handling in
ProxyBase.__setattr__
: any the exception raised byPyString_AsString
/PyUnicode_AsUTF8
would be silently swallowed up and ignored. See issue 31.
- Simplify the internal C handling of attribute names in
__getattribute__
and__setattr__
. - Make building the C extension optional. We still attempt to build it on supported platforms, but we allow it to fail in case of a missing compiler or headers. See issue 26.
- Test the PURE_PYTHON environment and PyPy3 on Travis CI.
- Add support for Python 3.7.
- 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
handlezope.security
proxies. See issue 15. - Add support for Python 3.6.
- Correctly strip
zope.security
proxies inremoveAllProxies
. See issue 13. - Avoid poisoning the user's global wheel cache when testing
PURE_PYTHON
environments undertox
, - 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 somezope.interface
lookups under PyPy. - Make the pure-Python implementation of ProxyBase properly report the
zope.interface
interfaces implemented by builtin types likelist
. This fixes somezope.interface
lookups under PyPy.
- Make the C implementation proxy
__unicode__
correctly. - Make the C implementation use the standard methods to proxy
int
andfloat
. - Make the pure Python implementation handle descriptors defined in subclasses like the C version. See #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 ofPyProxyBase._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 hezope.security.decorator
module.
- Fleshed out PyPI Trove classifiers.
- Enable compilation of dependent modules under Py3k.
- Replace use of
PyCObject
APIs with equivalentPyCapsule
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
andjenkins
. - 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 installsnose
andcoverage
). - Replace deprecated
zope.interface.implements
usage with equivalentzope.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 ofzope.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.