Skip to content

Releases: PyO3/pyo3

PyO3 0.16.5

15 May 19:27
Compare
Choose a tag to compare

This release contains an FFI definition correction to resolve crashes for PyOxidizer on Python 3.10, and a new generate-import-lib feature to allow easier cross-compiling to Windows.

Thank you to the following users for the improvements:

@cjermain
@davidhewitt
@indygreg
@messense

PyO3 0.16.4

14 Apr 18:20
Compare
Choose a tag to compare

This release fixes a regression introduced in 0.16.3 leading to build failures on Windows, enables crates depending on PyO3 to collect code coverage using LLVM instrumentation on stable Rust version 1.60 or later, and enables safe access to time zone information attached to Python's time and datetime objects. There are also some adjustments to PyO3's build-time interpreter detection to make it easier to cross-compile abi3 Python extensions.

Thank you to the following users for the improvements:

@adamreichold
@davidhewitt
@mejrs
@messense
@pickfire
@ravenexp
@ricohageman

PyO3 0.15.2

14 Apr 18:13
Compare
Choose a tag to compare

This release is a backport of PyO3 0.16's support for PyPy 3.9.

Thanks to @mejrs and @messense for the implementation work, and to @alex for testing it to build the cryptography package.

PyO3 0.16.3

05 Apr 08:19
Compare
Choose a tag to compare

This release contains a number of non-breaking additions and fixes since PyO3 0.16.2.

They are mostly centered on improving support for various build configurations. There are also usability tweaks to the #[pyclass] macro and a new intern! macro to create statically-backed PyString objects as an optimization technique.

Thank you to the following users for the improvements:

@adamreichold
@aganders3
@alex
@kmp1
@mejrs
@messense
@mityax
@momirza
@ravenexp
@zh-jq

PyO3 0.16.2

15 Mar 21:29
Compare
Choose a tag to compare

This release contains support for the latest PyPy 7.3.8 release, a fix for a regression from PyO3 0.16.0 which would cause flaky build failures, and corrections to documentation.

Thank you for the following users for the improvements:

@adamreichold
@alex
@birkenfeld
@davidhewitt
@messense

PyO3 0.16.1

05 Mar 20:01
Compare
Choose a tag to compare

This release contains a couple of fixes for regressions in PyO3 0.16.0, as well as documentation fixes. The hashbrown optional dependency range has been extended to include its new 0.12 version.

Thank you for the following users for the improvements:

@adamreichold
@alex
@birkenfeld
@davidhewitt
@JerzySpendel
@mejrs
@messense
@PanQL

PyO3 0.16.0

27 Feb 23:39
Compare
Choose a tag to compare

This release contains substantial changes and improvements over PyO3 0.15.1. To support these improvements, support has been dropped for the end-of-life Python 3.6 and Rust versions older than 1.48.

The pyo3::ffi submodule has been split out into a separate pyo3-ffi crate, so that users who want to use PyO3's Python bindings without any of the safe APIs or macros are able to do so.

#[pyclass] can now be used on simple "C-like" enums to create Python enums.

The #[pyproto] macro has been deprecated, and can be disabled by disabling the optional #[pyproto] feature. The "magic methods" such as __repr__ which previously were implemented by #[pyproto] gained support in #[pymethods] in 0.15, and now in PyO3 0.16 #[pymethods] is intended to be the only attribute macro needed to write class method implementations.

There are numerous other reworks, improvements, and bugfixes.

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:

@adamreichold
@aganders3
@Amanieu
@aviramha
@birkenfeld
@b05902132
@CarlKCarlK
@cmpute
@danielhenrymantilla
@davidhewitt
@DSPOM2
@ghuls
@Gobot1234
@kevinheavey
@konstin
@mejrs
@messense
@milesgranger
@mrl5
@parsons20
@ricohageman
@saidvandeklundert
@Tom1380
@vxgmichel

PyO3 0.15.1

19 Nov 10:06
Compare
Choose a tag to compare

This release is a set of bug fixes for some minor issues reported since PyO3 0.15's release. There are also some small additions for those storing PyIterator, PySequence, and PyMapping in Py smart pointers, and a PyTraceback type to ease interacting with Python tracebacks from Rust.

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:

@dansvo
@davidhewitt
@KRunchPL
@mejrs
@messense
@moriyoshi
@saidvandeklundert
@taiki-e

PyO3 0.15.0

03 Nov 23:04
Compare
Choose a tag to compare

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

05 Sep 14:02
Compare
Choose a tag to compare

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.