PyO3 0.15.0
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.
PyO3 0.14.5
This release fixes a compile regression of PyO3 0.14.4 where not all APIs related to PyStringData
were conditionally disabled correctly on big-endian platforms.
In addition, a few public APIs have been added to the pyo3_build_config
crate to support needs of the PyOxidizer project.
Thanks to @decathorpe
and @indygreg
for further reports, discussions, and resolution.
PyO3 0.14.4
This release resolves issues with the PyString::data
API added in 0.14.3. After release it was found to be unsound on certain platforms, so has been disabled on those platforms and marked unsafe
with the safety expectation that users will ensure it works appropriately on their platform as part of usage.
Thanks to @decathorpe
and @indygreg
for the report, discussion, and resolution.
PyO3 0.14.3
This release is a small set of bugfixes added on top of the PyO3 0.14.2 release.
For full details of all changes, see the CHANGELOG.
Thank you to everyone who contributed code, documentation, design ideas, bug reports, and feedback. The following users' commits are included in this release:
@awestlake87
@davidhewitt
@indygreg
@mejrs
@messense
@mtreinish
@pschafhalter
@Ptrskay3
@sansyrox
@tiran
PyO3 0.14.2
This release is a small quality-of-life update for the PyO3 0.14 release series. Optional support for the indexmap
crate has been added. In addition, there have been a number of documentation improvements, and bugfixes for regressions and incorrect FFI definitions.
Users who removed macOS cargo configuration from their setup after updating to PyO3 0.14 will unfortunately have to once again add configuration to their compilation after updating to this release. This is because PyO3 was using functionality which Cargo had erroneously allowed.
The recommended way to restore configuration for macOS is to add a build script which invokes pyo3_build_config::add_extension_module_link_args()
. The cargo configuration previously recommended is also still an option.
For full details of all changes, see the CHANGELOG.
... (truncated)