ermakov-oleg / serpyco-rs

Fast Python dataclasses serialization
MIT License
30 stars 2 forks source link

Bump pyo3-build-config from 0.21.2 to 0.22.1 #158

Closed dependabot[bot] closed 3 months ago

dependabot[bot] commented 3 months ago

Bumps pyo3-build-config from 0.21.2 to 0.22.1.

Release notes

Sourced from pyo3-build-config's releases.

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.

Other particularly notable changes include:

  • The #[pyclass] macro now has additional options #[pyclass(eq, ord, hash)] to automatically generate Python implementations for equality, ordering and hashing based upon the Rust PartialEq, PartialOrd and Hash traits. This can ensure consistency and reduce boilerplate compared to implementing __eq__, __hash__ and so on manually.
  • The experimental-declarative-modules feature to support #[pymodule] on Rust mod items has been stabilised (and the feature flag removed). The existing implementation of #[pymodule] on fn items is still present but soft-deprecated; in the future new features will likely be added only to declarative modules, and the fn modules may eventually be deprecated and removed.
  • The GIL Refs API deprecation started in PyO3 0.21 continues with all related APIs now being gated behind the gil-refs feature, and unconditionally deprecated. In PyO3 0.23 these APIs are expected to be removed.

There have been numerous other smaller improvements, changes and fixes. For full details see the CHANGELOG.

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:

@​adamreichold @​alex @​aneeshusa @​birkenfeld @​blmarket @​Cheukting @​cmpute @​codeguru42 @​Databean

... (truncated)

Changelog

Sourced from pyo3-build-config's changelog.

[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
  • Add PyType::module, which always matches Python __module__. #4196
  • Add PyType::fully_qualified_name which matches the "fully qualified name" defined in PEP 737. #4196
  • Add PyTypeMethods::mro and PyTypeMethods::bases. #4197
  • Add #[pyclass(ord)] to implement ordering based on PartialOrd. #4202
  • Implement ToPyObject and IntoPy<PyObject> for PyBackedStr and PyBackedBytes. #4205
  • Add #[pyclass(hash)] option to implement __hash__ in terms of the Hash implementation #4206
  • Add #[pyclass(eq)] option to generate __eq__ based on PartialEq, and #[pyclass(eq_int)] for simple enums to implement equality based on their discriminants. #4210
  • Implement From<Bound<'py, T>> for PyClassInitializer<T>. #4214
  • Add as_super methods to PyRef and PyRefMut for accesing the base class by reference. #4219
  • Implement PartialEq<str> for Bound<'py, PyString>. #4245
  • Implement PyModuleMethods::filename on PyPy. #4249
  • Implement PartialEq<[u8]> for Bound<'py, PyBytes>. #4250
  • Add pyo3_ffi::c_str macro to create &'static CStr on Rust versions which don't have 1.77's c"" literals. #4255
  • Support bool conversion with numpy 2.0's numpy.bool type #4258
  • Add PyAnyMethods::{bitnot, matmul, floor_div, rem, divmod}. #4264

Changed

... (truncated)

Commits
  • 59c4fa3 release: 0.22.1 (#4314)
  • 9afc38a fixes #4285 -- allow full-path to pymodule with nested declarative modules (#...
  • 5860c4f implement PartialEq for Pybool & bool (#4305)
  • 0af0227 fix deprecation warning for trailing optional on #[setter] functions (#4304)
  • ee9123a Fix link in the contribution guide (#4306)
  • ccd0447 refs #4286 -- allow setting submodule on declarative pymodules (#4301)
  • f3603a0 Avoid generating functions that are only ever const evaluated with declarativ...
  • 872bd7e Add pyo3-arrow to README (#4302)
  • 8f7450e Fix 128-bit int regression on big-endian with Python <3.13 (#4291)
  • 7c2f5e8 Don't raise TypeError from generated equality method (#4287)
  • 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)
codspeed-hq[bot] commented 3 months ago

CodSpeed Performance Report

Merging #158 will not alter performance

Comparing dependabot/cargo/pyo3-build-config-0.22.1 (42d3fa7) with master (9d70a7b)

Summary

✅ 37 untouched benchmarks

dependabot[bot] commented 3 months ago

Superseded by #161.