⬆️ deps: Update dependencies (non-major)#78
Merged
renovate[bot] merged 1 commit intomainfrom Feb 9, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.27.0→0.28.0==0.14.14→==0.15.0Release Notes
pyo3/pyo3 (pyo3)
v0.28.0Compare Source
Packaging
quoteversion to 1.0.37. #5531memoffsetdependency. #5545target-lexicondependency to 0.13.3. #5571indocandunindentdependencies. #5608Added
__init__support in#[pymethods]. #4951PySuperon PyPy, GraalPy and ABI3 #4951PyString::from_fmtandpy_format!macro. #5199#[pyclass(new = "from_fields")]option. #5421pyo3::buffer::PyUntypedBuffer, a type-erased form ofPyBuffer<T>. #5458PyBytes::new_with_writer#5517PyClass::NAME. #5579pyo3_build_config::add_libpython_rpath_link_args. #5624PyBackedStr::clone_refandPyBackedBytes::clone_refmethods. #5654PyCapsule::new_with_pointerandPyCapsule::new_with_pointer_and_destructorfor creating capsules with raw pointers. #5689#[deleter]attribute to implement property deleters in#[methods]. #5699IntoPyObjectandFromPyObjectimplementations foruuid::NonNilUuid. #5707PyBackedStr::as_strandPyBackedStr::as_py_strmethods. #5723PyDict, exceptions, ...) when building for abi3 on Python 3.12+. #5733PyListwhen building for Python 3.12+. #5734PyEval_GetFrameBuiltins,PyEval_GetFrameGlobalsandPyEval_GetFrameLocalson Python 3.13 and up. #5590PyObject_New,PyObject_NewVar,PyObject_GC_Resize,PyObject_GC_New, andPyObject_GC_NewVar. #5591Py_BEGIN_CRITICAL_SECTION_MUTEXandPy_BEGIN_CRITICAL_SECTION_MUTEX2. #5642PyDict_GetItemStringRefon Python 3.13 and up. #5659PyIter_NextItemon Python 3.14 and up, andcompat::PyIter_NextItemfor older versions. #5661PyThreadState_GetInterpreterandPyThreadState_GetIDon Python 3.9+,PyThreadState_EnterTracingandPyThreadState_LeaveTracingon Python 3.11+,PyThreadState_GetUncheckedon Python 3.13+, andcompat::PyThreadState_GetUnchecked. #5711PyImport_ImportModuleAttrandPyImport_ImportModuleAttrStringon Python 3.14+. #5737PyABIInfoandPyModExportAPIs available in Python 3.15. #5746experimental-inspect:@typing.finalon final classes. #5552asynckeyword for async functions. #5731Changed
sys.unraisablehookinstead ofPyErr_Printif panicking on null FFI pointer inBound,BorrowedandPyconstructors. #5496#[pymodule]. #5525FromPyObjectfor#[pyclass]. #5550PyTypeInfo::NAMEandPyTypeInfo::MODULE. #5579Py<T>::from_{owned,borrowed}[or_{err,opt}]constructors from raw pointer. #5585PyEval_AcquireLockandPyEval_ReleaseLock. #5590'py: 'abound inPy::extract. #5594T: PyTypeCheckbound to theIntoPyObjectimplementations onBound<T>,Borrowed<T>andPy<T>. #5640with_critical_sectionandwith_critical_section2functions are moved topyo3::sync::critical_section. #5642PyIter_NextIteminPyIterator::nextimplementation. #5661IntoPyObjectfor simple enums now uses a singleton value, allowing identity (pythonis) comparisons. #5665Sequence[int]inFromPyObjectonCow<[u8]>and change the error type toPyErr. #5667asyncpymethods now borrowselfonly for the duration of awaiting the future, not the entire method call. #5684CastErrorformatted message to directly describe the "is not an instance of" failure condition. #5693#[inline]hints to many methods onPyBackedStr. #5723BoundSetIteratorandBoundFrozenSetIterator. #5725PyIterator::size_hinton abi3 builds (previously was only on unlimited API builds). #5727PyImport_ImportModuleNoBlock(deprecated in Python 3.13). #5737#[new]can now return arbitrary Python objects. #5739experimental-inspect:TypeHintand make use of it to encode type hint annotations. #5438PyType{Info,Check}::TYPE_INFOintoPyType{Info,Check}::TYPE_HINT. #5438 #5619 #5641_typeshed.Incompleteinstead oftyping.Anyas default type hint, to make it easier to spot incomplete trait implementations. #5744Removed
PyEval_GetCallStats(removed from CPython in Python 3.7). #5590PyEval_AcquireLockandPyEval_ReleaseLockon Python 3.13 and up. #5590_PyObject_New,_PyObject_NewVar,_PyObject_GC_Resize,_PyObject_GC_New, and_PyObject_GC_NewVar. #5591_PyDict_SetItem_KnownHash,_PyDict_Next,_PyDict_NewPresized,_PyDict_Contains_KnownHash, and_PyDict_Contains. #5659_PyFrameEvalFunction,_PyInterpreterState_GetEvalFrameFuncand_PyInterpreterState_SetEvalFrameFunc. #5711_PyImport_IsInitialized,_PyImport_SetModule,_PyImport_SetModuleString,_PyImport_AcquireLock,_PyImport_ReleaseLock,_PyImport_FindBuiltin,_PyImport_FindExtensionObject,_PyImport_FixupBuiltin, and_PyImport_FixupExtensionObject. #5737Fixed
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. #5375PyIteratorwhen callingsize_hint#5604IntoPyObjectoutput type ofPyBackedStrto bePyString, notPyAny. #5655asyncfunctions to returnNonerather than empty tuple(). #5685#[pyclass]types (e.g.&MyClass) as arguments to async#[pyfunction]s. #5725PyMemberDescrObject.d_memberto usePyMemberDeffor Python 3.11+ (was incorrectlyPyGetSetDef). #5647PyThreadState_GetFrameavailable with abi3 in 3.10+. #5711PyImport_GetModuleon PyPy. #5737experimental-inspect:__new__return type to be the built object type and notNone. #5555PyResult<()>(must beNoneand nottuple) #5674astral-sh/ruff (ruff)
v0.15.0Compare 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
N803for all parameters in this function:See the documentation for more details.
The
ruff:alpineDocker image is now based on Alpine 3.23 (up from 3.21).The
ruff:debianandruff:debian-slimDocker 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:
blocking-http-call-httpx-in-async-function(
ASYNC212)blocking-path-method-in-async-function(
ASYNC240)blocking-input-in-async-function(
ASYNC250)map-without-explicit-strict(
B912)if-exp-instead-of-or-operator(
FURB110)single-item-membership-test(
FURB171)missing-maxsplit-arg(PLC0207)unnecessary-lambda(PLW0108)unnecessary-empty-iterable-within-deque-call(
RUF037)in-empty-collection(RUF060)legacy-form-pytest-raises(
RUF061)non-octal-permissions(RUF064)invalid-rule-code(RUF102)invalid-suppression-comment(
RUF103)unmatched-suppression-comment(
RUF104)replace-str-enum(UP042)The following behaviors have been stabilized:
--output-formatflag is now respected when running Ruff in--watchmode, and thefulloutput 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 considerstyping.Optionalwhen searching for duplicate union members.split-static-string(SIM905) now offers an autofix when themaxsplitargument is provided, even without asepargument.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:
them break across multiple lines (#21385)
exceptclauses will now be removed on Python 3.14 andlater (#20768)
ascaptures inmatchstatements (#21176)Preview features
Apply formatting to Markdown code blocks (#22470, #22990, #22996)
See the documentation for more details.
Bug fixes
Rule changes
fix_titlesub-diagnostic appears (#23044)FastAPI] Add sub-diagnostic explaining why a fix was unavailable (FAST002) (#22565)flake8-annotations] Don't suggestNoReturnfor functions raisingNotImplementedError(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 addabc.ABCif already present (FURB180) (#22234)refurb] Make fix unsafe if it deletes comments (FURB110) (#22768)ruff] Add sub-diagnostics with permissions (RUF064) (#22972)Server
didOpeninstead of.ipynbfile extension (#22810)CLI
--colorCLI option to force colored output (#22806)Documentation
-stdin convention in CLI help text (#22817)refurb] Change example tore.searchwith^anchor (FURB167) (#22984)pydocstyle] Clarify which quote styles are allowed (D300) (#22825)flake8-bugbear] Improve docs forno-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.
This PR was generated by Mend Renovate. View the repository job log.