- Fixed testing issues when C extensions are not desired. Contributed by Michał Górny in #79.
- Added support for GraalPy. Contributed by Michael Šimáček in #87.
- Fixed testing issues on Python 3.14. Contributed by Michał Górny in #88.
- Modernized packaging to have metadata in
pyproject.toml. - Added Python 3.14 wheels.
- Added Python 3.13 wheels.
- Added support for
__format__. - Dropped support for Python 3.8.
- Added Python 3.12 wheels.
- Dropped support for Python 3.7.
- Applied some reformatting and lint fixes using ruff to the codebase (mostly more Python 2 leftover cleanups).
- Added support for matrix multiplication operator (
@). - Should have all the wheels now (including the manylinux ones).
- Bumped minimum version requirements for setuptools and setuptools-scm.
- Switched the default pure python fallback implementation to the "simple" one (when you
from lazy_object_proxy import Proxyand the C extension is not available). Previously the "slots" implementation was used but as it turns out it is slower on Python 3.
- Cleaned up use of cPickle. Contributed by Sandro Tosi in #62.
- Cleaned up more dead Python 2 code.
- Added Python 3.11 wheels.
- Dropped support for Python 3.6.
Removed most of the Python 2 support code and fixed
python_requiresto require at least Python 3.6.Note that 1.7.0 has been yanked because it could not install on Python 2.7. Installing lazy-object-proxy on Python 2.7 should automatically fall back to the 1.6.0 release now.
- Switched CI to GitHub Actions, this has a couple consequences:
- Support for Python 2.7 is dropped. You can still install it there but it's not tested anymore and Python 2 specific handling will be removed at some point.
- Linux wheels are now provided in musllinux and manylinux2014 variants.
- Fixed
__index__to fallback tointif the wrapped object doesn't have an__index__method. This prevents situations where code using a proxy would otherwise likely just callinthad the object not have an__index__method.
Added support for async special methods (
__aiter__,__anext__,__await__,__aenter__,__aexit__). These are used in theasync for,await` and ``async withstatements.Note that
__await__returns a wrapper that tries to emulate the crazy stuff going on in the ceval loop, so there will be a small performance overhead.Added the
__resolved__property. You can use it to check if the factory has been called.
- Added Python 3.9 wheels.
- Removed Python 2.7 Windows wheels (not supported on newest image with Python 3.9).
- Added ARM64 wheels (manylinux2014).
- Added support for
__fspath__. - Dropped support for Python 3.4.
- Added binary wheels for Python 3.8.
- Fixed license metadata.
- Included a
pyproject.tomlto allow users install the sdist with old python/setuptools, as the setuptools-scm dep will be fetched by pip instead of setuptools. Fixes #30.
- Fixed wheels being built with
-coveragecflags. No more issues about boguscext.gcdafiles. - Removed useless C file from wheels.
- Changed
setup.pyto use setuptools-scm.
- Fixed
__mod__for the slots backend. Contributed by Ran Benita in #28. - Dropped support for Python 2.6 and 3.3. Contributed by "hugovk" in #24.
- Fix broken release (
sdisthad a brokenMANIFEST.in).
- Speed up arithmetic operations involving
cext.Proxysubclasses.
- Added manylinux wheels.
- Minor cleanup in readme.
- Fix a memory leak (the wrapped object would get bogus references). Contributed by Astrum Kuo in #10.
- Don't instantiate the object when __repr__ is called. This aids with debugging (allows one to see exactly in what state the proxy is).
- Added support for pickling. The pickled value is going to be the wrapped object without any Proxy container.
- Fixed a memory management issue in the C extension (reference cycles weren't garbage collected due to improper handling in the C extension). Contributed by Alvin Chow in #8.
- First release on PyPI.