Commit dda7d7d
Update pyo3 dependencies to 0.27 (#39657)
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [pyo3](https://redirect.github.com/pyo3/pyo3) | dependencies | minor | `0.24` -> `0.27` |
| [pyo3](https://redirect.github.com/pyo3/pyo3) | workspace.dependencies | minor | `0.24` -> `0.27` |
| [pyo3-async-runtimes](https://redirect.github.com/PyO3/pyo3-async-runtimes) | dependencies | minor | `0.24` -> `0.27` |
| [pyo3-async-runtimes](https://redirect.github.com/PyO3/pyo3-async-runtimes) | workspace.dependencies | minor | `0.24` -> `0.27` |
| [pyo3-build-config](https://redirect.github.com/pyo3/pyo3) | build-dependencies | minor | `0.24` -> `0.27` |
| [pyo3-build-config](https://redirect.github.com/pyo3/pyo3) | workspace.dependencies | minor | `0.24` -> `0.27` |
---
### Release Notes
<details>
<summary>pyo3/pyo3 (pyo3)</summary>
### [`v0.27.1`](https://redirect.github.com/pyo3/pyo3/blob/HEAD/CHANGELOG.md#0271---2025-10-21)
[Compare Source](https://redirect.github.com/pyo3/pyo3/compare/v0.27.0...v0.27.1)
##### Fixed
- Fix `clippy:declare_interior_mutable_const` warning from `#[pyfunction]`. [#​5538](https://redirect.github.com/PyO3/pyo3/pull/5538)
- Expose `pyo3::types::PySendResult` in public API. [#​5539](https://redirect.github.com/PyO3/pyo3/pull/5539)
### [`v0.27.0`](https://redirect.github.com/pyo3/pyo3/blob/HEAD/CHANGELOG.md#0270---2025-10-19)
[Compare Source](https://redirect.github.com/pyo3/pyo3/compare/v0.26.0...v0.27.0)
##### Packaging
- Extend range of supported versions of `hashbrown` optional dependency to include version 0.16. [#​5428](https://redirect.github.com/PyO3/pyo3/pull/5428)
- Bump optional `num-bigint` dependency minimum version to 0.4.4. [#​5471](https://redirect.github.com/PyO3/pyo3/pull/5471)
- Test against Python 3.14 final release. [#​5499](https://redirect.github.com/PyO3/pyo3/pull/5499)
- Drop support for PyPy 3.9 and 3.10. [#​5516](https://redirect.github.com/PyO3/pyo3/pull/5516)
- Provide a better error message when building an outdated PyO3 for a too-new Python version. [#​5519](https://redirect.github.com/PyO3/pyo3/pull/5519)
##### Added
- Add `FromPyObjectOwned` as convenient trait bound for `FromPyObject` when the data is not borrowed from Python. [#​4390](https://redirect.github.com/PyO3/pyo3/pull/4390)
- Add `Borrowed::extract`, same as `PyAnyMethods::extract`, but does not restrict the lifetime by deref. [#​4390](https://redirect.github.com/PyO3/pyo3/pull/4390)
- `experimental-inspect`: basic support for `#[derive(IntoPyObject)]` (no struct fields support yet). [#​5365](https://redirect.github.com/PyO3/pyo3/pull/5365)
- `experimental-inspect`: support `#[pyo3(get, set)]` and `#[pyclass(get_all, set_all)]`. [#​5370](https://redirect.github.com/PyO3/pyo3/pull/5370)
- Add `PyTypeCheck::classinfo_object` that returns an object that can be used as parameter in `isinstance` or `issubclass`. [#​5387](https://redirect.github.com/PyO3/pyo3/pull/5387)
- Implement `PyTypeInfo` on `datetime.*` types even when the limited API is enabled. [#​5388](https://redirect.github.com/PyO3/pyo3/pull/5388)
- Implement `PyTypeInfo` on `PyIterator`, `PyMapping` and `PySequence`. [#​5402](https://redirect.github.com/PyO3/pyo3/pull/5402)
- Implement `PyTypeInfo` on `PyCode` when using the stable ABI. [#​5403](https://redirect.github.com/PyO3/pyo3/pull/5403)
- Implement `PyTypeInfo` on `PyWeakrefReference` when using the stable ABI. [#​5404](https://redirect.github.com/PyO3/pyo3/pull/5404)
- Add `pyo3::sync::RwLockExt` trait, analogous to `pyo3::sync::MutexExt` for readwrite locks. [#​5435](https://redirect.github.com/PyO3/pyo3/pull/5435)
- Add `PyString::from_bytes`. [#​5437](https://redirect.github.com/PyO3/pyo3/pull/5437)
- Implement `AsRef<[u8]>` for `PyBytes`. [#​5445](https://redirect.github.com/PyO3/pyo3/pull/5445)
- Add `CastError` and `CastIntoError`. [#​5468](https://redirect.github.com/PyO3/pyo3/pull/5468)
- Add `PyCapsuleMethods::pointer_checked` and `PyCapsuleMethods::is_valid_checked`. [#​5474](https://redirect.github.com/PyO3/pyo3/pull/5474)
- Add `Borrowed::cast`, `Borrowed::cast_exact` and `Borrowed::cast_unchecked`. [#​5475](https://redirect.github.com/PyO3/pyo3/pull/5475)
- Add conversions for `jiff::civil::ISOWeekDate`. [#​5478](https://redirect.github.com/PyO3/pyo3/pull/5478)
- Add conversions for `&Cstr`, `Cstring` and `Cow<Cstr>`. [#​5482](https://redirect.github.com/PyO3/pyo3/pull/5482)
- add `#[pyclass(skip_from_py_object)]` option, to opt-out of the `FromPyObject: PyClass + Clone` blanket impl. [#​5488](https://redirect.github.com/PyO3/pyo3/pull/5488)
- Add `PyErr::add_note`. [#​5489](https://redirect.github.com/PyO3/pyo3/pull/5489)
- Add `FromPyObject` impl for `Cow<Path>` & `Cow<OsStr>`. [#​5497](https://redirect.github.com/PyO3/pyo3/pull/5497)
- Add `#[pyclass(from_py_object)]` pyclass option, to opt-in to the extraction of pyclasses by value (requires `Clone`). [#​5506](https://redirect.github.com/PyO3/pyo3/pull/5506)
##### Changed
- Rework `FromPyObject` trait for flexibility and performance: [#​4390](https://redirect.github.com/PyO3/pyo3/pull/4390)
- Add a second lifetime to `FromPyObject`, to allow borrowing data from Python objects (e.g. `&str` from Python `str`).
- Replace `extract_bound` with `extract`, which takes `Borrowed<'a, 'py, PyAny>`.
- Optimize `FromPyObject` implementations for `Vec<u8>` and `[u8; N]` from `bytes` and `bytearray`. [#​5244](https://redirect.github.com/PyO3/pyo3/pull/5244)
- Deprecate `#[pyfn]` attribute. [#​5384](https://redirect.github.com/PyO3/pyo3/pull/5384)
- Fetch type name dynamically on cast errors instead of using `PyTypeCheck::NAME`. [#​5387](https://redirect.github.com/PyO3/pyo3/pull/5387)
- Deprecate `PyTypeCheck::NAME` in favour of `PyTypeCheck::classinfo_object` which provides the type information at runtime. [#​5387](https://redirect.github.com/PyO3/pyo3/pull/5387)
- `PyClassGuard(Mut)` and `PyRef(Mut)` extraction now returns an opaque Rust error [#​5413](https://redirect.github.com/PyO3/pyo3/pull/5413)
- Fetch type name dynamically when exporting types implementing `PyTypeInfo` with `#[pymodule_use]`. [#​5414](https://redirect.github.com/PyO3/pyo3/pull/5414)
- Improve `Debug` representation of `PyBuffer<T>`. [#​5442](https://redirect.github.com/PyO3/pyo3/pull/5442)
- `experimental-inspect`: change the way introspection data is emitted in the binaries to avoid a pointer indirection and simplify parsing. [#​5450](https://redirect.github.com/PyO3/pyo3/pull/5450)
- Optimize `Py<T>::drop` for the case when attached to the Python interpreter. [#​5454](https://redirect.github.com/PyO3/pyo3/pull/5454)
- Replace `DowncastError` and `DowncastIntoError` with `CastError` and `CastIntoError`. [#​5468](https://redirect.github.com/PyO3/pyo3/pull/5468)
- Enable fast-path for 128-bit integer conversions on `GraalPy`. [#​5471](https://redirect.github.com/PyO3/pyo3/pull/5471)
- Deprecate `PyAnyMethods::downcast` functions in favour of `Bound::cast` functions. [#​5472](https://redirect.github.com/PyO3/pyo3/pull/5472)
- Make `PyTypeCheck` an `unsafe trait`. [#​5473](https://redirect.github.com/PyO3/pyo3/pull/5473)
- Deprecate unchecked `PyCapsuleMethods`: `pointer()`, `reference()`, and `is_valid()`. [#​5474](https://redirect.github.com/PyO3/pyo3/pull/5474)
- Reduce lifetime of return value in `PyCapsuleMethods::reference`. [#​5474](https://redirect.github.com/PyO3/pyo3/pull/5474)
- `PyCapsuleMethods::name` now returns `CapsuleName` wrapper instead of `&CStr`. [#​5474](https://redirect.github.com/PyO3/pyo3/pull/5474)
- Deprecate `import_exception_bound` in favour of `import_exception`. [#​5480](https://redirect.github.com/PyO3/pyo3/pull/5480)
- `PyList::get_item_unchecked`, `PyTuple::get_item_unchecked`, and `PyTuple::get_borrowed_item_unchecked` no longer check for null values at the provided index. [#​5494](https://redirect.github.com/PyO3/pyo3/pull/5494)
- Allow converting naive datetime into chrono `DateTime<Local>`. [#​5507](https://redirect.github.com/PyO3/pyo3/pull/5507)
##### Removed
- Removed `FromPyObjectBound` trait. [#​4390](https://redirect.github.com/PyO3/pyo3/pull/4390)
##### Fixed
- Fix compilation failure on `wasm32-wasip2`. [#​5368](https://redirect.github.com/PyO3/pyo3/pull/5368)
- Fix `OsStr` conversion for non-utf8 strings on Windows. [#​5444](https://redirect.github.com/PyO3/pyo3/pull/5444)
- Fix issue with `cargo vendor` caused by gitignored build artifact `emscripten/pybuilddir.txt`. [#​5456](https://redirect.github.com/PyO3/pyo3/pull/5456)
- Stop leaking `PyMethodDef` instances inside `#[pyfunction]` macro generated code. [#​5459](https://redirect.github.com/PyO3/pyo3/pull/5459)
- Don't export definition of FFI struct `PyObjectObFlagsAndRefcnt` on 32-bit Python 3.14 (doesn't exist). [#​5499](https://redirect.github.com/PyO3/pyo3/pull/5499)
- Fix failure to build for `abi3` interpreters on Windows using maturin's built-in sysconfig in combination with the `generate-import-lib` feature. [#​5503](https://redirect.github.com/PyO3/pyo3/pull/5503)
- Fix FFI definitions `PyModule_ExecDef` and `PyModule_FromDefAndSpec2` on PyPy. [#​5529](https://redirect.github.com/PyO3/pyo3/pull/5529)
### [`v0.26.0`](https://redirect.github.com/pyo3/pyo3/blob/HEAD/CHANGELOG.md#0260---2025-08-29)
[Compare Source](https://redirect.github.com/pyo3/pyo3/compare/v0.25.1...v0.26.0)
##### Packaging
- Bump hashbrown dependency to 0.15. [#​5152](https://redirect.github.com/PyO3/pyo3/pull/5152)
- Update MSRV to 1.74. [#​5171](https://redirect.github.com/PyO3/pyo3/pull/5171)
- Set the same maximum supported version for alternative interpreters as for CPython. [#​5192](https://redirect.github.com/PyO3/pyo3/pull/5192)
- Add optional `bytes` dependency to add conversions for `bytes::Bytes`. [#​5252](https://redirect.github.com/PyO3/pyo3/pull/5252)
- Publish new crate `pyo3-introspection` to pair with the `experimental-inspect` feature. [#​5300](https://redirect.github.com/PyO3/pyo3/pull/5300)
- The `PYO3_BUILD_EXTENSION_MODULE` now causes the same effect as the `extension-module` feature. Eventually we expect maturin and setuptools-rust to set this environment variable automatically. Users with their own build systems will need to do the same. [#​5343](https://redirect.github.com/PyO3/pyo3/pull/5343)
##### Added
- Add `#[pyo3(warn(message = "...", category = ...))]` attribute for automatic warnings generation for `#[pyfunction]` and `#[pymethods]`. [#​4364](https://redirect.github.com/PyO3/pyo3/pull/4364)
- Add `PyMutex`, available on Python 3.13 and newer. [#​4523](https://redirect.github.com/PyO3/pyo3/pull/4523)
- Add FFI definition `PyMutex_IsLocked`, available on Python 3.14 and newer. [#​4523](https://redirect.github.com/PyO3/pyo3/pull/4523)
- Add `PyString::from_encoded_object`. [#​5017](https://redirect.github.com/PyO3/pyo3/pull/5017)
- `experimental-inspect`: add basic input type annotations. [#​5089](https://redirect.github.com/PyO3/pyo3/pull/5089)
- Add FFI function definitions for `PyFrameObject` from CPython 3.13. [#​5154](https://redirect.github.com/PyO3/pyo3/pull/5154)
- `experimental-inspect`: tag modules created using `#[pymodule]` or `#[pymodule_init]` functions as incomplete. [#​5207](https://redirect.github.com/PyO3/pyo3/pull/5207)
- `experimental-inspect`: add basic return type support. [#​5208](https://redirect.github.com/PyO3/pyo3/pull/5208)
- Add `PyCode::compile` and `PyCodeMethods::run` to create and execute code objects. [#​5217](https://redirect.github.com/PyO3/pyo3/pull/5217)
- Add `PyOnceLock` type for thread-safe single-initialization. [#​5223](https://redirect.github.com/PyO3/pyo3/pull/5223)
- Add `PyClassGuard(Mut)` pyclass holders. In the future they will replace `PyRef(Mut)`. [#​5233](https://redirect.github.com/PyO3/pyo3/pull/5233)
- `experimental-inspect`: allow annotations in `#[pyo3(signature)]` signature attribute. [#​5241](https://redirect.github.com/PyO3/pyo3/pull/5241)
- Implement `MutexExt` for parking_lot's/lock_api `ReentrantMutex`. [#​5258](https://redirect.github.com/PyO3/pyo3/pull/5258)
- `experimental-inspect`: support class associated constants. [#​5272](https://redirect.github.com/PyO3/pyo3/pull/5272)
- Add `Bound::cast` family of functions superseding the `PyAnyMethods::downcast` family. [#​5289](https://redirect.github.com/PyO3/pyo3/pull/5289)
- Add FFI definitions `Py_Version` and `Py_IsFinalizing`. [#​5317](https://redirect.github.com/PyO3/pyo3/pull/5317)
- `experimental-inspect`: add output type annotation for `#[pyclass]`. [#​5320](https://redirect.github.com/PyO3/pyo3/pull/5320)
- `experimental-inspect`: support `#[pyclass(eq, eq_int, ord, hash, str)]`. [#​5338](https://redirect.github.com/PyO3/pyo3/pull/5338)
- `experimental-inspect`: add basic support for `#[derive(FromPyObject)]` (no struct fields support yet). [#​5339](https://redirect.github.com/PyO3/pyo3/pull/5339)
- Add `Python::try_attach`. [#​5342](https://redirect.github.com/PyO3/pyo3/pull/5342)
##### Changed
- Use `Py_TPFLAGS_DISALLOW_INSTANTIATION` instead of a `__new__` which always fails for a `#[pyclass]` without a `#[new]` on Python 3.10 and up. [#​4568](https://redirect.github.com/PyO3/pyo3/pull/4568)
- `PyModule::from_code` now defaults `file_name` to `<string>` if empty. [#​4777](https://redirect.github.com/PyO3/pyo3/pull/4777)
- Deprecate `PyString::from_object` in favour of `PyString::from_encoded_object`. [#​5017](https://redirect.github.com/PyO3/pyo3/pull/5017)
- When building with `abi3` for a Python version newer than pyo3 supports, automatically fall back to an abi3 build for the latest supported version. [#​5144](https://redirect.github.com/PyO3/pyo3/pull/5144)
- Change `is_instance_of` trait bound from `PyTypeInfo` to `PyTypeCheck`. [#​5146](https://redirect.github.com/PyO3/pyo3/pull/5146)
- Many PyO3 proc macros now report multiple errors instead of only the first one. [#​5159](https://redirect.github.com/PyO3/pyo3/pull/5159)
- Change `MutexExt` return type to be an associated type. [#​5201](https://redirect.github.com/PyO3/pyo3/pull/5201)
- Use `PyCallArgs` for `Py::call` and friends so they're equivalent to their `Bound` counterpart. [#​5206](https://redirect.github.com/PyO3/pyo3/pull/5206)
- Rename `Python::with_gil` to `Python::attach`. [#​5209](https://redirect.github.com/PyO3/pyo3/pull/5209)
- Rename `Python::allow_threads` to `Python::detach` [#​5221](https://redirect.github.com/PyO3/pyo3/pull/5221)
- Deprecate `GILOnceCell` type in favour of `PyOnceLock`. [#​5223](https://redirect.github.com/PyO3/pyo3/pull/5223)
- Rename `pyo3::prepare_freethreaded_python` to `Python::initialize`. [#​5247](https://redirect.github.com/PyO3/pyo3/pull/5247)
- Convert `PyMemoryError` into/from `io::ErrorKind::OutOfMemory`. [#​5256](https://redirect.github.com/PyO3/pyo3/pull/5256)
- Deprecate `GILProtected`. [#​5285](https://redirect.github.com/PyO3/pyo3/pull/5285)
- Move `#[pyclass]` docstring formatting from import time to compile time. [#​5286](https://redirect.github.com/PyO3/pyo3/pull/5286)
- `Python::attach` will now panic if the Python interpreter is in the process of shutting down. [#​5317](https://redirect.github.com/PyO3/pyo3/pull/5317)
- Add fast-path to `PyTypeInfo::type_object` for `#[pyclass]` types. [#​5324](https://redirect.github.com/PyO3/pyo3/pull/5324)
- Deprecate `PyObject` type alias for `Py<PyAny>`. [#​5325](https://redirect.github.com/PyO3/pyo3/pull/5325)
- Rename `Python::with_gil_unchecked` to `Python::attach_unchecked`. [#​5340](https://redirect.github.com/PyO3/pyo3/pull/5340)
- Rename `Python::assume_gil_acquired` to `Python::assume_attached`. [#​5354](https://redirect.github.com/PyO3/pyo3/pull/5354)
##### Removed
- Remove FFI definition of internals of `PyFrameObject`. [#​5154](https://redirect.github.com/PyO3/pyo3/pull/5154)
- Remove `Eq` and `PartialEq` implementations on `PyGetSetDef` FFI definition. [#​5196](https://redirect.github.com/PyO3/pyo3/pull/5196)
- Remove private FFI definitions `_Py_IsCoreInitialized` and `_Py_InitializeMain`. [#​5317](https://redirect.github.com/PyO3/pyo3/pull/5317)
##### Fixed
- Use critical section in `PyByteArray::to_vec` on freethreaded build to replicate GIL-enabled "soundness". [#​4742](https://redirect.github.com/PyO3/pyo3/pull/4742)
- Fix precision loss when converting `bigdecimal` into Python. [#​5198](https://redirect.github.com/PyO3/pyo3/pull/5198)
- Don't treat win7 target as a cross-compilation. [#​5210](https://redirect.github.com/PyO3/pyo3/pull/5210)
- WASM targets no longer require exception handling support for Python < 3.14. [#​5239](https://redirect.github.com/PyO3/pyo3/pull/5239)
- Fix segfault when dropping `PyBuffer<T>` after the Python interpreter has been finalized. [#​5242](https://redirect.github.com/PyO3/pyo3/pull/5242)
- `experimental-inspect`: better automated imports generation. [#​5251](https://redirect.github.com/PyO3/pyo3/pull/5251)
- `experimental-inspect`: fix introspection of `__richcmp__`, `__concat__`, `__repeat__`, `__inplace_concat__` and `__inplace_repeat__`. [#​5273](https://redirect.github.com/PyO3/pyo3/pull/5273)
- fixed a leaked borrow, when converting a mutable sub class into a frozen base class using `PyRef::into_super` [#​5281](https://redirect.github.com/PyO3/pyo3/pull/5281)
- Fix FFI definition `Py_Exit` (never returns, was `()` return value, now `!`). [#​5317](https://redirect.github.com/PyO3/pyo3/pull/5317)
- `experimental-inspect`: fix handling of module members gated behind `#[cfg(...)]` attributes. [#​5318](https://redirect.github.com/PyO3/pyo3/pull/5318)
### [`v0.25.1`](https://redirect.github.com/pyo3/pyo3/blob/HEAD/CHANGELOG.md#0251---2025-06-12)
[Compare Source](https://redirect.github.com/pyo3/pyo3/compare/v0.25.0...v0.25.1)
##### Packaging
- Add support for Windows on ARM64. [#​5145](https://redirect.github.com/PyO3/pyo3/pull/5145)
- Add `chrono-local` feature for optional conversions for chrono's `Local` timezone & `DateTime<Local>` instances. [#​5174](https://redirect.github.com/PyO3/pyo3/pull/5174)
##### Added
- Add FFI definition `PyBytes_AS_STRING`. [#​5121](https://redirect.github.com/PyO3/pyo3/pull/5121)
- Add support for module associated consts introspection. [#​5150](https://redirect.github.com/PyO3/pyo3/pull/5150)
##### Changed
- Enable "vectorcall" FFI definitions on GraalPy. [#​5121](https://redirect.github.com/PyO3/pyo3/pull/5121)
- Use `Py_Is` function on GraalPy [#​5121](https://redirect.github.com/PyO3/pyo3/pull/5121)
##### Fixed
- Report a better compile error for `async` declarations when not using `experimental-async` feature. [#​5156](https://redirect.github.com/PyO3/pyo3/pull/5156)
- Fix implementation of `FromPyObject` for `uuid::Uuid` on big-endian architectures. [#​5161](https://redirect.github.com/PyO3/pyo3/pull/5161)
- Fix segmentation faults on 32-bit x86 with Python 3.14. [#​5180](https://redirect.github.com/PyO3/pyo3/pull/5180)
### [`v0.25.0`](https://redirect.github.com/pyo3/pyo3/blob/HEAD/CHANGELOG.md#0250---2025-05-14)
[Compare Source](https://redirect.github.com/pyo3/pyo3/compare/v0.24.2...v0.25.0)
##### Packaging
- Support Python 3.14.0b1. [#​4811](https://redirect.github.com/PyO3/pyo3/pull/4811)
- Bump supported GraalPy version to 24.2. [#​5116](https://redirect.github.com/PyO3/pyo3/pull/5116)
- Add optional `bigdecimal` dependency to add conversions for `bigdecimal::BigDecimal`. [#​5011](https://redirect.github.com/PyO3/pyo3/pull/5011)
- Add optional `time` dependency to add conversions for `time` types. [#​5057](https://redirect.github.com/PyO3/pyo3/pull/5057)
- Remove `cfg-if` dependency. [#​5110](https://redirect.github.com/PyO3/pyo3/pull/5110)
- Add optional `ordered_float` dependency to add conversions for `ordered_float::NotNan` and `ordered_float::OrderedFloat`. [#​5114](https://redirect.github.com/PyO3/pyo3/pull/5114)
##### Added
- Add initial type stub generation to the `experimental-inspect` feature. [#​3977](https://redirect.github.com/PyO3/pyo3/pull/3977)
- Add `#[pyclass(generic)]` option to support runtime generic typing. [#​4926](https://redirect.github.com/PyO3/pyo3/pull/4926)
- Implement `OnceExt` & `MutexExt` for `parking_lot` & `lock_api`. Use the new extension traits by enabling the `arc_lock`, `lock_api`, or `parking_lot` cargo features. [#​5044](https://redirect.github.com/PyO3/pyo3/pull/5044)
- Implement `From`/`Into` for `Borrowed<T>` -> `Py<T>`. [#​5054](https://redirect.github.com/PyO3/pyo3/pull/5054)
- Add `PyTzInfo` constructors. [#​5055](https://redirect.github.com/PyO3/pyo3/pull/5055)
- Add FFI definition `PY_INVALID_STACK_EFFECT`. [#​5064](https://redirect.github.com/PyO3/pyo3/pull/5064)
- Implement `AsRef<Py<PyAny>>` for `Py<T>`, `Bound<T>` and `Borrowed<T>`. [#​5071](https://redirect.github.com/PyO3/pyo3/pull/5071)
- Add FFI definition `PyModule_Add` and `compat::PyModule_Add`. [#​5085](https://redirect.github.com/PyO3/pyo3/pull/5085)
- Add FFI definitions `Py_HashBuffer`, `Py_HashPointer`, and `PyObject_GenericHash`. [#​5086](https://redirect.github.com/PyO3/pyo3/pull/5086)
- Support `#[pymodule_export]` on `const` items in declarative modules. [#​5096](https://redirect.github.com/PyO3/pyo3/pull/5096)
- Add `#[pyclass(immutable_type)]` option (on Python 3.14+ with `abi3`, or 3.10+ otherwise) for immutable type objects. [#​5101](https://redirect.github.com/PyO3/pyo3/pull/5101)
- Support `#[pyo3(rename_all)]` support on `#[derive(IntoPyObject)]`. [#​5112](https://redirect.github.com/PyO3/pyo3/pull/5112)
- Add `PyRange` wrapper. [#​5117](https://redirect.github.com/PyO3/pyo3/pull/5117)
##### Changed
- Enable use of `datetime` types with `abi3` feature enabled. [#​4970](https://redirect.github.com/PyO3/pyo3/pull/4970)
- Deprecate `timezone_utc` in favor of `PyTzInfo::utc`. [#​5055](https://redirect.github.com/PyO3/pyo3/pull/5055)
- Reduce visibility of some CPython implementation details: [#​5064](https://redirect.github.com/PyO3/pyo3/pull/5064)
- The FFI definition `PyCodeObject` is now an opaque struct on all Python versions.
- The FFI definition `PyFutureFeatures` is now only defined up until Python 3.10 (it was present in CPython headers but unused in 3.11 and 3.12).
- Change `PyAnyMethods::is` to take `other: &Bound<T>`. [#​5071](https://redirect.github.com/PyO3/pyo3/pull/5071)
- Change `Py::is` to take `other: &Py<T>`. [#​5071](https://redirect.github.com/PyO3/pyo3/pull/5071)
- Change `PyVisit::call` to take `T: Into<Option<&Py<T>>>`. [#​5071](https://redirect.github.com/PyO3/pyo3/pull/5071)
- Expose `PyDateTime_DATE_GET_TZINFO` and `PyDateTime_TIME_GET_TZINFO` on PyPy 3.10 and later. [#​5079](https://redirect.github.com/PyO3/pyo3/pull/5079)
- Add `#[track_caller]` to `with_gil` and `with_gil_unchecked`. [#​5109](https://redirect.github.com/PyO3/pyo3/pull/5109)
- Use `std::thread::park()` instead of `libc::pause()` or `sleep(9999999)`. [#​5115](https://redirect.github.com/PyO3/pyo3/pull/5115)
##### Removed
- Remove all functionality deprecated in PyO3 0.23. [#​4982](https://redirect.github.com/PyO3/pyo3/pull/4982)
- Remove deprecated `IntoPy` and `ToPyObject` traits. [#​5010](https://redirect.github.com/PyO3/pyo3/pull/5010)
- Remove private types from `pyo3-ffi` (i.e. starting with `_Py`) which are not referenced by public APIs: `_PyLocalMonitors`, `_Py_GlobalMonitors`, `_PyCoCached`, `_PyCoLineInstrumentationData`, `_PyCoMonitoringData`, `_PyCompilerSrcLocation`, `_PyErr_StackItem`. [#​5064](https://redirect.github.com/PyO3/pyo3/pull/5064)
- Remove FFI definition `PyCode_GetNumFree` (PyO3 cannot support it due to knowledge of the code object). [#​5064](https://redirect.github.com/PyO3/pyo3/pull/5064)
- Remove `AsPyPointer` trait. [#​5071](https://redirect.github.com/PyO3/pyo3/pull/5071)
- Remove support for the deprecated string form of `from_py_with`. [#​5097](https://redirect.github.com/PyO3/pyo3/pull/5097)
- Remove FFI definitions of private static variables: `_PyMethodWrapper_Type`, `_PyCoroWrapper_Type`, `_PyImport_FrozenBootstrap`, `_PyImport_FrozenStdlib`, `_PyImport_FrozenTest`, `_PyManagedBuffer_Type`, `_PySet_Dummy`, `_PyWeakref_ProxyType`, and `_PyWeakref_CallableProxyType`. [#​5105](https://redirect.github.com/PyO3/pyo3/pull/5105)
- Remove FFI definitions `PyASCIIObjectState`, `PyUnicode_IS_ASCII`, `PyUnicode_IS_COMPACT`, and `PyUnicode_IS_COMPACT_ASCII` on Python 3.14 and newer. [#​5133](https://redirect.github.com/PyO3/pyo3/pull/5133)
##### Fixed
- Correctly pick up the shared state for conda-based Python installation when reading information from sysconfigdata. [#​5037](https://redirect.github.com/PyO3/pyo3/pull/5037)
- Fix compile failure with `#[derive(IntoPyObject, FromPyObject)]` when using `#[pyo3()]` options recognised by only one of the two derives. [#​5070](https://redirect.github.com/PyO3/pyo3/pull/5070)
- Fix various compile errors from missing FFI definitions using certain feature combinations on PyPy and GraalPy. [#​5091](https://redirect.github.com/PyO3/pyo3/pull/5091)
- Fallback on `backports.zoneinfo` for python <3.9 when converting timezones into python. [#​5120](https://redirect.github.com/PyO3/pyo3/pull/5120)
</details>
<details>
<summary>PyO3/pyo3-async-runtimes (pyo3-async-runtimes)</summary>
### [`v0.27.0`](https://redirect.github.com/PyO3/pyo3-async-runtimes/blob/HEAD/CHANGELOG.md#0270---2025-10-20)
[Compare Source](https://redirect.github.com/PyO3/pyo3-async-runtimes/compare/v0.26.0...v0.27.0)
- Avoid attaching to the runtime when cloning TaskLocals by using std::sync::Arc. [#​62](https://redirect.github.com/PyO3/pyo3-async-runtimes/pull/62)
- **Breaking**: Finalize the future without holding GIL inside async-std/tokio runtime.
Trait `Runtime` now requires `spawn_blocking` function,
`future_into_py` functions now require future return type to be `Send`.
[#​60](https://redirect.github.com/PyO3/pyo3-async-runtimes/pull/60)
- Change pyo3 `downcast` calls to `cast` calls [#​65](https://redirect.github.com/PyO3/pyo3-async-runtimes/pull/65)
- Use `pyo3::intern!` for method calls and `getattr` calls [#​66](https://redirect.github.com/PyO3/pyo3-async-runtimes/pull/66)
- Fix missing LICENSE file in macros crate by [@​musicinmybrain](https://redirect.github.com/musicinmybrain) in [https://github.com/PyO3/pyo3-async-runtimes/pull/63](https://redirect.github.com/PyO3/pyo3-async-runtimes/pull/63)
- Bump to pyo3 0.27. [#​68](https://redirect.github.com/PyO3/pyo3-async-runtimes/pull/68)
### [`v0.26.0`](https://redirect.github.com/PyO3/pyo3-async-runtimes/blob/HEAD/CHANGELOG.md#0260---2025-09-02)
[Compare Source](https://redirect.github.com/PyO3/pyo3-async-runtimes/compare/v0.25.0...v0.26.0)
- Bump to pyo3 0.26. [#​54](https://redirect.github.com/PyO3/pyo3-async-runtimes/pull/54)
### [`v0.25.0`](https://redirect.github.com/PyO3/pyo3-async-runtimes/blob/HEAD/CHANGELOG.md#0250---2025-05-14)
[Compare Source](https://redirect.github.com/PyO3/pyo3-async-runtimes/compare/v0.24.0...v0.25.0)
- Bump to pyo3 0.25. [#​41](https://redirect.github.com/PyO3/pyo3-async-runtimes/pull/41)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "on the first day of the month" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.
---
- [ ] If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate).
GitOrigin-RevId: 5a0ef1c4a53b56fb982c6b8d87545a2c126154771 parent c860713 commit dda7d7d
File tree
5 files changed
+48
-46
lines changed- src
- client
5 files changed
+48
-46
lines changedSome generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | | - | |
| 22 | + | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
66 | 70 | | |
67 | 71 | | |
68 | 72 | | |
| |||
78 | 82 | | |
79 | 83 | | |
80 | 84 | | |
81 | | - | |
| 85 | + | |
82 | 86 | | |
83 | 87 | | |
84 | 88 | | |
| |||
96 | 100 | | |
97 | 101 | | |
98 | 102 | | |
99 | | - | |
| 103 | + | |
100 | 104 | | |
101 | 105 | | |
102 | 106 | | |
| |||
179 | 183 | | |
180 | 184 | | |
181 | 185 | | |
182 | | - | |
| 186 | + | |
183 | 187 | | |
184 | 188 | | |
185 | 189 | | |
| |||
193 | 197 | | |
194 | 198 | | |
195 | 199 | | |
196 | | - | |
| 200 | + | |
197 | 201 | | |
198 | 202 | | |
199 | 203 | | |
| |||
207 | 211 | | |
208 | 212 | | |
209 | 213 | | |
210 | | - | |
| 214 | + | |
211 | 215 | | |
212 | 216 | | |
213 | 217 | | |
| |||
295 | 299 | | |
296 | 300 | | |
297 | 301 | | |
298 | | - | |
| 302 | + | |
299 | 303 | | |
300 | 304 | | |
301 | 305 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | | - | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
| 35 | + | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | | - | |
| 55 | + | |
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
120 | | - | |
| 120 | + | |
121 | 121 | | |
122 | | - | |
| 122 | + | |
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
129 | | - | |
| 129 | + | |
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | | - | |
| 95 | + | |
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| |||
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
122 | | - | |
| 122 | + | |
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
151 | | - | |
| 151 | + | |
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| |||
158 | 158 | | |
159 | 159 | | |
160 | 160 | | |
161 | | - | |
| 161 | + | |
162 | 162 | | |
163 | 163 | | |
164 | 164 | | |
| |||
194 | 194 | | |
195 | 195 | | |
196 | 196 | | |
197 | | - | |
| 197 | + | |
198 | 198 | | |
199 | 199 | | |
200 | 200 | | |
| |||
219 | 219 | | |
220 | 220 | | |
221 | 221 | | |
222 | | - | |
| 222 | + | |
223 | 223 | | |
224 | 224 | | |
225 | 225 | | |
| |||
241 | 241 | | |
242 | 242 | | |
243 | 243 | | |
244 | | - | |
| 244 | + | |
245 | 245 | | |
246 | 246 | | |
247 | 247 | | |
| |||
252 | 252 | | |
253 | 253 | | |
254 | 254 | | |
255 | | - | |
| 255 | + | |
256 | 256 | | |
257 | 257 | | |
258 | 258 | | |
259 | 259 | | |
260 | 260 | | |
261 | 261 | | |
262 | 262 | | |
263 | | - | |
| 263 | + | |
264 | 264 | | |
265 | 265 | | |
266 | 266 | | |
| |||
0 commit comments