chore(deps): update rust crate pyo3 to 0.24.0 - autoclosed #2634
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.23.4->0.24.0Release Notes
pyo3/pyo3 (pyo3)
v0.24.1Compare Source
This release is a security fix for the
PyString::from_objectmethod, which passed&strdata to the Python C API without checking for a terminating nul byte. All historical PyO3 versions are affected, and we recommend you upgrade if you are usingPyString::from_object. Thank you to @vthib for the report and @Dr-Emann for the fix. A RUSTSEC advisory will be published shortly.Aside from the security fix, this release contains a number of other non-breaking additions:
abi3-py313feature to support compiling with the Python 3.13 stable ABI.PyAnyMethods::getattr_optto get optional attributes without paying the cost of a Python exception when the attribute in question does not exist.PyInt::new.with_critical_section2for locking two objects at the same time on the free-threaded build.Option<&str>andOption<&T>(whereT: PyClass) function arguments no longer being permittedThere are also a few other small bug fixes for edge cases, mostly related to compile errors from PyO3's macro code.
Thank you to the following contributors for the improvements:
@bschoenmaeckers
@davidhewitt
@Dr-Emann
@emmagordon
@epontan
@Icxolu
@IvanIsCoding
@jelmer
@jonaspleyer
@ngoldbaum
@Owen-CH-Leung
@Tpt
@Trolldemorted
@XuehaiPan
v0.24.0Compare Source
Packaging
target-lexicondependency to 0.13. #4822jiffdependency to add conversions forjiffdatetime types. #4823inventoryversion to 0.3.5. #4954Added
PyIterator::sendmethod to allow sending values into a python generator. #4746PyCallArgstrait for passing arguments into the Python calling protocol. This enabled using a faster calling convention for certain types, improving performance. #4768#[pyo3(default = ...']option for#[derive(FromPyObject)]to set a default value for extracted fields of named structs. #4829#[pyo3(into_py_with = ...)]option for#[derive(IntoPyObject, IntoPyObjectRef)]. #4850PyThreadState_GetFrameandPyFrame_GetBack. #4866lastforBoundListIterator,BoundTupleIteratorandBorrowedTupleIterator. #4878Iterator::count()forPyDict,PyList,PyTuple&PySet. #4878nth,nth_back,advance_byandadvance_back_byforBoundTupleIterator#4897types.GenericAliasaspyo3::types::PyGenericAlias. #4917MutextExttrait to help avoid deadlocks with the GIL while locking astd::sync::Mutex. #4934#[pyo3(rename_all = "...")]option for#[derive(FromPyObject)]. #4941Changed
nth,nth_back,advance_byandadvance_back_byforBoundListIterator. #4810DerefToPyAnyin blanket implementations ofFrom<Py<T>>andFrom<Bound<'py, T>>forPyObject. #4593io::ErrorKind::IsADirectory/NotADirectoryto the corresponding Python exception on Rust 1.83+. #4747PyAnyMethods::calland friends now requirePyCallArgsfor their positional arguments. #4768PyObject_Vectorcall(Method)on the stable abi on 3.12+. #4853#[pyo3(from_py_with = ...)]now take a path rather than a string literal #4860PathBuf&Pathinto Pythonpathlib.Pathinstead ofPyString. #4925pthread_exittrying to acquire the GIL when the interpreter is shutting down. This mimics the Python 3.14 behavior and avoids undefined behavior and crashes. #4874Removed
DerefforPyAnyand other "native" types. #4593Fixed
PyIter_Sendto return aPySendResult. #4746Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.