iddohau / rust-strings

Extracting strings from binary data
MIT License
6 stars 1 forks source link

Bump pyo3 from 0.21.2 to 0.22.2 #78

Open dependabot[bot] opened 1 month ago

dependabot[bot] commented 1 month ago

Bumps pyo3 from 0.21.2 to 0.22.2.

Release notes

Sourced from pyo3's releases.

PyO3 0.22.2

This release contains some minor reliability fixes building upon PyO3 0.22.1.

As PyO3 is still working on supporting freethreaded Python (upcoming in 3.13), support has been gated behind an UNSAFE_PYO3_BUILD_FREE_THREADED=1 environment variable to avoid unsuspecting users running into broken builds.

Packages built for the abi3 stable ABI will now use FFI functions for refcounting instead of inline reference count modifications on all versions of the stable ABI (previously only abi3 builds for 3.12 and up would use FFI functions). This helps mitigate interactions of old versions of the stable ABI with future CPython releases which do more complex reference counting (e.g. immortal objects, freethreaded reference counting).

The #[pymodule] declarative module now supports directly receiving options. (E.g. #[pymodule(name = "foo")], which would previously have been written as two attributes #[pymodule] #[pyo3(name = "foo")].)

A compile error on Rust 1.78 related to use of c"" literals has been fixed.

Thank you to the following contributors for the improvements:

@​davidhewitt @​FlickerSoul @​gi0baro @​Icxolu @​MatthijsKok @​styvane

PyO3 0.22.1

This patch release improves some cases related to new functionality in PyO3 0.22.

PartialEq<bool> has been added for Bound<'py, PyBool>.

The #[pyo3(submodule)] attribute has been added for declarative modules to stop submodules from generating an external C symbol for importing the submodule directly (which is typically never used). Declarative modules will also now correctly add items annotated with full-path attributes like #[pyo3::prelude::pyfunction].

The #[pyclass(eq)] option will no longer raise a TypeError on comparison against types not in the signature.

A #[setter] in #[pymethods] with an Option<T> input will no longer raise a deprecation warning.

A regression has been fixed in conversions for 128-bit integers on big-endian platforms.

Thank you to the following contributors for the improvements:

@​alex @​davidhewitt @​jatoben @​kylebarron @​musicinmybrain @​ngoldbaum @​Owen-CH-Leung

PyO3 0.22.0

This release introduces support for Python 3.13. Please note that Python 3.13 is still in beta, and while breaking changes are not expected it is very possible that code compiled against Python 3.13 beta versions will be incompatible with the final 3.13 release later in the year.

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

PyO3's deferred reference counting used to implement Clone for Py<T> without the global interpreter lock has been demonstrated to be impossible to implement safely in the general case and has consequently been changed to panic instead of deferring when cloning Py<T> without the GIL being held. Given the nature of panics inside Clone operations being a potential footgun, this implementation has been moved behind the opt-in py-clone feature.

... (truncated)

Changelog

Sourced from pyo3's changelog.

[0.22.2] - 2024-07-17

Packaging

  • Require opt-in to freethreaded Python using the UNSAFE_PYO3_BUILD_FREE_THREADED=1 environment variable (it is not yet supported by PyO3). #4327

Changed

  • Use FFI function calls for reference counting on all abi3 versions. #4324
  • #[pymodule(...)] now directly accepts all relevant #[pyo3(...)] options. #4330

Fixed

  • Fix compile failure in declarative #[pymodule] under presence of #![no_implicit_prelude]. #4328
  • Fix compile failure due to c-string literals on Rust < 1.79. #4353

[0.22.1] - 2024-07-06

Added

  • Add #[pyo3(submodule)] option for declarative #[pymodule]s. #4301
  • Implement PartialEq<bool> for Bound<'py, PyBool>. #4305

Fixed

  • Return NotImplemented instead of raising TypeError from generated equality method when comparing different types. #4287
  • Handle full-path #[pyo3::prelude::pymodule] and similar for #[pyclass] and #[pyfunction] in declarative modules.#4288
  • Fix 128-bit int regression on big-endian platforms with Python <3.13. #4291
  • Stop generating code that will never be covered with declarative modules. #4297
  • Fix invalid deprecation warning for trailing optional on #[setter] function. #4304

[0.22.0] - 2024-06-24

Packaging

  • Update heck dependency to 0.5. #3966
  • Extend range of supported versions of chrono-tz optional dependency to include version 0.10. #4061
  • Update MSRV to 1.63. #4129
  • Add optional num-rational feature to add conversions with Python's fractions.Fraction. #4148
  • Support Python 3.13. #4184

Added

  • Add PyWeakref, PyWeakrefReference and PyWeakrefProxy. #3835
  • Support #[pyclass] on enums that have tuple variants. #4072
  • Add support for scientific notation in Decimal conversion. #4079
  • Add pyo3_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
  • Add #[pyo3(constructor = (...))] to customize the generated constructors for complex enum variants. #4158

... (truncated)

Commits
  • 92b0f15 release: 0.22.2
  • da9f52e only emit c-string literals on Rust 1.79 and later (#4352) (#4353)
  • 3d7e5a3 chore: update ruff configuration to resolve deprecation warning (#4346)
  • e2ebb72 use FFI calls for refcounting on all abi3 versions (#4324)
  • 7e0fc30 allow #[pymodule(...)] to accept all relevant #[pyo3(...)] options (#4330)
  • 6317570 remove BuildFlag member to avoid breaking change in patch
  • 7fed7c3 Prevent building in GIL-less environment (#4327)
  • d99fc06 docs: fixups to 0.22 migration guide (#4332)
  • 613a70b docs: use versioned links from docs to guide (#4331)
  • b50f1c3 ci: check minimal-versions on MSRV feature powerset (#4273)
  • Additional commits viewable in compare view


Dependabot compatibility score

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 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)