This release contains a focus on quality improvements over the PyO3 0.16 releases.
There have been new API types added such as PyDictKeys
, PyDictValues
, PyDictItems
, PyCode
, PyFrame
, and PySuper
. The PyMapping
and PySequence
types have changed so they are more directly compatible with the corresponding Python Mapping
and Sequence
base classes in the collections.abc
module (this is a breaking change).
A new #[pyclass(frozen)]
option has been added to opt-out of runtime borrow checking by removing the ability to access &mut self
for objects owned by Python.
There have been a number of soundness fixes, both to the PyCapsule
type (see the CHANGELOG for more details) and to a number of FFI bindings which had fallen out of sync with newer Python and PyPy releases.
There have been numerous other smaller improvements, changes and fixes. For full details see the CHANGELOG.
Please consult the migration guide for help upgrading.
Thank you to everyone who contributed code, documentation, design ideas, bug reports, and feedback. The following users' commits are included in this release:
@acshi
@aganders3
@alex
@birkenfeld
@cjermain
@Cryptex-github
@cuishuang
@davidhewitt
@drewkett
@dswij
@herquan
@hoodmane
@ikrivosheev
@indygreg
@jeertmans
@jinlow
@jonaspleyer
@kngwyu
@mejrs
@messense
@n8henrie
@PigeonF
@PWhiddy
@ravenexp
@savente93
@yankun1992
@yodaldevoid