Skip to content

Commit fafd110

Browse files
Build(deps): bump pyo3 from 0.26.0 to 0.27.0 (#211)
Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.26.0 to 0.27.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pyo3/pyo3/releases">pyo3's releases</a>.</em></p> <blockquote> <h2>PyO3 0.27.0</h2> <p>This release is the first PyO3 release to be tested against Python 3.14.0 final. There are no significant changes to 3.14 support since PyO3 0.26 which was tested against the 3.14 release candidates.</p> <p>Support for PyPy 3.9 and PyPy 3.10 (both no longer supported upstream) has been dropped.</p> <p>The <code>FromPyObject</code> trait has been reworked in a similar fashion to the <code>IntoPyObject</code> trait introduced in PyO3 0.23. This has established a performant and flexible implementation of both these traits and no further changes to the traits are anticipated in the future. Thank you for the patience upgrading through these incremental improvements at the core of PyO3.</p> <p>The <code>.downcast()</code> family of functions are now deprecated in favour of the <code>.cast()</code> family of functions, which are an incremental improvement to API usability and to error messages on failed conversions.</p> <p>Operations on the <code>PyCapsule</code> type have been changed without deprecation to fix some issues with lifetimes of return values (in <code>.name()</code> and <code>.reference()</code> specifically). The capsule API now also encourages checking of capsule names, which is one of the few defences available to protect the validity of casting data read by the capsule API.</p> <p>There are also many other incremental improvements, bug fixes and smaller features.</p> <p>Please consult the <a href="https://pyo3.rs/v0.27.0/migration.html">migration guide</a> for help upgrading.</p> <p>Thank you to everyone who contributed code, documentation, design ideas, bug reports, and feedback. The following contributors' commits are included in this release:</p> <p><a href="https://github.com/alex"><code>@​alex</code></a> <a href="https://github.com/altendky"><code>@​altendky</code></a> <a href="https://github.com/bazaah"><code>@​bazaah</code></a> <a href="https://github.com/bschoenmaeckers"><code>@​bschoenmaeckers</code></a> <a href="https://github.com/crepererum"><code>@​crepererum</code></a> <a href="https://github.com/davidhewitt"><code>@​davidhewitt</code></a> <a href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot] <a href="https://github.com/elbaro"><code>@​elbaro</code></a> <a href="https://github.com/Icxolu"><code>@​Icxolu</code></a> <a href="https://github.com/jqnatividad"><code>@​jqnatividad</code></a> <a href="https://github.com/mbrobbel"><code>@​mbrobbel</code></a> <a href="https://github.com/NilsIrl"><code>@​NilsIrl</code></a> <a href="https://github.com/rvben"><code>@​rvben</code></a> <a href="https://github.com/sanders41"><code>@​sanders41</code></a> <a href="https://github.com/tdyas"><code>@​tdyas</code></a> <a href="https://github.com/Tpt"><code>@​Tpt</code></a> <a href="https://github.com/vvsagar"><code>@​vvsagar</code></a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md">pyo3's changelog</a>.</em></p> <blockquote> <h2>[0.27.0] - 2025-10-19</h2> <h3>Packaging</h3> <ul> <li>Extend range of supported versions of <code>hashbrown</code> optional dependency to include version 0.16. <a href="https://redirect.github.com/PyO3/pyo3/pull/5428">#5428</a></li> <li>Bump optional <code>num-bigint</code> dependency minimum version to 0.4.4. <a href="https://redirect.github.com/PyO3/pyo3/pull/5471">#5471</a></li> <li>Test against Python 3.14 final release. <a href="https://redirect.github.com/PyO3/pyo3/pull/5499">#5499</a></li> <li>Drop support for PyPy 3.9 and 3.10. <a href="https://redirect.github.com/PyO3/pyo3/pull/5516">#5516</a></li> <li>Provide a better error message when building an outdated PyO3 for a too-new Python version. <a href="https://redirect.github.com/PyO3/pyo3/pull/5519">#5519</a></li> </ul> <h3>Added</h3> <ul> <li>Add <code>FromPyObjectOwned</code> as convenient trait bound for <code>FromPyObject</code> when the data is not borrowed from Python. <a href="https://redirect.github.com/PyO3/pyo3/pull/4390">#4390</a></li> <li>Add <code>Borrowed::extract</code>, same as <code>PyAnyMethods::extract</code>, but does not restrict the lifetime by deref. <a href="https://redirect.github.com/PyO3/pyo3/pull/4390">#4390</a></li> <li><code>experimental-inspect</code>: basic support for <code>#[derive(IntoPyObject)]</code> (no struct fields support yet). <a href="https://redirect.github.com/PyO3/pyo3/pull/5365">#5365</a></li> <li><code>experimental-inspect</code>: support <code>#[pyo3(get, set)]</code> and <code>#[pyclass(get_all, set_all)]</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5370">#5370</a></li> <li>Add <code>PyTypeCheck::classinfo_object</code> that returns an object that can be used as parameter in <code>isinstance</code> or <code>issubclass</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5387">#5387</a></li> <li>Implement <code>PyTypeInfo</code> on <code>datetime.*</code> types even when the limited API is enabled. <a href="https://redirect.github.com/PyO3/pyo3/pull/5388">#5388</a></li> <li>Implement <code>PyTypeInfo</code> on <code>PyIterator</code>, <code>PyMapping</code> and <code>PySequence</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5402">#5402</a></li> <li>Implement <code>PyTypeInfo</code> on <code>PyCode</code> when using the stable ABI. <a href="https://redirect.github.com/PyO3/pyo3/pull/5403">#5403</a></li> <li>Implement <code>PyTypeInfo</code> on <code>PyWeakrefReference</code> when using the stable ABI. <a href="https://redirect.github.com/PyO3/pyo3/pull/5404">#5404</a></li> <li>Add <code>pyo3::sync::RwLockExt</code> trait, analogous to <code>pyo3::sync::MutexExt</code> for readwrite locks. <a href="https://redirect.github.com/PyO3/pyo3/pull/5435">#5435</a></li> <li>Add <code>PyString::from_bytes</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5437">#5437</a></li> <li>Implement <code>AsRef&lt;[u8]&gt;</code> for <code>PyBytes</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5445">#5445</a></li> <li>Add <code>CastError</code> and <code>CastIntoError</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5468">#5468</a></li> <li>Add <code>PyCapsuleMethods::pointer_checked</code> and <code>PyCapsuleMethods::is_valid_checked</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5474">#5474</a></li> <li>Add <code>Borrowed::cast</code>, <code>Borrowed::cast_exact</code> and <code>Borrowed::cast_unchecked</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5475">#5475</a></li> <li>Add conversions for <code>jiff::civil::ISOWeekDate</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5478">#5478</a></li> <li>Add conversions for <code>&amp;Cstr</code>, <code>Cstring</code> and <code>Cow&lt;Cstr&gt;</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5482">#5482</a></li> <li>add <code>#[pyclass(skip_from_py_object)]</code> option, to opt-out of the <code>FromPyObject: PyClass + Clone</code> blanket impl. <a href="https://redirect.github.com/PyO3/pyo3/pull/5488">#5488</a></li> <li>Add <code>PyErr::add_note</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5489">#5489</a></li> <li>Add <code>FromPyObject</code> impl for <code>Cow&lt;Path&gt;</code> &amp; <code>Cow&lt;OsStr&gt;</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5497">#5497</a></li> <li>Add <code>#[pyclass(from_py_object)]</code> pyclass option, to opt-in to the extraction of pyclasses by value (requires <code>Clone</code>). <a href="https://redirect.github.com/PyO3/pyo3/pull/5506">#5506</a></li> </ul> <h3>Changed</h3> <ul> <li>Rework <code>FromPyObject</code> trait for flexibility and performance: <a href="https://redirect.github.com/PyO3/pyo3/pull/4390">#4390</a> <ul> <li>Add a second lifetime to <code>FromPyObject</code>, to allow borrowing data from Python objects (e.g. <code>&amp;str</code> from Python <code>str</code>).</li> <li>Replace <code>extract_bound</code> with <code>extract</code>, which takes <code>Borrowed&lt;'a, 'py, PyAny&gt;</code>.</li> </ul> </li> <li>Optimize <code>FromPyObject</code> implementations for <code>Vec&lt;u8&gt;</code> and <code>[u8; N]</code> from <code>bytes</code> and <code>bytearray</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5244">#5244</a></li> <li>Deprecate <code>#[pyfn]</code> attribute. <a href="https://redirect.github.com/PyO3/pyo3/pull/5384">#5384</a></li> <li>Fetch type name dynamically on cast errors instead of using <code>PyTypeCheck::NAME</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5387">#5387</a></li> <li>Deprecate <code>PyTypeCheck::NAME</code> in favour of <code>PyTypeCheck::classinfo_object</code> which provides the type information at runtime. <a href="https://redirect.github.com/PyO3/pyo3/pull/5387">#5387</a></li> <li><code>PyClassGuard(Mut)</code> and <code>PyRef(Mut)</code> extraction now returns an opaque Rust error <a href="https://redirect.github.com/PyO3/pyo3/pull/5413">#5413</a></li> <li>Fetch type name dynamically when exporting types implementing <code>PyTypeInfo</code> with <code>#[pymodule_use]</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5414">#5414</a></li> <li>Improve <code>Debug</code> representation of <code>PyBuffer&lt;T&gt;</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5442">#5442</a></li> <li><code>experimental-inspect</code>: change the way introspection data is emitted in the binaries to avoid a pointer indirection and simplify parsing. <a href="https://redirect.github.com/PyO3/pyo3/pull/5450">#5450</a></li> <li>Optimize <code>Py&lt;T&gt;::drop</code> for the case when attached to the Python interpreter. <a href="https://redirect.github.com/PyO3/pyo3/pull/5454">#5454</a></li> <li>Replace <code>DowncastError</code> and <code>DowncastIntoError</code> with <code>CastError</code> and <code>CastIntoError</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5468">#5468</a></li> <li>Enable fast-path for 128-bit integer conversions on <code>GraalPy</code>. <a href="https://redirect.github.com/PyO3/pyo3/pull/5471">#5471</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/PyO3/pyo3/commit/752551221a1532350778029ac1094bf18dfb493c"><code>7525512</code></a> release: 0.27.0 (<a href="https://redirect.github.com/pyo3/pyo3/issues/5520">#5520</a>)</li> <li><a href="https://github.com/PyO3/pyo3/commit/b392013ca34bd1e27bc06f9f57b11583fcb21692"><code>b392013</code></a> ci: install lychee stable using <code>install-action</code> (<a href="https://redirect.github.com/pyo3/pyo3/issues/5528">#5528</a>)</li> <li><a href="https://github.com/PyO3/pyo3/commit/f32ed83e32dc822e3dc869d1c4517055ce6de35d"><code>f32ed83</code></a> fix PyPyModule_ExecDef, PyPyModule_FromDefAndSpec2 definitions (<a href="https://redirect.github.com/pyo3/pyo3/issues/5529">#5529</a>)</li> <li><a href="https://github.com/PyO3/pyo3/commit/02b54ebd6e005fd70c3a77aa53a114e5169e49d7"><code>02b54eb</code></a> make warning name distinct in warnings tests (<a href="https://redirect.github.com/pyo3/pyo3/issues/5532">#5532</a>)</li> <li><a href="https://github.com/PyO3/pyo3/commit/999ee8ab0fed19fff2f02466e93782e42a4caf94"><code>999ee8a</code></a> ci: enable more tests on 3.14t (<a href="https://redirect.github.com/pyo3/pyo3/issues/5524">#5524</a>)</li> <li><a href="https://github.com/PyO3/pyo3/commit/8f669e7af981df8d4a0c8ae2481f1590a94c947f"><code>8f669e7</code></a> attempt to improve unsupported Python version error (<a href="https://redirect.github.com/pyo3/pyo3/issues/5519">#5519</a>)</li> <li><a href="https://github.com/PyO3/pyo3/commit/012e095ea4fe0b1286bc445cc087ad1e12a01b45"><code>012e095</code></a> remove <code>ptr_from_ref</code> helpers (<a href="https://redirect.github.com/pyo3/pyo3/issues/5523">#5523</a>)</li> <li><a href="https://github.com/PyO3/pyo3/commit/f9e14fc44f0d98b6dca36d47d7da82e296e9443a"><code>f9e14fc</code></a> Use per-file-ignores for MD041 in guide/pyclass-parameters.md (<a href="https://redirect.github.com/pyo3/pyo3/issues/5526">#5526</a>)</li> <li><a href="https://github.com/PyO3/pyo3/commit/6f813b9d2fa1b9ee35d69f47bd7b778a031708eb"><code>6f813b9</code></a> docs: lint guide with <code>rumdl</code> (<a href="https://redirect.github.com/pyo3/pyo3/issues/5513">#5513</a>)</li> <li><a href="https://github.com/PyO3/pyo3/commit/e62b7ccfb83b59b415630c0bdd0d0e7fa3baaf44"><code>e62b7cc</code></a> soundness for capsule reference and name (<a href="https://redirect.github.com/pyo3/pyo3/issues/5474">#5474</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pyo3/pyo3/compare/v0.26.0...v0.27.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyo3&package-manager=cargo&previous-version=0.26.0&new-version=0.27.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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) </details>
2 parents c331454 + 8e1c559 commit fafd110

2 files changed

Lines changed: 11 additions & 11 deletions

File tree

Cargo.lock

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ dependencies = [
6565

6666
[[package]]
6767
name = "pyo3"
68-
version = "0.26.0"
68+
version = "0.27.0"
6969
source = "registry+https://github.com/rust-lang/crates.io-index"
70-
checksum = "7ba0117f4212101ee6544044dae45abe1083d30ce7b29c4b5cbdfa2354e07383"
70+
checksum = "fa8e48c12afdeb26aa4be4e5c49fb5e11c3efa0878db783a960eea2b9ac6dd19"
7171
dependencies = [
7272
"indoc",
7373
"libc",
@@ -82,28 +82,28 @@ dependencies = [
8282

8383
[[package]]
8484
name = "pyo3-build-config"
85-
version = "0.26.0"
85+
version = "0.27.0"
8686
source = "registry+https://github.com/rust-lang/crates.io-index"
87-
checksum = "4fc6ddaf24947d12a9aa31ac65431fb1b851b8f4365426e182901eabfb87df5f"
87+
checksum = "bc1989dbf2b60852e0782c7487ebf0b4c7f43161ffe820849b56cf05f945cee1"
8888
dependencies = [
8989
"target-lexicon",
9090
]
9191

9292
[[package]]
9393
name = "pyo3-ffi"
94-
version = "0.26.0"
94+
version = "0.27.0"
9595
source = "registry+https://github.com/rust-lang/crates.io-index"
96-
checksum = "025474d3928738efb38ac36d4744a74a400c901c7596199e20e45d98eb194105"
96+
checksum = "c808286da7500385148930152e54fb6883452033085bf1f857d85d4e82ca905c"
9797
dependencies = [
9898
"libc",
9999
"pyo3-build-config",
100100
]
101101

102102
[[package]]
103103
name = "pyo3-macros"
104-
version = "0.26.0"
104+
version = "0.27.0"
105105
source = "registry+https://github.com/rust-lang/crates.io-index"
106-
checksum = "2e64eb489f22fe1c95911b77c44cc41e7c19f3082fc81cce90f657cdc42ffded"
106+
checksum = "83a0543c16be0d86cf0dbf2e2b636ece9fd38f20406bb43c255e0bc368095f92"
107107
dependencies = [
108108
"proc-macro2",
109109
"pyo3-macros-backend",
@@ -113,9 +113,9 @@ dependencies = [
113113

114114
[[package]]
115115
name = "pyo3-macros-backend"
116-
version = "0.26.0"
116+
version = "0.27.0"
117117
source = "registry+https://github.com/rust-lang/crates.io-index"
118-
checksum = "100246c0ecf400b475341b8455a9213344569af29a3c841d29270e53102e0fcf"
118+
checksum = "2a00da2ce064dcd582448ea24a5a26fa9527e0483103019b741ebcbe632dcd29"
119119
dependencies = [
120120
"heck",
121121
"proc-macro2",

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ crate-type = ["cdylib",]
99

1010

1111
[dependencies]
12-
pyo3 = { version = "^0.26.0", features = ["extension-module"] }
12+
pyo3 = { version = "^0.27.0", features = ["extension-module"] }

0 commit comments

Comments
 (0)