Skip to content

PyO3 0.23.0

Compare
Choose a tag to compare
@davidhewitt davidhewitt released this 15 Nov 18:46
· 42 commits to main since this release
c0f756c

This release is a significant iteration to both PyO3's internals and API with two major enhancements:

  • Support for Python 3.13t, also known as "free-threaded Python".
  • A new trait IntoPyObject, which unifies the existing to-Python conversion traits IntoPy and ToPyObject while also allowing new optimizations and proper error handling. The new trait also has a #[derive(IntoPyObject)] macro.

While both of these new features have undergone extensive design, it will be no surprise to find teething issues. All feedback is encouraged so that we can follow up with iterative improvements for these new features in future releases.

On top of the major additions, the removal of the "GIL Refs" API deprecated in PyO3 0.21 is now complete. A number of PyO3 APIs have had new simpler names introduced now that the PyO3 API is no longer in a migration phase (for example PyTuple::new_bound is now simplified to PyTuple::new).

Beyond that, PyO3 0.23 contains nearly 5 months of incremental improvements, bug fixes and smaller features that have been implemented while the major work of this release was ongoing.

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:

@abrisco
@adamcavendish
@ahlinc
@akuhnregnier
@alex
@attack68
@birkenfeld
@Brogolem35
@bschoenmaeckers
@ChayimFriedman2
@Cheukting
@csernazs
@davidhewitt
@deedy5
@dependabot[bot]
@digitalsentinel
@exg
@FlickerSoul
@gi0baro
@glevco
@Icxolu
@jakelishman
@jeff-k
@jonaspleyer
@JRRudy1
@KLMatlock
@konstin
@LilyFoote
@MatthijsKok
@Mottl
@ngoldbaum
@obi1kenobi
@Owen-CH-Leung
@sansyrox
@shehabgamin
@Stranger6667
@styvane
@Thalyum
@Tlunch
@wangxiaoying
@WilliamTakeshi
@YesSeri
@Zyell