- Add final support for Python 3.13.
- Drop support for Python 3.7.
- Build Windows wheels on GHA.
- Add preliminary support for Python 3.13 as of 3.13a3.
- Add support for Python 3.12.
- Build Linux binary wheels for Python 3.11.
- Drop support for Python 2.7, 3.5, 3.6.
- Add preliminary support for Python 3.12a5.
- Add support for building arm64 wheels on macOS.
- Add support for final Python 3.11 release.
- Add support for Python 3.11 (as of 3.11.0rc1).
- Switch from
-Ofast
to-O3
when compiling code for Linux wheels. (#64)
- Fix bug in the
PURE_PYTHON
version affectingaq_acquire
applied to a class with a filter. - Improve interface documentation.
- Add support for Python 3.10.
- On CPython no longer omit compiling the C code when
PURE_PYTHON
is required. Just evaluate it at runtime. (#53)
- Various fixes for the
PURE_PYTHON
version, e.g. makeAcquired
anstr
(as required byZope
), avoid infinite__cmp__
loop. (#51, #48) - Create aarch64 wheels.
- Add support for Python 3.8 and 3.9.
- Drop support for Python 3.4.
- Add support for Python 3.8a3.
- Add support to call
bytes()
on an object wrapped by anImplicitAcquisitionWrapper
. (#38)
- Avoid deprecation warnings by using current API.
- Add support for Python 3.7.
- Add Appveyor configuration to automate building Windows eggs.
- Fix the extremely rare potential for a crash when the C extensions are in use. See issue 21.
- Fix C capsule name to fix import errors.
- Ensure our dependencies match our expactations about C extensions.
- Fix C code under Python 3.4, with missing Py_XSETREF.
- Enable the C extension under Python 3.
- Drop support for Python 3.3.
- Make tests compatible with ExtensionClass 4.2.0.
- Drop support for Python 2.6 and 3.2.
- Add support for Python 3.5 and 3.6.
- Make the pure-Python Acquirer objects cooperatively use the
superclass
__getattribute__
method, like the C implementation. See #7. - The pure-Python implicit acquisition wrapper allows wrapped objects
to use
object.__getattribute__(self, name)
. This differs from the C implementation, but is important for compatibility with the pure-Python versions of libraries likepersistent
. See #9.
- Correct several dangling pointer uses in the C extension, potentially fixing a few interpreter crashes. See #5.
- Add support for PyPy, PyPy3, and Python 3.2, 3.3, and 3.4.
- Bump dependency on
ExtensionClass
to match current release.
- Skip readme.rst tests when tests are run outside a source checkout.
- Include
*.rst
files in the release.
- Tolerate Unicode attribute names (ASCII only). LP #143358.
- Make module-level
aq_acquire
API respect thedefault
parameter. LP #1387363. - Don't raise an attribute error for
__iter__
if the fallback to__getitem__
succeeds. LP #1155760.
- Added trove classifiers to project metadata.
- Raise RuntimeError: Recursion detected in acquisition wrapper if an object with a __parent__ pointer points to a wrapper that in turn points to the original object.
- Prevent wrappers to be created while accessing __parent__ on types derived from Explicit or Implicit base classes.
- Tolerate Unicode attribute names (ASCII only). LP #143358.
- Make module-level
aq_acquire
API respect thedefault
parameter. LP #1387363. - Don't raise an attribute error for
__iter__
if the fallback to__getitem__
succeeds. LP #1155760.
- Fixed a segfault on 64bit platforms when providing the explicit argument to the aq_acquire method of an Acquisition wrapper. Thx to LP #675064 for the hint to the solution. The code passed an int instead of a pointer into a function.
- Fixed bug: When an object did not implement
__unicode__
, callingunicode(wrapped)
was calling__str__
with an unwrappedself
.
- Add
aq_explicit
toIAcquisitionWrapper
. - Fixed bug:
unicode(wrapped)
was not calling a__unicode__
method on wrapped objects.
- Fixed unit tests that failed on 64bit Python on Windows machines.
- LP 623665: Fixed typo in Acquisition.h.
- Use the doctest module from the standard library and no longer depend on zope.testing.
- Give both wrapper classes a
__getnewargs__
method, which causes the ZODB optimization to fail and create persistent references using the_p_oid
alone. This happens to be the persistent oid of the wrapped object. This lets these objects to be persisted correctly, even though they are passed to the ZODB in a wrapped state. - Added failing tests for http://dev.plone.org/plone/ticket/10318. This shows
an edge-case where AQ wrappers can be pickled using the specific combination
of cPickle, pickle protocol one and a custom Pickler class with an
inst_persistent_id
hook. Unfortunately this is the exact combination used by ZODB3.
- Update to include ExtensionClass 2.13.0.
- Fix the
tp_name
of the ImplicitAcquisitionWrapper and ExplicitAcquisitionWrapper to match their Python visible names and thus have a correct__name__
. - Expand the
tp_name
of our extension types to hold the fully qualified name. This ensures classes have their__module__
set correctly.
- Added support for method cache in Acquisition. Patch contributed by Yoshinori K. Okuji. See https://bugs.launchpad.net/zope2/+bug/486182.
- Fix iteration proxying to pass self acquisition-wrapped into both __iter__ as well as __getitem__ (this fixes https://bugs.launchpad.net/zope2/+bug/360761).
- Add tests for the __getslice__ proxying, including open-ended slicing.
- More 64-bit fixes in Py_BuildValue calls.
- More 64-bit issues fixed: Use correct integer size for slice operations.
- Fixed 64-bit compatibility issues for Python 2.5.x / 2.6.x. See http://www.python.org/dev/peps/pep-0353/ for details.
- Update for iteration proxying: The proxy for __iter__ must not rely on the object to have an __iter__ itself, but also support fall-back iteration via __getitem__ (this fixes https://bugs.launchpad.net/zope2/+bug/360761).
- Release as separate package.