Instagram / LibCST

A concrete syntax tree parser and serializer library for Python that preserves many aspects of Python's abstract syntax tree
https://libcst.readthedocs.io/
Other
1.56k stars 192 forks source link

Bump pyo3 from 0.20.2 to 0.23.1 in /native #1245

Open dependabot[bot] opened 1 week ago

dependabot[bot] commented 1 week ago

Bumps pyo3 from 0.20.2 to 0.23.1.

Release notes

Sourced from pyo3's releases.

PyO3 0.23.1

This is a re-release of PyO3 0.23.0 with corrections to fix docs.rs builds.

Thanks @​yotamofek for the reports & fixes!

PyO3 0.23.0

This release is a significant iteration to both PyO3's internals and API with two major enhancements:

  • Support for Python 3.13t, also known as "free-threaded Python".
  • A new trait IntoPyObject, which unifies the existing to-Python conversion traits IntoPy and ToPyObject while also allowing new optimizations and proper error handling. The new trait also has a #[derive(IntoPyObject)] macro.

While both of these new features have undergone extensive design, it will be no surprise to find teething issues. All feedback is encouraged so that we can follow up with iterative improvements for these new features in future releases.

On top of the major additions, the removal of the "GIL Refs" API deprecated in PyO3 0.21 is now complete. A number of PyO3 APIs have had new simpler names introduced now that the PyO3 API is no longer in a migration phase (for example PyTuple::new_bound is now simplified to PyTuple::new).

Beyond that, PyO3 0.23 contains nearly 5 months of incremental improvements, bug fixes and smaller features that have been implemented while the major work of this release was ongoing.

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:

@​abrisco @​adamcavendish @​ahlinc @​akuhnregnier @​alex @​attack68 @​birkenfeld @​Brogolem35 @​bschoenmaeckers @​ChayimFriedman2 @​Cheukting @​csernazs @​davidhewitt @​deedy5 @​dependabot[bot] @​digitalsentinel @​exg @​FlickerSoul @​gi0baro @​glevco @​Icxolu @​jakelishman @​jeff-k @​jonaspleyer @​JRRudy1 @​KLMatlock @​konstin @​LilyFoote @​MatthijsKok @​Mottl

... (truncated)

Changelog

Sourced from pyo3's changelog.

[0.23.1] - 2024-11-16

Re-release of 0.23.0 with fixes to docs.rs build.

[0.23.0] - 2024-11-15

Packaging

  • Drop support for PyPy 3.7 and 3.8. #4582
  • Extend range of supported versions of hashbrown optional dependency to include version 0.15. #4604
  • Bump minimum version of eyre optional dependency to 0.6.8. #4617
  • Bump minimum version of hashbrown optional dependency to 0.14.5. #4617
  • Bump minimum version of indexmap optional dependency to 2.5.0. #4617
  • Bump minimum version of num-complex optional dependency to 0.4.6. #4617
  • Bump minimum version of chrono-tz optional dependency to 0.10. #4617
  • Support free-threaded Python 3.13t. #4588

Added

  • Add IntoPyObject (fallible) conversion trait to convert from Rust to Python values. #4060
  • Add #[pyclass(str="<format string>")] option to generate __str__ based on a Display implementation or format string. #4233
  • Implement PartialEq for Bound<'py, PyInt> with u8, u16, u32, u64, u128, usize, i8, i16, i32, i64, i128 and isize. #4317
  • Implement PartialEq<f64> and PartialEq<f32> for Bound<'py, PyFloat>. #4348
  • Add as_super and into_super methods for Bound<T: PyClass>. #4351
  • Add FFI definitions PyCFunctionFast and PyCFunctionFastWithKeywords #4415
  • Add FFI definitions for PyMutex on Python 3.13 and newer. #4421
  • Add PyDict::locked_for_each to iterate efficiently on freethreaded Python. #4439
  • Add FFI definitions PyObject_GetOptionalAttr, PyObject_GetOptionalAttrString, PyObject_HasAttrWithError, PyObject_HasAttrStringWithError, Py_CONSTANT_* constants, Py_GetConstant, Py_GetConstantBorrowed, and PyType_GetModuleByDef on Python 3.13 and newer. #4447
  • Add FFI definitions for the Python critical section API available on Python 3.13 and newer. #4477
  • Add derive macro for IntoPyObject. #4495
  • Add Borrowed::as_ptr. #4520
  • Add FFI definition for PyImport_AddModuleRef. #4529
  • Add PyAnyMethods::try_iter. #4553
  • Add pyo3::sync::with_critical_section, a wrapper around the Python Critical Section API added in Python 3.13. #4587
  • Add #[pymodule(gil_used = false)] option to declare that a module supports the free-threaded build. #4588
  • Add PyModule::gil_used method to declare that a module supports the free-threaded build. #4588
  • Add FFI definition PyDateTime_CAPSULE_NAME. #4634
  • Add PyMappingProxy type to represent the mappingproxy Python class. #4644
  • Add FFI definitions PyList_Extend and PyList_Clear. #4667
  • Add derive macro for IntoPyObjectRef. #4674
  • Add pyo3::sync::OnceExt and pyo3::sync::OnceLockExt traits. #4676

Changed

  • Prefer IntoPyObject over IntoPy<Py<PyAny>>> for #[pyfunction] and #[pymethods] return types. #4060
  • Report multiple errors from #[pyclass] and #[pyo3(..)] attributes. #4243
  • Nested declarative #[pymodule] are automatically treated as submodules (no PyInit_ entrypoint is created). #4308
  • Deprecate PyAnyMethods::is_ellipsis (Py::is_ellipsis was deprecated in PyO3 0.20). #4322
  • Deprecate PyLong in favor of PyInt. #4347
  • Rename IntoPyDict::into_py_dict_bound to IntoPyDict::into_py_dict. #4388

... (truncated)

Commits


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)