chore(deps): update python dev dependencies#356
Open
github-renovate-self-hosted wants to merge 1 commit intomasterfrom
Open
chore(deps): update python dev dependencies#356github-renovate-self-hosted wants to merge 1 commit intomasterfrom
github-renovate-self-hosted wants to merge 1 commit intomasterfrom
Conversation
Contributor
Author
|
8a60908 to
03ff4b8
Compare
arththebird
approved these changes
Oct 10, 2025
03ff4b8 to
40da5e8
Compare
arththebird
approved these changes
Oct 14, 2025
40da5e8 to
f2ebed8
Compare
arththebird
approved these changes
Oct 14, 2025
6546d86 to
6fa8118
Compare
92b17f9 to
d95d870
Compare
arththebird
approved these changes
Oct 28, 2025
77dd280 to
f94e290
Compare
arththebird
approved these changes
Oct 29, 2025
7134933 to
e2f2685
Compare
e2f25eb to
a63ef4e
Compare
0bfd081 to
fd3689a
Compare
6d3730b to
12ee41c
Compare
1b8deb5 to
0336b61
Compare
84fade3 to
2160bab
Compare
f2f619a to
987ea11
Compare
5f0a470 to
8c00382
Compare
544470f to
caade65
Compare
c5ac21e to
ce8d143
Compare
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:
37.11.0->37.12.01.16.5->1.18.43.2.4->3.5.01.18.2->1.20.22.9.10->2.9.121.2.0->1.3.07.0.0->7.1.00.14.0->0.15.124.30.3->4.53.0Release Notes
joke2k/faker (Faker)
v37.12.0Compare Source
python-greenlet/greenlet (greenlet)
v3.5.0Compare Source
==================
Remove the
atexitcallback. This callback caused greenlet APIsto become unavailable far too soon during interpreter shutdown. Now
they remain available while all
atexitcallbacks run. Sometimeafter
Py_IsFinalizingbecomes true, they may begin misbehaving.Because the order in which C extensions are finalized is undefined,
C extensions that are sensitive to this need to check the results of
that function before invoking greenlet APIs. As a convenience,
PyGreenlet_GetCurrentsets an exception and returnsNULLwhen this happens (and
greenlet.getcurrentbegins returningNone); other greenlet C API functions have undefined behaviour.Methods invoked directly on pre-existing
greenlet.greenletobjects will continue to function at least until the greenlet C
extension has been garbage collected and finalized.
See
PR 508 <https://github.com/python-greenlet/greenlet/pull/508>_.v3.4.0Compare Source
==================
Publish binary wheels for RiscV 64.
Fix multiple rare crash paths during interpreter shutdown.
Note that this now relies on the
atexitmodule, and introducessubtle API changes during interpreter shutdown (for example,
getcurrentis no longer available once theatexitcallback fires).See
PR #​499 <https://github.com/python-greenlet/greenlet/pull/499>_ by NicolasBouvrette.
Address the results of an automated code audit performed by
Daniel Diniz. This includes several minor correctness changes that
theoretically could have been crashing bugs, but typically only in
very rare circumstances.
See
PR 502 <https://github.com/python-greenlet/greenlet/pull/502>_.Fix several race conditions that could arise in free-threaded
builds when using greenlet objects from multiple threads, some of
which could lead to assertion failures or interpreter crashes.
See
issue 503 <https://github.com/python-greenlet/greenlet/issues/503>_, withthanks to Nitay Dariel and Daniel Diniz.
v3.3.2Compare Source
==================
interpreter shutdown. See
PR 495 <https://github.com/python-greenlet/greenlet/pull/495>_ by NicolasBouvrette.
v3.3.1Compare Source
==================
PR 487 by Rosen Penev <https://github.com/python-greenlet/greenlet/pull/487>_. Note thatthis is not a platform tested by this project's CI.
pyproject.tomlfile.This updates licensing information to use the modern
License-Expressionfield. SeePR 480 by mrbean-bremen <https://github.com/python-greenlet/greenlet/pull/480/>_.v3.3.0Compare Source
==================
Drop support for Python 3.9.
Switch to distributing manylinux_2_28 wheels instead of
manylinux2014 wheels. Likewise, switch from musllinux_1_1 to 1_2.
Add initial support for free-threaded builds of CPython 3.14. Due to
limitations, we do not distribute binary wheels for free-threaded
CPython on Windows. (Free-threaded CPython 3.13 may work, but is
untested and unsupported.)
.. caution::
Under some rare scenarios with free-threaded 3.14, the
interpreter may crash on accessing a variable or attribute or
when shutting down. If this happens, try disabling the
thread-local bytecode cache. See the greenlet documentation for
more details. See
PR 472 by T. Wouters <https://github.com/python-greenlet/greenlet/pull/472>_ for theinitial free-threaded support and a discussion of the current
known issues.
v3.2.5Compare Source
==================
.. note::
The 3.2.x series will be the last to support Python 3.9.
.. note::
No Windows wheels will be published for this version.
python/mypy (mypy)
v1.20.2Compare Source
v1.20.1Compare Source
dict.__or__typeshed change (Ivan Levkivskyi, PR 21186)type[T]in type calls (Shantanu, PR 21174)Anytyped variables (Shantanu, PR 21142)--warn-unused-configshould not be a strict flag (Ivan Levkivskyi, PR 21139)v1.20.0Compare Source
v1.19.1Compare Source
types.NoneTypein match cases (A5rocks, PR 20383)v1.19.0Compare Source
psycopg/psycopg2 (psycopg2)
v2.9.12Compare Source
v2.9.11Compare Source
pytest-dev/pytest-asyncio (pytest-asyncio)
v1.3.0: pytest-asyncio 1.3.0Compare Source
1.3.0 - 2025-11-10
Removed
Added
Notes for Downstream Packagers
pytest.Pytester.runpytest_subprocess. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (#1275)pytest-dev/pytest-cov (pytest-cov)
v7.1.0Compare Source
Fixed total coverage computation to always be consistent, regardless of reporting settings.
Previously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on
reporting options.
See
#​641 <https://github.com/pytest-dev/pytest-cov/issues/641>_.Improve handling of ResourceWarning from sqlite3.
The plugin adds warning filter for sqlite3
ResourceWarningunclosed database (since 6.2.0).It checks if there is already existing plugin for this message by comparing filter regular expression.
When filter is specified on command line the message is escaped and does not match an expected message.
A check for an escaped regular expression is added to handle this case.
With this fix one can suppress
ResourceWarningfrom sqlite3 from command line::pytest -W "ignore:unclosed database in <sqlite3.Connection object at:ResourceWarning" ...
Various improvements to documentation.
Contributed by Art Pelling in
#​718 <https://github.com/pytest-dev/pytest-cov/pull/718>_ and"vivodi" in
#​738 <https://github.com/pytest-dev/pytest-cov/pull/738>.Also closed
#​736 <https://github.com/pytest-dev/pytest-cov/issues/736>.Fixed some assertions in tests.
Contributed by in Markéta Machová in
#​722 <https://github.com/pytest-dev/pytest-cov/pull/722>_.Removed unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).
astral-sh/ruff (ruff)
v0.15.12Compare Source
Released on 2026-04-24.
Preview features
#ruff:file-ignorefile-level suppressions (#23599)#ruff:ignorelogical-line suppressions (#23404)airflow] Implementtask-branch-as-short-circuit(AIR004) (#23579)flake8-bugbear] Fixbreak/continuehandling inloop-iterator-mutation(B909) (#24440)pylint] FixPLC2701for type parameter scopes (#24576)Rule changes
pandas-vet] Suggest.arrayas well inPD011(#24805)CLI
Documentation
pylint] FixPLR0124description not to claim self-comparison always returns the same value (#24749)pyupgrade] Expand docs on reusableTypeVars and scoping (UP046) (#24153)Contributors
v0.15.11Compare Source
Released on 2026-04-16.
Preview features
ruff] IgnoreRUF029when function is decorated withasynccontextmanager(#24642)airflow] Implementairflow-xcom-pull-in-template-string(AIR201) (#23583)flake8-bandit] FixS103false positives and negatives in mask analysis (#24424)Bug fixes
flake8-async] Omit overridden methods forASYNC109(#24648)Documentation
flake8-async] Add override mention toASYNC109docs (#24666)vim.lsp.config(#24577)Contributors
v0.15.10Compare Source
Released on 2026-04-09.
Preview features
flake8-logging] Allow closures in except handlers (LOG004) (#24464)flake8-self] MakeSLFdiagnostics robust to non-self-named variables (#24281)flake8-simplify] Make the fix forcollapsible-ifsafe inpreview(SIM102) (#24371)Bug fixes
E502fixes in f-strings and t-strings (#24410)dedent_to(#24381)pyupgrade] Fix panic caused by handling of octals (UP012) (#24390)Rule changes
ruff] Treat f-string interpolation as potential side effect (RUF019) (#24426)Server
Documentation
Contributors
v0.15.9Compare Source
Released on 2026-04-02.
Preview features
pyflakes] Flag annotated variable redeclarations asF811in preview mode (#24244)ruff] Allow dunder-named assignments in non-strict mode forRUF067(#24089)Bug fixes
flake8-errmsg] Avoid shadowing existingmsgin fix forEM101(#24363)flake8-simplify] Ignore pre-initialization references inSIM113(#24235)pycodestyle] FixW391fixes for consecutive empty notebook cells (#24236)pyupgrade] FixUP008nested class matching (#24273)pyupgrade] Ignore strings with string-only escapes (UP012) (#16058)ruff]RUF072: skip formfeeds on dedent (#24308)ruff] Avoid re-using symbol inRUF024fix (#24316)ruff] Parenthesize expression inRUF050fix (#24234)Rule changes
flake8-simplify] SuppressSIM105forexcept*before Python 3.12 (#23869)pyflakes] ExtendF507to flag%-format strings with zero placeholders (#24215)pyupgrade]UP018should detect more unnecessarily wrapped literals (UP018) (#24093)pyupgrade] FixUP008callable scope handling to support lambdas (#24274)ruff]RUF010: Mark fix as unsafe when it deletes a comment (#24270)Formatter
nested-string-quote-styleformatting option (#24312)Documentation
flake8-bugbear] Clarify RUF071 fix safety for non-path string comparisons (#24149)flake8-type-checking] Clarify import cycle wording forTC001/TC002/TC003(#24322)Other changes
|(#24343)Contributors
v0.15.8Compare Source
Released on 2026-03-26.
Preview features
ruff] New ruleunnecessary-if(RUF050) (#24114)ruff] New ruleuseless-finally(RUF072) (#24165)ruff] New rulef-string-percent-format(RUF073): warn when using%operator on an f-string (#24162)pyflakes] Recognizefrozendictas a builtin for Python 3.15+ (#24100)Bug fixes
flake8-async] Use fully-qualifiedanyio.lowlevelimport in autofix (ASYNC115) (#24166)flake8-bandit] Check tuple arguments for partial paths inS607(#24080)pyflakes] Skipundefined-name(F821) for conditionally deleted variables (#24088)E501/W505/formatter: Exclude nested pragma comments from line width calculation (#24071)%foo?parsing in IPython assignment expressions (#24152)analyze graph: resolve string imports that reference attributes, not just modules (#24058)Rule changes
eradicate] ignorety: ignorecomments inERA001(#24192)flake8-bandit] Treatsys.executableas trusted input inS603(#24106)flake8-self] RecognizeSelfannotation andselfassignment inSLF001(#24144)pyflakes]F507: Fix false negative for non-tuple RHS in%-formatting (#24142)refurb] Parenthesize generator arguments inFURB142fixer (#24200)Performance
Server
Documentation
extend-ignoreandextend-selectsettings documentation (#24064)Other changes
Contributors
v0.15.7Compare Source
Released on 2026-03-19.
Preview features
noqahover for non-Python documents (#24040)Rule changes
pycodestyle] Recognizepyrefly:as a pragma comment (E501) (#24019)Server
Documentation
pylint] Improve phrasing (PLC0208) (#24033)Other changes
Contributors
v0.15.6Compare Source
Released on 2026-03-12.
Preview features
lazyimport parsing (#23755)airflow] FlagVariable.get()calls outside of task execution context (AIR003) (#23584)airflow] Flag runtime-varying values in DAG/task constructor arguments (AIR304) (#23631)flake8-bugbear] Implementdelattr-with-constant(B043) (#23737)flake8-tidy-imports] AddTID254to enforce lazy imports (#23777)flake8-tidy-imports] Allow users to ban lazy imports withTID254(#23847)isort] Retainlazykeyword when sorting imports (#23762)pyupgrade] Addfrom __future__ import annotationsautomatically (UP006) (#23260)refurb] Supportnewlineparameter inFURB101for Python 3.13+ (#23754)ruff] Addos-path-commonprefix(RUF071) (#23814)ruff] Add unsafe fix for os-path-commonprefix (RUF071) (#23852)ruff] LimitRUF036to typing contexts; make it unsafe for non-typing-only (#23765)ruff] Use starred unpacking forRUF017in Python 3.15+ (#23789)Bug fixes
--add-noqacreating unwanted leading whitespace (#23773)--add-noqabreaking shebangs (#23577)flake8-annotations] Fix stack overflow inANN401on quoted annotations with escape sequences (#23912)pep8-naming] Check naming conventions inmatchpattern bindings (N806,N815,N816) (#23899)perflint] Fix comment duplication in fixes (PERF401,PERF403) (#23729)pyupgrade] Properly triggersuperchange in nested class (UP008) (#22677)ruff] Avoid syntax errors inRUF036fixes (#23764)Rule changes
flake8-bandit] FlagS501withrequests.request(#23873)flake8-executable] Fix WSL detection in non-Docker containers (#22879)flake8-print] Ignorepprintcalls withstream=(#23787)Documentation
flake8-bugbear] Fix misleading description forB904(#23731)Contributors
v0.15.5Compare Source
Released on 2026-03-05.
Preview features
perflint] ExtendPERF102to comprehensions and generators (#23473)refurb] FixFURB101andFURB103false positives when I/O variable is used later (#23542)ruff] Add fix fornone-not-at-end-of-union(RUF036) (#22829)ruff] Fix false positive forre.splitwith empty string pattern (RUF055) (#23634)Bug fixes
fastapi] Handle callable class dependencies with__call__method (FAST003) (#23553)pydocstyle] Fix numpy section ordering (D420) (#23685)pyflakes] Fix false positive for names shadowing re-exports (F811) (#23356)pyupgrade] Avoid inserting redundantNoneelements inUP045(#23459)Documentation
Other changes
Contributors
v0.15.4Compare Source
Released on 2026-02-26.
This is a follow-up release to 0.15.3 that resolves a panic when the new rule
PLR1712was enabled with any rule that analyzes definitions, such as many of theANNorDrules.Bug fixes
pyflakes] Suppress false positive inF821for names used beforedelin stub files (#23550)Documentation
import-headingexample (#23568)Contributors
v0.15.3Compare Source
Released on 2026-02-26.
Preview features
Drop explicit support for
.qmdfile extension (#23572)This can now be enabled instead by setting the
extensionoption:ruff.toml
pyproject.toml
Include configured extensions in file discovery (#23400)
[
flake8-bandit] Allow suspicious imports inTYPE_CHECKINGblocks (S401-S415) (#23441)[
flake8-bugbear] AllowB901in pytest hook wrappers (#21931)[
flake8-import-conventions] Add missing conventions from upstream (ICN001,ICN002) (#21373)[
pydocstyle] Add rule to enforce docstring section ordering (D420) (#23537)[
pylint] Implementswap-with-temporary-variable(PLR1712) (#22205)[
ruff] Addunnecessary-assign-before-yield(RUF070) (#23300)[
ruff] Support file-level noqa inRUF102(#23535)[
ruff] Suppress diagnostic for invalid f-strings before Python 3.12 (RUF027) (#23480)[
flake8-bandit] Don't flagBaseLoader/CBaseLoaderas unsafe (S506) (#23510)Bug fixes
I002andPYI025(#23352)pyflakes] Fix false positive for@overloadfromlint.typing-modules(F811) (#23357)pyupgrade] Fix false positive forTypeVardefault before Python 3.12 (UP046) (#23540)pyupgrade] Fix handling of\Nin raw strings (UP032) (#22149)Rule changes
Render sub-diagnostics in the GitHub output format (#23455)
[
flake8-bugbear] Tag certainB007diagnostics as unnecessary (#23453)[
ruff] Ignore unknown rule codes inRUF100(#23531)These are now flagged by
RUF102instead.Documentation
pydocstyle] Fix double comma in description ofD404(#23440)Other changes
find_ruff_bin) for parity with uv (#23406)Contributors
v0.15.2Compare Source
Released on 2026-02-19.
Preview features
Expand the default rule set (#23385)
In preview, Ruff now enables a significantly expanded default rule set of 412
rules, up from the stable default set of 59 rules. The new rules are mostly a
superset of the stable defaults, with the exception of these rules, which are
removed from the preview defaults:
multiple-imports-on-one-line(E401)module-import-not-at-top-of-file(E402)module-import-not-at-top-of-file(E701)multiple-statements-on-one-line-semicolon(E702)useless-semicolon(E703)none-comparison(E711)true-false-comparison(E712)not-in-test(E713)not-is-test(E714)type-comparison(E721)lambda-assignment(E731)ambiguous-variable-name(E741)ambiguous-class-name(E742)ambiguous-function-name(E743)undefined-local-with-import-star(F403)undefined-local-with-import-star-usage(F405)undefined-local-with-nested-import-star-usage(F406)forward-annotation-syntax-error(F722)If you use preview and prefer the old defaults, you can restore them with
configuration like:
ruff.toml
pyproject.toml
flake8-pyi] Also check string annotations (PYI041) (#19023)Bug fixes
flake8-async] Fixin_async_contextlogic (#23426)ruff] Fix forRUF102should delete entire comment (#23380)ruff] Suppress diagnostic for strings with backslashes in interpolations before Python 3.12 (RUF027) (#21069)flake8-bugbear] FixB023false positive for immediately-invoked lambdas (#23294)Rule changes
flake8-executable] Allow global flags in uv shebangs (EXE003) (#22582)pyupgrade] Fix handling oftyping.{io,re}(UP035) (#23131)ruff] DetectPLC0207on chainedstr.split()calls (#23275)CLI
noqawarning (#23270)Configuration
Documentation
Q004to the list of conflicting rules (#23340)ruff] Expandlint.externaldocs and add sub-diagnostic (RUF100,RUF102) (#23268)Contributors
v0.15.1Compare Source
Released on 2026-04-24.
Preview features
#ruff:file-ignorefile-level suppressions (#23599)#ruff:ignorelogical-line suppressions (#23404)airflow] Implementtask-branch-as-short-circuit(AIR004) (#23579)flake8-bugbear] Fixbreak/continuehandling inloop-iterator-mutation(B909) (#24440)pylint] FixPLC2701for type parameter scopes (#24576)Rule changes
pandas-vet] Suggest.arrayas well inPD011(#24805)CLI
Documentation
pylint] FixPLR0124description not to claim self-comparison always returns the same value (#24749)pyupgrade] Expand docs on reusableTypeVars and scoping (UP046) (#24153)Contributors
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:ruff: disable[N803]
ruff: enable[N803]
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)