Skip to content

⬆️ deps: Update dependencies (non-major)#78

Merged
renovate[bot] merged 1 commit intomainfrom
renovate/dependencies-(non-major)
Feb 9, 2026
Merged

⬆️ deps: Update dependencies (non-major)#78
renovate[bot] merged 1 commit intomainfrom
renovate/dependencies-(non-major)

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Feb 9, 2026

This PR contains the following updates:

Package Type Update Change Age Confidence
pyo3 dependencies minor 0.27.00.28.0 age confidence
ruff (source, changelog) project.optional-dependencies minor ==0.14.14==0.15.0 age confidence

Release Notes

pyo3/pyo3 (pyo3)

v0.28.0

Compare Source

Packaging
  • Bump MSRV to Rust 1.83. #​5531
  • Bump minimum supported quote version to 1.0.37. #​5531
  • Bump supported GraalPy version to 25.0. #​5542
  • Drop memoffset dependency. #​5545
  • Support for free-threaded Python is now opt-out rather than opt-in. #​5564
  • Bump target-lexicon dependency to 0.13.3. #​5571
  • Drop indoc and unindent dependencies. #​5608
Added
  • Add __init__ support in #[pymethods]. #​4951
  • Expose PySuper on PyPy, GraalPy and ABI3 #​4951
  • Add PyString::from_fmt and py_format! macro. #​5199
  • Add #[pyclass(new = "from_fields")] option. #​5421
  • Add pyo3::buffer::PyUntypedBuffer, a type-erased form of PyBuffer<T>. #​5458
  • Add PyBytes::new_with_writer #​5517
  • Add PyClass::NAME. #​5579
  • Add pyo3_build_config::add_libpython_rpath_link_args. #​5624
  • Add PyBackedStr::clone_ref and PyBackedBytes::clone_ref methods. #​5654
  • Add PyCapsule::new_with_pointer and PyCapsule::new_with_pointer_and_destructor for creating capsules with raw pointers. #​5689
  • Add #[deleter] attribute to implement property deleters in #[methods]. #​5699
  • Add IntoPyObject and FromPyObject implementations for uuid::NonNilUuid. #​5707
  • Add PyBackedStr::as_str and PyBackedStr::as_py_str methods. #​5723
  • Add support for subclassing native types (PyDict, exceptions, ...) when building for abi3 on Python 3.12+. #​5733
  • Add support for subclassing PyList when building for Python 3.12+. #​5734
  • FFI definitions:
    • Add FFI definitions PyEval_GetFrameBuiltins, PyEval_GetFrameGlobals and PyEval_GetFrameLocals on Python 3.13 and up. #​5590
    • Add FFI definitions PyObject_New, PyObject_NewVar, PyObject_GC_Resize, PyObject_GC_New, and PyObject_GC_NewVar. #​5591
    • Added FFI definitions and an unsafe Rust API wrapping Py_BEGIN_CRITICAL_SECTION_MUTEX and Py_BEGIN_CRITICAL_SECTION_MUTEX2. #​5642
    • Add FFI definition PyDict_GetItemStringRef on Python 3.13 and up. #​5659
    • Add FFI definition PyIter_NextItem on Python 3.14 and up, and compat::PyIter_NextItem for older versions. #​5661
    • Add FFI definitions PyThreadState_GetInterpreter and PyThreadState_GetID on Python 3.9+, PyThreadState_EnterTracing and PyThreadState_LeaveTracing on Python 3.11+, PyThreadState_GetUnchecked on Python 3.13+, and compat::PyThreadState_GetUnchecked. #​5711
    • Add FFI definitions PyImport_ImportModuleAttr and PyImport_ImportModuleAttrString on Python 3.14+. #​5737
    • Add FFI definitions for the PyABIInfo and PyModExport APIs available in Python 3.15. #​5746
  • experimental-inspect:
    • Emit base classes. #​5331
    • Emit @typing.final on final classes. #​5552
    • Generate nested classes for complex enums. #​5708
    • Emit async keyword for async functions. #​5731
