- Adjust minimal required version of
zope.security
test dependency to7.3
.
- Respect
PURE_PYTHON
environment variable set to0
.
- Declare full support for Python 3.13.
- Drop support for Python 3.7.
- Build Windows wheels on GHA.
- Correct return type for
wrap_hash
(fixes build oni386
). (#61)
- Add preliminary support for Python 3.13 as of 3.13a3.
- Add support for Python 3.12.
- Drop support for Python 2.7, 3.5, 3.6.
- Remove proxying code for names that no longer exist in Python 3
like
__long__
and some others. (#55)
- Add support for building arm64 wheels on macOS.
- Add support for Python 3.11.
- Disable unsafe math optimizations in C code. See pull request 53.
- Add support for Python 3.10.
- Add support for Python 3.9.
- Create aarch64 wheels.
- Stop installing C header files on PyPy (which is what zope.proxy before 4.3.4 used to do), fixes issue 39.
- Fix a compilation warning on Python 3.8. The slot
tp_print
changed totp_vectorcall_offset
in 3.8 and must not be set. Prior to 3.8, it was reserved and ignored in all Python 3 versions. See issue 36. - Remove deprecated use of setuptools features. See issue 38.
- 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.