Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Jan 1, 2026

Updates the requirements on pyo3 and pyo3-async-runtimes to permit the latest version.
Updates pyo3 to 0.26.0

Release notes

Sourced from pyo3's releases.

PyO3 0.26.0

This version solidifies support for Python 3.14 and free-threaded Python 3.14t. A number of PyO3 APIs have been renamed to reflect the fact the GIL is no longer a universal feature of all Python implementations. For example:

  • Python::with_gil is now known as Python::attach
  • Python::allow_threads is now known as Python::detach
  • pyo3::prepare_freethreaded_python is now known as Python::initialize()

The minimum supported Rust version has been increased to Rust 1.74.

An optional dependency on the bytes crate has been added to allow support for converting bytes::Bytes to / from Python.

The PyObject type alias for Py<PyAny> has also been deprecated; the Py and Bound smart pointers have been the primary interface for all Python-facing types since PyO3 0.21 and the PyObject type alias had been a frequent source of confusion.

There are also many other incremental improvements, bug fixes and smaller features.

Please consult the migration guide for help upgrading.

Thank you to everyone who contributed code, documentation, design ideas, bug reports, and feedback. The following contributors' commits are included in this release:

@​ahlinc @​alex @​anilbey @​bschoenmaeckers @​Cheukting @​codeguru42 @​davidhewitt @​decathorpe @​dependabot[bot] @​drewkett @​FlickerSoul @​Icxolu @​jder @​jessekrubin @​jjmarchewitz @​kemingy @​msimacek @​musicinmybrain @​ngoldbaum @​Nnamdi-sys @​nucccc @​olp-cs @​robsdedude @​rrricharrrd @​sxlijin @​timfel @​tonybaloney @​Tpt @​wxianxin @​xushiyan @​yogevm15

Changelog

Sourced from pyo3's changelog.

[0.26.0] - 2025-08-29

Packaging

  • Bump hashbrown dependency to 0.15. #5152
  • Update MSRV to 1.74. #5171
  • Set the same maximum supported version for alternative interpreters as for CPython. #5192
  • Add optional bytes dependency to add conversions for bytes::Bytes. #5252
  • Publish new crate pyo3-introspection to pair with the experimental-inspect feature. #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

Added

  • Add #[pyo3(warn(message = "...", category = ...))] attribute for automatic warnings generation for #[pyfunction] and #[pymethods]. #4364
  • Add PyMutex, available on Python 3.13 and newer. #4523
  • Add FFI definition PyMutex_IsLocked, available on Python 3.14 and newer. #4523
  • Add PyString::from_encoded_object. #5017
  • experimental-inspect: add basic input type annotations. #5089
  • Add FFI function definitions for PyFrameObject from CPython 3.13. #5154
  • experimental-inspect: tag modules created using #[pymodule] or #[pymodule_init] functions as incomplete. #5207
  • experimental-inspect: add basic return type support. #5208
  • Add PyCode::compile and PyCodeMethods::run to create and execute code objects. #5217
  • Add PyOnceLock type for thread-safe single-initialization. #5223
  • Add PyClassGuard(Mut) pyclass holders. In the future they will replace PyRef(Mut). #5233
  • experimental-inspect: allow annotations in #[pyo3(signature)] signature attribute. #5241
  • Implement MutexExt for parking_lot's/lock_api ReentrantMutex. #5258
  • experimental-inspect: support class associated constants. #5272
  • Add Bound::cast family of functions superseding the PyAnyMethods::downcast family. #5289
  • Add FFI definitions Py_Version and Py_IsFinalizing. #5317
  • experimental-inspect: add output type annotation for #[pyclass]. #5320
  • experimental-inspect: support #[pyclass(eq, eq_int, ord, hash, str)]. #5338
  • experimental-inspect: add basic support for #[derive(FromPyObject)] (no struct fields support yet). #5339
  • Add Python::try_attach. #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
  • PyModule::from_code now defaults file_name to <string> if empty. #4777
  • Deprecate PyString::from_object in favour of PyString::from_encoded_object. #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
  • Change is_instance_of trait bound from PyTypeInfo to PyTypeCheck. #5146
  • Many PyO3 proc macros now report multiple errors instead of only the first one. #5159
  • Change MutexExt return type to be an associated type. #5201
  • Use PyCallArgs for Py::call and friends so they're equivalent to their Bound counterpart. #5206
  • Rename Python::with_gil to Python::attach. #5209
  • Rename Python::allow_threads to Python::detach #5221
  • Deprecate GILOnceCell type in favour of PyOnceLock. #5223
  • Rename pyo3::prepare_freethreaded_python to Python::initialize. #5247
  • Convert PyMemoryError into/from io::ErrorKind::OutOfMemory. #5256
  • Deprecate GILProtected. #5285

