fix(deps): update rust crate pyo3 to 0.23 #258
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.21
->0.23
Release Notes
pyo3/pyo3 (pyo3)
v0.23.0
Compare Source
Packaging
hashbrown
optional dependency to include version 0.15. #4604eyre
optional dependency to 0.6.8. #4617hashbrown
optional dependency to 0.14.5. #4617indexmap
optional dependency to 2.5.0. #4617num-complex
optional dependency to 0.4.6. #4617chrono-tz
optional dependency to 0.10. #4617Added
IntoPyObject
(fallible) conversion trait to convert from Rust to Python values. #4060#[pyclass(str="<format string>")]
option to generate__str__
based on aDisplay
implementation or format string. #4233PartialEq
forBound<'py, PyInt>
withu8
,u16
,u32
,u64
,u128
,usize
,i8
,i16
,i32
,i64
,i128
andisize
. #4317PartialEq<f64>
andPartialEq<f32>
forBound<'py, PyFloat>
. #4348as_super
andinto_super
methods forBound<T: PyClass>
. #4351PyCFunctionFast
andPyCFunctionFastWithKeywords
#4415PyMutex
on Python 3.13 and newer. #4421PyDict::locked_for_each
to iterate efficiently on freethreaded Python. #4439PyObject_GetOptionalAttr
,PyObject_GetOptionalAttrString
,PyObject_HasAttrWithError
,PyObject_HasAttrStringWithError
,Py_CONSTANT_*
constants,Py_GetConstant
,Py_GetConstantBorrowed
, andPyType_GetModuleByDef
on Python 3.13 and newer. #4447IntoPyObject
. #4495Borrowed::as_ptr
. #4520PyImport_AddModuleRef
. #4529PyAnyMethods::try_iter
. #4553pyo3::sync::with_critical_section
, a wrapper around the Python Critical Section API added in Python 3.13. #4587#[pymodule(gil_used = false)]
option to declare that a module supports the free-threaded build. #4588PyModule::gil_used
method to declare that a module supports the free-threaded build. #4588PyDateTime_CAPSULE_NAME
. #4634PyMappingProxy
type to represent themappingproxy
Python class. #4644PyList_Extend
andPyList_Clear
. #4667IntoPyObjectRef
. #4674pyo3::sync::OnceExt
andpyo3::sync::OnceLockExt
traits. #4676Changed
IntoPyObject
overIntoPy<Py<PyAny>>>
for#[pyfunction]
and#[pymethods]
return types. #4060#[pyclass]
and#[pyo3(..)]
attributes. #4243#[pymodule]
are automatically treated as submodules (noPyInit_
entrypoint is created). #4308PyAnyMethods::is_ellipsis
(Py::is_ellipsis
was deprecated in PyO3 0.20). #4322PyLong
in favor ofPyInt
. #4347IntoPyDict::into_py_dict_bound
toIntoPyDict::into_py_dict
. #4388PyModule::from_code
now expects&CStr
as arguments instead of&str
. #4404#[pyfunction]
s when compiling on abi3 for Python 3.10 and up. #4415Copy
andClone
fromPyObject
struct FFI definition. #4434Python::eval
andPython::run
now take a&CStr
instead of&str
. #4435IPowModulo
,PyClassAttributeDef
,PyGetterDef
,PyMethodDef
,PyMethodDefType
, andPySetterDef
from PyO3's public API. #4441IntoPyObject
impls forVec<u8>
,&[u8]
,[u8; N]
,Cow<[u8]>
andSmallVec<[u8; N]>
now convert into Pythonbytes
rather than alist
of integers. #4442IntoPyDict::into_py_dict
is now fallible due toIntoPyObject
migration. #4493abi3
feature will now override config files provided viaPYO3_BUILD_CONFIG
. #4497GILProtected
struct on free-threaded Python. #4504PyListMethods::get_item_unchecked
on free-threaded Python. #4539GILOnceCell::import
. #4542PyAnyMethods::iter
in favour ofPyAnyMethods::try_iter
. #4553#[pyclass]
macro now requires a types to beSync
. (Except for#[pyclass(unsendable)]
types). #4566PyList::new
andPyTuple::new
are now fallible due toIntoPyObject
migration. #4580PyErr::matches
is now fallible due toIntoPyObject
migration. #4595ToPyObject
in favour ofIntoPyObject
#4595PyWeakrefMethods::get_option
. #4597PyWeakrefMethods
trait. #4598PyNativeTypeInitializer
andPyObjectInit
from the PyO3 public API. #4611IntoPy
in favor ofIntoPyObject
#4618PyErr::take()
andPyErr::fetch()
on Python 3.11 and older. #4655IntoPy::type_output
toIntoPyObject::type_output
. #4657PyMapping::keys
,PyMapping::values
andPyMapping::items
toBound<'py, PyList>
instead ofBound<'py, PySequence>
. #4661IntoPyObject
by reference or by value together withClone
. This makesPy<T>
available as field type. #4694Removed
PyUnicode
in favour ofPyString
. #4370gil-refs
feature. #4378_Py_IMMORTAL_REFCNT
,_Py_IsImmortal
,_Py_TPFLAGS_STATIC_BUILTIN
,_Py_Dealloc
,_Py_IncRef
,_Py_DecRef
. #4447_Py_c_sum
,_Py_c_diff
,_Py_c_neg
,_Py_c_prod
,_Py_c_quot
,_Py_c_pow
,_Py_c_abs
. #4521_borrowed
methods ofPyWeakRef
andPyWeakRefProxy
. #4528_PyErr_ChainExceptions
. #4534Fixed
lib_dir
when cross-compiling. #4389Py_Is
for PyPy on 3.10 to call the function defined by PyPy. #4447#[cfg]
attributes for simple enum variants. #4509non_snake_case
method names inside#[pymethods]
generated code. #4567#[derive(FromPyObject)]
generic struct with trait bounds. #4645#[classmethod]
and#[staticmethod]
on magic methods. #4654unsafe_op_in_unsafe_fn
in generated macro code. #4674#[pyclass] enum
s with custom__eq__
implementation. #4692non_upper_case_globals
lint firing for generated__match_args__
on complex enums. #4705v0.22.6
: PyO3 0.22.6Compare Source
This release corrects the check for free-threaded Python introduced in PyO3 0.22.2 to prevent users accidentally installing PyO3 packages on Python 3.13t; PyO3 0.22 does not support free-threaded Python. (Stay tuned for the 0.23 release coming very soon!)
Thanks @minrk for the report and @davidhewitt for the fix!
v0.22.5
Compare Source
Fixed
__clear__
slot andclear
method generated code. #4619v0.22.4
Compare Source
Added
PyWeakref_GetRef
andcompat::PyWeakref_GetRef
. #4528Changed
_borrowed
methods onPyWeakRef
andPyWeakrefProxy
(just use the owning forms). #4590Fixed
_PyLong_NumBits
on Python 3.13 and later. #4450__traverse__
functions for base classes not being called by subclasses created with#[pyclass(extends = ...)]
. #4563#![forbid(unsafe_code)]
. #4574_borrowed
methods onPyWeakRef
andPyWeakrefProxy
by leaking their contents. #4590PyType_GetSlot
on static types before Python 3.10. #4599v0.22.3
Compare Source
Added
pyo3::ffi::compat
namespace with compatibility shims for C API functions added in recent versions of Python.PyDict_GetItemRef
on Python 3.13 and newer, andcompat::PyDict_GetItemRef
for all versions. #4355PyList_GetItemRef
on Python 3.13 and newer, andpyo3_ffi::compat::PyList_GetItemRef
for all versions. #4410compat::Py_NewRef
andcompat::Py_XNewRef
. #4445compat::PyObject_CallNoArgs
andcompat::PyObject_CallMethodNoArgs
. #4461GilOnceCell<Py<T>>::clone_ref
. #4511Changed
#[pyfunction]
defined inside#[pymethods]
. #4349Removed
_Py_PackageContext
. #4420Fixed
#[pymodule]
under presence of#![no_implicit_prelude]
. #4328PyDict::get_item
(unsafe in free-threaded Python). #4355#[pyclass(eq)]
macro hygiene issues for structs and enums. #4359'#[pyfunction]
and#[pymethods]
generated code which affected expansion inmacro_rules
context. #4382unsafe_code
lint error in#[pyclass]
generated code. #4396PyList::get_item
(unsafe in free-threaded Python). #4410PyArg_ParseTupleAndKeywords
to take*const *const c_char
instead of*mut *mut c_char
on Python 3.13 and up. #4420PyClassInitializer
: panic if adding subclass to existing instance viaPyClassInitializer::from(Py<BaseClass>).add_subclass(SubClass)
. #4454__traverse__
handlers. #4479v0.22.2
Compare Source
Packaging
UNSAFE_PYO3_BUILD_FREE_THREADED=1
environment variable (it is not yet supported by PyO3). #4327Changed
#[pymodule(...)]
now directly accepts all relevant#[pyo3(...)]
options. #4330Fixed
#[pymodule]
under presence of#![no_implicit_prelude]
. #4328v0.22.1
Compare Source
Added
#[pyo3(submodule)]
option for declarative#[pymodule]
s. #4301PartialEq<bool>
forBound<'py, PyBool>
. #4305Fixed
NotImplemented
instead of raisingTypeError
from generated equality method when comparing different types. #4287#[pyo3::prelude::pymodule]
and similar for#[pyclass]
and#[pyfunction]
in declarative modules.#4288#[setter]
function. #4304v0.22.0
Compare Source
Packaging
heck
dependency to 0.5. #3966chrono-tz
optional dependency to include version 0.10. #4061num-rational
feature to add conversions with Python'sfractions.Fraction
. #4148Added
PyWeakref
,PyWeakrefReference
andPyWeakrefProxy
. #3835#[pyclass]
on enums that have tuple variants. #4072Decimal
conversion. #4079pyo3_disable_reference_pool
conditional compilation flag to avoid the overhead of the global reference pool at the cost of known limitations as explained in the performance section of the guide. #4095#[pyo3(constructor = (...))]
to customize the generated constructors for complex enum variants. #4158PyType::module
, which always matches Python__module__
. #4196PyType::fully_qualified_name
which matches the "fully qualified name" defined in PEP 737. #4196PyTypeMethods::mro
andPyTypeMethods::bases
. #4197#[pyclass(ord)]
to implement ordering based onPartialOrd
. #4202ToPyObject
andIntoPy<PyObject>
forPyBackedStr
andPyBackedBytes
. #4205#[pyclass(hash)]
option to implement__hash__
in terms of theHash
implementation #4206#[pyclass(eq)]
option to generate__eq__
based onPartialEq
, and#[pyclass(eq_int)]
for simple enums to implement equality based on their discriminants. #4210From<Bound<'py, T>>
forPyClassInitializer<T>
. #4214as_super
methods toPyRef
andPyRefMut
for accesing the base class by reference. #4219PartialEq<str>
forBound<'py, PyString>
. #4245PyModuleMethods::filename
on PyPy. #4249PartialEq<[u8]>
forBound<'py, PyBytes>
. #4250pyo3_ffi::c_str
macro to create&'static CStr
on Rust versions which don't have 1.77'sc""
literals. #4255bool
conversion withnumpy
2.0'snumpy.bool
type #4258PyAnyMethods::{bitnot, matmul, floor_div, rem, divmod}
. #4264Changed
PySliceIndices::slicelength
and thelength
parameter ofPySlice::indices()
. #3761Clone
ing pointers into the Python heap has been moved behind thepy-clone
feature, as it must panic without the GIL being held as a soundness fix. #4095#[track_caller]
to allPy<T>
,Bound<'py, T>
andBorrowed<'a, 'py, T>
methods which can panic. #4098PyAnyMethods::dir
to be fallible and returnPyResult<Bound<'py, PyList>>
(and similar forPyAny::dir
). #4100weakref
ordict
when compiling forabi3
for Python older than 3.9. #4194PyType::name
to always match Python__name__
. #4196#[pyclass(eq_int)]
. #4210module=
attribute of declarative modules' child#[pymodule]
s and#[pyclass]
es. #4213module
option for complex enum variants from the value set on the complex enummodule
. #4228abi3
feature on PyPy or GraalPy. #4237#[pyo3(get)]
on#[pyclass]
fields. #4254PyCFunction::new
,PyCFunction::new_with_keywords
andPyCFunction::new_closure
now take&'static CStr
name and doc arguments (previously was&'static str
). #4255experimental-declarative-modules
feature is now stabilized and available by default. #4257Fixed
PYO3_CROSS_LIB_DIR
is set to a missing path. #4043create_exception!
living in a different Rust module using thedeclarative-module
feature. #4086PY_VECTORCALL_ARGUMENTS_OFFSET
andPyVectorcall_NARGS
to fix a false-positive assertion. #4104PyUnicode_DATA
on PyPy: not exposed by PyPy. #4116#[pyo3(from_py_with = ...)]
attribute on dunder (__magic__
) method arguments instead of silently ignoring it. #4117mod
node. #4236__dict__
attribute missing for#[pyclass(dict)]
instances when building forabi3
on Python 3.9. #4251Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, 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.