Changed
  • Call sys.unraisablehook instead of PyErr_Print if panicking on null FFI pointer in Bound, Borrowed and Py constructors. #​5496
  • Use PEP-489 multi-phase initialization for #[pymodule]. #​5525
  • Deprecate implicit by-value implementation of FromPyObject for #[pyclass]. #​5550
  • Deprecate PyTypeInfo::NAME and PyTypeInfo::MODULE. #​5579
  • Deprecate Py<T>::from_{owned,borrowed}[or_{err,opt}] constructors from raw pointer. #​5585
  • Deprecate FFI definitions PyEval_AcquireLock and PyEval_ReleaseLock. #​5590
  • Relax 'py: 'a bound in Py::extract. #​5594
  • Add a T: PyTypeCheck bound to the IntoPyObject implementations on Bound<T>, Borrowed<T> and Py<T>. #​5640
  • The with_critical_section and with_critical_section2 functions are moved to pyo3::sync::critical_section. #​5642
  • Use PyIter_NextItem in PyIterator::next implementation. #​5661
  • IntoPyObject for simple enums now uses a singleton value, allowing identity (python is) comparisons. #​5665
  • Allow any Sequence[int] in FromPyObject on Cow<[u8]> and change the error type to PyErr. #​5667
  • async pymethods now borrow self only for the duration of awaiting the future, not the entire method call. #​5684
  • Change CastError formatted message to directly describe the "is not an instance of" failure condition. #​5693
  • Add #[inline] hints to many methods on PyBackedStr. #​5723
  • Remove redundant internal counters from BoundSetIterator and BoundFrozenSetIterator. #​5725
  • Implement PyIterator::size_hint on abi3 builds (previously was only on unlimited API builds). #​5727
  • Deprecate FFI definition PyImport_ImportModuleNoBlock (deprecated in Python 3.13). #​5737
  • #[new] can now return arbitrary Python objects. #​5739
  • experimental-inspect:
    • Introduce TypeHint and make use of it to encode type hint annotations. #​5438
    • Rename PyType{Info,Check}::TYPE_INFO into PyType{Info,Check}::TYPE_HINT. #​5438 #​5619 #​5641
    • Fill annotations on function arguments and return values for all types supported natively by PyO3. #​5634 #​5637 #​5639
    • Use _typeshed.Incomplete instead of typing.Any as default type hint, to make it easier to spot incomplete trait implementations. #​5744
    • Use general Python expression syntax for type hints. #​5671
Removed
  • Remove all functionality deprecated in PyO3 0.25 and 0.26. #​5740
  • FFI definitions:
    • Remove FFI definition PyEval_GetCallStats (removed from CPython in Python 3.7). #​5590
    • Remove FFI definitions PyEval_AcquireLock and PyEval_ReleaseLock on Python 3.13 and up. #​5590
    • Remove private FFI definitions _PyObject_New, _PyObject_NewVar, _PyObject_GC_Resize, _PyObject_GC_New, and _PyObject_GC_NewVar. #​5591
    • Remove private FFI definitions _PyDict_SetItem_KnownHash, _PyDict_Next, _PyDict_NewPresized, _PyDict_Contains_KnownHash, and _PyDict_Contains. #​5659
    • Remove private FFI definitions _PyFrameEvalFunction, _PyInterpreterState_GetEvalFrameFunc and _PyInterpreterState_SetEvalFrameFunc. #​5711
    • Remove private FFI definitions _PyImport_IsInitialized, _PyImport_SetModule, _PyImport_SetModuleString, _PyImport_AcquireLock, _PyImport_ReleaseLock, _PyImport_FindBuiltin, _PyImport_FindExtensionObject, _PyImport_FixupBuiltin, and _PyImport_FixupExtensionObject. #​5737
Fixed
  • Fix PyModuleMethods::add_submodule() to use the last segment of the submodule name as the attribute name on the parent module instead of using the full name. #​5375
  • Link with libpython for Cygwin extension modules. #​5571
  • Link against the limited API DLL for Cygwin when abi3 is used. #​5574
  • Handle errors in PyIterator when calling size_hint #​5604
  • Link with libpython for iOS extension modules. #​5605
  • Correct IntoPyObject output type of PyBackedStr to be PyString, not PyAny. #​5655
  • Fix async functions to return None rather than empty tuple (). #​5685
  • Fix compile error when using references to #[pyclass] types (e.g. &MyClass) as arguments to async #[pyfunction]s. #​5725
  • FFI definitions:
    • Fix FFI definition PyMemberDescrObject.d_member to use PyMemberDef for Python 3.11+ (was incorrectly PyGetSetDef). #​5647
    • Mark FFI definition PyThreadState_GetFrame available with abi3 in 3.10+. #​5711
    • Fix FFI definition PyImport_GetModule on PyPy. #​5737
  • experimental-inspect:
    • fix __new__ return type to be the built object type and not None. #​5555
    • fix imports of decorators. #​5618
    • fix the return type annotation of PyResult<()> (must be None and not tuple) #​5674
