This version extends Python version support to include the new Python 3.14, currently in beta. Please note it is possible that there may yet be changes to 3.14 before stable release which may impact final compatibility.
New optional dependencies on bigdecimal
, ordered_float
, and time
have been added to permit converting types from those crates to Python types (and vice versa).
The experimental-inspect
feature now has the capability to autogenerate type stubs. These stubs are still extremely basic and lack much information. Tooling such as setuptools-rust
and maturin
will also need to be updated to make adoption of these easier. Please follow #5137 to keep abreast of developments of this feature.
The #[pyclass]
macro has gained new options #[pyclass(generic)]
and #[pyclass(immutable_type)]
to offer additional control over the runtime behaviour of the generated Python type object.
The AsPyPointer
trait has been removed as PyO3's smart pointer types such as Py<T>
, Bound<T>
and Borrowed<T>
covered this use case with a better API.
As part of the upgrade to support 3.14, there have also been many cleanups to pyo3-ffi
. Many definitions which are private implementation details of CPython have been removed; projects downstream of CPython cannot rely on stability of these even across CPython patch releases.
There are also many other incremental improvements, bug fixes and smaller features.
Please consult the migration guide for help upgrading.
Thank you to everyone who contributed code, documentation, design ideas, bug reports, and feedback. The following contributors' commits are included in this release:
@0x676e67
@bschoenmaeckers
@clin1234
@davidbrochart
@davidhewitt
@ddelange
@decathorpe
@dependabot[bot]
@exg
@hgmich
@Icxolu
@IvanIsCoding
@m-ou-se
@n-eq
@ngoldbaum
@Owen-CH-Leung
@prutschman-iv
@superserious-dev
@Tpt
@trim21
@Vrajs16
@xhochy