... (truncated)

Commits

Updates pyo3-async-runtimes to 0.27.0

Changelog

Sourced from pyo3-async-runtimes's changelog.

[0.27.0] - 2025-10-20

  • Avoid attaching to the runtime when cloning TaskLocals by using std::sync::Arc. #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
  • Change pyo3 downcast calls to cast calls #65
  • Use pyo3::intern! for method calls and getattr calls #66
  • Fix missing LICENSE file in macros crate by @​musicinmybrain in PyO3/pyo3-async-runtimes#63
  • Bump to pyo3 0.27. #68

[0.26.0] - 2025-09-02

  • Bump to pyo3 0.26. #54

[0.25.0] - 2025-05-14

  • Bump to pyo3 0.25. #41

[0.24.0] - 2025-03-11

  • Bump to pyo3 0.24. #34

[0.23.0] - 2024-11-22

  • Bump minimum version of pyo3 dependency to 0.23. #21

0.22.0 - 2024-10-28

Older versions

Previous versions were published from pyo3-asyncio. Consult that library for older changes.

Commits
  • 22e0ec1 Merge pull request #69 from PyO3/kyle/chore-bump-0.27
  • 3338a51 Bump to 0.27
  • 50b0d13 Merge pull request #68 from PyO3/dependabot/cargo/pyo3-0.27
  • 30dfd55 Update pyo3 requirement from 0.26 to 0.27
  • b90e189 use pyo3::intern! (#66)
  • da865a7 Fix missing LICENSE file in macros crate (#63)
  • 0837d91 pyo3 downcasts changed to casts (#65)
  • 94b1c25 Merge pull request #60 from stepancheg/with-gil-2
  • f6ebac3 Move remaining with_gil calls outside of tokio event loop
  • 2b243ef Merge pull request #62 from iksteen/task-locals-arc
  • 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 <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Updates the requirements on [pyo3](https://github.com/pyo3/pyo3) and [pyo3-async-runtimes](https://github.com/PyO3/pyo3-async-runtimes) to permit the latest version.

Updates `pyo3` to 0.26.0
- [Release notes](https://github.com/pyo3/pyo3/releases)
- [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md)
- [Commits](PyO3/pyo3@v0.26.0...v0.26.0)

Updates `pyo3-async-runtimes` to 0.27.0
- [Release notes](https://github.com/PyO3/pyo3-async-runtimes/releases)
- [Changelog](https://github.com/PyO3/pyo3-async-runtimes/blob/main/CHANGELOG.md)
- [Commits](PyO3/pyo3-async-runtimes@v0.26.0...v0.27.0)

---
updated-dependencies:
- dependency-name: pyo3
  dependency-version: 0.26.0
  dependency-type: direct:production
  dependency-group: pyo3
- dependency-name: pyo3-async-runtimes
  dependency-version: 0.27.0
  dependency-type: direct:production
  dependency-group: pyo3
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Jan 1, 2026
@dependabot dependabot bot requested a review from messense as a code owner January 1, 2026 00:56
@dependabot dependabot bot added the rust Pull requests that update Rust code label Jan 1, 2026
@dependabot dependabot bot requested a review from Zheaoli as a code owner January 1, 2026 00:56
@dosubot dosubot bot added size:XS This PR changes 0-9 lines, ignoring generated files. releases-note/chore The PR has a title that begins with "chore" or changes other small things that hard to tell labels Jan 1, 2026
@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. and removed size:XS This PR changes 0-9 lines, ignoring generated files. labels Jan 19, 2026
@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Jan 19, 2026
@Xuanwo Xuanwo merged commit 06f088d into main Jan 19, 2026
73 checks passed
@Xuanwo Xuanwo deleted the dependabot/cargo/bindings/python/pyo3-b20d60f472 branch January 19, 2026 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file lgtm This PR has been approved by a maintainer releases-note/chore The PR has a title that begins with "chore" or changes other small things that hard to tell rust Pull requests that update Rust code size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant