serpyco-rs
serpyco-rs copied to clipboard
Bump pyo3 from 0.22.2 to 0.22.3
Bumps pyo3 from 0.22.2 to 0.22.3.
Release notes
Sourced from pyo3's releases.
PyO3 0.22.3
This release contains a number of quality improvements building upon PyO3 0.22.2.
Python function calls (using
.call0()
,.call1(args)
and.call(args, kwargs)
) will now make use of the "vectorcall" calling conventions where possible, which can reduce overheads in many cases.There have been several fix-ups to PyO3's FFI definitions. A new
pyo3::ffi::compat
namespace has been added which offers some backwards-compatible implementations of Python APIs otherwise normally only available on recent Pythons.There have been numerous other bug-fixes and minor tweaks to improve user experience.
Thank you to the following contributors for the improvements:
@birkenfeld
@ChayimFriedman2
@csernazs
@davidhewitt
@Icxolu
@jakelishman
@LilyFoote
@ngoldbaum
@Zyell
Changelog
Sourced from pyo3's changelog.
[0.22.3] - 2024-09-15
Added
- Add
pyo3::ffi::compat
namespace with compatibility shims for C API functions added in recent versions of Python.- Add FFI definition
PyDict_GetItemRef
on Python 3.13 and newer, andcompat::PyDict_GetItemRef
for all versions. #4355- Add FFI definition
PyList_GetItemRef
on Python 3.13 and newer, andpyo3_ffi::compat::PyList_GetItemRef
for all versions. #4410- Add FFI definitions
compat::Py_NewRef
andcompat::Py_XNewRef
. #4445- Add FFI definitions
compat::PyObject_CallNoArgs
andcompat::PyObject_CallMethodNoArgs
. #4461- Add
GilOnceCell<Py<T>>::clone_ref
. #4511Changed
- Improve error messages for
#[pyfunction]
defined inside#[pymethods]
. #4349- Improve performance of calls to Python by using the vectorcall calling convention where possible. #4456
- Mention the type name in the exception message when trying to instantiate a class with no constructor defined. #4481
Removed
- Remove private FFI definition
_Py_PackageContext
. #4420Fixed
- Fix compile failure in declarative
#[pymodule]
under presence of#![no_implicit_prelude]
. #4328- Fix use of borrowed reference in
PyDict::get_item
(unsafe in free-threaded Python). #4355- Fix
#[pyclass(eq)]
macro hygiene issues for structs and enums. #4359- Fix hygiene/span issues of
'#[pyfunction]
and#[pymethods]
generated code which affected expansion inmacro_rules
context. #4382- Fix
unsafe_code
lint error in#[pyclass]
generated code. #4396- Fix async functions returning a tuple only returning the first element to Python. #4407
- Fix use of borrowed reference in
PyList::get_item
(unsafe in free-threaded Python). #4410- Correct FFI definition
PyArg_ParseTupleAndKeywords
to take*const *const c_char
instead of*mut *mut c_char
on Python 3.13 and up. #4420- Fix a soundness bug with
PyClassInitializer
: panic if adding subclass to existing instance viaPyClassInitializer::from(Py<BaseClass>).add_subclass(SubClass)
. #4454- Fix illegal reference counting op inside implementation of
__traverse__
handlers. #4479
Commits
cd5369c
release: 0.22.3f38c43a
revert removal of_Py_XNewRef
and_Py_NewRef
in 0.22 linedbb33ad
ci: fixup abi3 ui test outputee3b73f
ci: updates for Rust 1.81 (#4533)146c397
ci: fix nightly warning about unreachable pattern (#4437)08a1630
type_object: fix new clippy complaint about length of doc comment (#4527)6c54632
fix beta/nightly ci (#4549)560790b
fix nightly ci (#4385)2c66281
ci: fix diagnostic case with abi366ac6c7
fix ui tests (#4397)- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
-
@dependabot rebase
will rebase this PR -
@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it -
@dependabot merge
will merge this PR after your CI passes on it -
@dependabot squash and merge
will squash and merge this PR after your CI passes on it -
@dependabot cancel merge
will cancel a previously requested merge and block automerging -
@dependabot reopen
will reopen this PR if it is closed -
@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually -
@dependabot show <dependency name> ignore conditions
will show all of the ignore conditions of the specified dependency -
@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)