This release of PyO3 brings support for Python 3.10 and PyPy 3.8. In addition, new optional dependencies on anyhow
and eyre
have been added for easy integration of the popular error-handling libraries with Python code.
A number of consistency improvements have been made to PyList
, PyTuple
and PySequence
APIs. They now all exclusively use usize
- based indexing, and now also support Rust's indexing operator.
In this release #[pymethods]
are now able to implement many magic methods such as __str__
and __repr__
, removing the need for #[pyproto]
macro implementations. For the 0.15 release series both #[pymethods]
and #[pyproto]
will be supported; #[pyproto]
is expected to be deprecated in the future.
For full details of all changes, see the CHANGELOG. For help with upgrading, see the migration guide.
Thank you to everyone who contributed code, documentation, design ideas, bug reports, and feedback.