astral-sh/ruff (ruff)

v0.15.0

Compare Source

Released on 2026-02-03.

Check out the blog post for a migration
guide and overview of the changes!

Breaking changes
  • Ruff now formats your code according to the 2026 style guide. See the formatter section below or in the blog post for a detailed list of changes.

  • The linter now supports block suppression comments. For example, to suppress N803 for all parameters in this function:

    # ruff: disable[N803]
    def foo(
        legacyArg1,
        legacyArg2,
        legacyArg3,
        legacyArg4,
    ): ...
    # ruff: enable[N803]

    See the documentation for more details.

  • The ruff:alpine Docker image is now based on Alpine 3.23 (up from 3.21).

  • The ruff:debian and ruff:debian-slim Docker images are now based on Debian 13 "Trixie" instead of Debian 12 "Bookworm."

  • Binaries for the ppc64 (64-bit big-endian PowerPC) architecture are no longer included in our releases. It should still be possible to build Ruff manually for this platform, if needed.

  • Ruff now resolves all extended configuration files before falling back on a default Python version.

Stabilization

The following rules have been stabilized and are no longer in preview:

The following behaviors have been stabilized:

  • The --output-format flag is now respected when running Ruff in --watch mode, and the full output format is now used by default, matching the regular CLI output.
  • builtin-attribute-shadowing (A003) now detects the use of shadowed built-in names in additional contexts like decorators, default arguments, and other attribute definitions.
  • duplicate-union-member (PYI016) now considers typing.Optional when searching for duplicate union members.
  • split-static-string (SIM905) now offers an autofix when the maxsplit argument is provided, even without a sep argument.
  • dict-get-with-none-default (SIM910) now applies to more types of key expressions.
  • super-call-with-parameters (UP008) now has a safe fix when it will not delete comments.
  • unnecessary-default-type-args (UP043) now applies to stub (.pyi) files on Python versions before 3.13.
Formatter

This release introduces the new 2026 style guide, with the following changes:

  • Lambda parameters are now kept on the same line and lambda bodies will be parenthesized to let
    them break across multiple lines (#​21385)
  • Parentheses around tuples of exceptions in except clauses will now be removed on Python 3.14 and
    later (#​20768)
  • A single empty line is now permitted at the beginning of function bodies (#​21110)
  • Parentheses are avoided for long as captures in match statements (#​21176)
  • Extra spaces between escaped quotes and ending triple quotes can now be omitted (#​17216)
  • Blank lines are now enforced before classes with decorators in stub files (#​18888)
Preview features
Bug fixes
  • Fix suppression indentation matching (#​22903)
Rule changes
  • Customize where the fix_title sub-diagnostic appears (#​23044)
  • [FastAPI] Add sub-diagnostic explaining why a fix was unavailable (FAST002) (#​22565)
  • [flake8-annotations] Don't suggest NoReturn for functions raising NotImplementedError (ANN201, ANN202, ANN205, ANN206) (#​21311)
  • [pyupgrade] Make fix unsafe if it deletes comments (UP017) (#​22873)
  • [pyupgrade] Make fix unsafe if it deletes comments (UP020) (#​22872)
  • [pyupgrade] Make fix unsafe if it deletes comments (UP033) (#​22871)
  • [refurb] Do not add abc.ABC if already present (FURB180) (#​22234)
  • [refurb] Make fix unsafe if it deletes comments (FURB110) (#​22768)
  • [ruff] Add sub-diagnostics with permissions (RUF064) (#​22972)
Server
  • Identify notebooks by LSP didOpen instead of .ipynb file extension (#​22810)
CLI
  • Add --color CLI option to force colored output (#​22806)
Documentation
  • Document - stdin convention in CLI help text (#​22817)
  • [refurb] Change example to re.search with ^ anchor (FURB167) (#​22984)
  • Fix link to Sphinx code block directives (#​23041)
  • [pydocstyle] Clarify which quote styles are allowed (D300) (#​22825)
  • [flake8-bugbear] Improve docs for no-explicit-stacklevel (B028) (#​22538)
Other changes
Contributors

Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependencies label Feb 9, 2026
@renovate renovate bot merged commit fe958f9 into main Feb 9, 2026
16 checks passed
@renovate renovate bot deleted the renovate/dependencies-(non-major) branch February 9, 2026 04:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants