build(deps): update dependency ruff to v0.15.20#1009
Open
serious-scaffold[bot] wants to merge 1 commit into
Open
build(deps): update dependency ruff to v0.15.20#1009serious-scaffold[bot] wants to merge 1 commit into
serious-scaffold[bot] wants to merge 1 commit into
Conversation
80ca72a to
bdb1bb1
Compare
bdb1bb1 to
6ceadd2
Compare
6ceadd2 to
e63b991
Compare
e63b991 to
07413fa
Compare
07413fa to
2179913
Compare
2179913 to
c3b6398
Compare
c3b6398 to
fbabec2
Compare
fbabec2 to
77ee0be
Compare
77ee0be to
984c9b2
Compare
984c9b2 to
ca8f1b1
Compare
ca8f1b1 to
42c2d37
Compare
42c2d37 to
d45da68
Compare
d45da68 to
d22192d
Compare
d22192d to
4c91235
Compare
4c91235 to
39e491a
Compare
2c82333 to
06651a3
Compare
06651a3 to
7867ad1
Compare
7867ad1 to
f7f2370
Compare
f7f2370 to
77a3377
Compare
77a3377 to
93f32bd
Compare
93f32bd to
fe4d563
Compare
fe4d563 to
6a250f8
Compare
6a250f8 to
b3dcb1a
Compare
b3dcb1a to
376a899
Compare
376a899 to
df6aea0
Compare
df6aea0 to
ff182f5
Compare
ff182f5 to
c524560
Compare
c524560 to
f3e0e0e
Compare
f3e0e0e to
cab5c7b
Compare
cab5c7b to
c2d45e4
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:
0.12.3->0.15.20Release Notes
astral-sh/ruff (ruff)
v0.15.20Compare Source
Released on 2026-06-25.
Preview features
noqashebang handling inruff:ignorecomments (#26286)ruff] Removepytest-fixture-autouse(RUF076) (#26240, #26371)Documentation
ruff_python_parserREADME for crates.io (#26315)perflint] Clarify thatPERF402applies to any iterable (#26242)Contributors
v0.15.19Compare Source
Released on 2026-06-23.
Preview features
Bug fixes
Rule changes
pylint] Update fix suggestions for__floor__,__trunc__,__length_hint__, and__matmul__variants (PLC2801) (#26239)Performance
Documentation
flake8-pyi] Note thatPYI051is an opinionated stylistic rule (#26179)pyupgrade] ClarifyUP029as a Python 2 compatibility rule (#26243)Other changes
Contributors
v0.15.18Compare Source
Released on 2026-06-18.
Preview features
ruff:ignorecomments (#25791)pydocstyle] Prevent property docstrings starting with verbs (D421) (#23775)flake8-pyi] ExtendPYI033to Python files (#26129)Bug fixes
Rule changes
flake8-pyi] RenamePYI033tolegacy-type-comment(#26131)Performance
ThinVecfor call keywords (#25999)Server
Documentation
flake8-tidy-imports] Add fix safety section (TID252) (#17491)Parser
__debug__lambda parameters (#26022)_as a match-pattern target (#25977)yieldexpressions after commas (#26024)Playground
Contributors
v0.15.17Compare Source
Released on 2026-06-11.
Preview features
ignorecomments within adisable/enablepair (#25845)ruff:ignoresuppressions (#25673)flake8-async] Addtrio.as_safe_channelto safe decorators (ASYNC119) (#25775)flake8-pytest-style] Also checkpytest_asynciofixtures (#25375)ruff] Banpytestautouse fixtures (RUF076) (#25477)pyupgrade] Addfrom __future__ import annotationsautomatically (UP007,UP045) (#23259)Bug fixes
ruff:enableorruff:disableappears whereruff:ignoreis expected (#25700)pyupgrade] Preserve leading empty literals to avoid syntax errors (UP032) (#25491)Rule changes
flake8-pytest-style] Clarify diagnostic message for single parameters (PT007) (#25592)numpy] Drop autofix fornp.in1d(NPY201) (#25612)pylint] Exempt Python version comparisons (PLR2004) (#25743)Performance
Vecs with correct capacity for common cases (#25451)Formatter
CLI
ruff rule(#25640)Other changes
Contributors
v0.15.16Compare Source
Released on 2026-06-04.
Preview features
flake8-async] Implementyield-in-context-manager-in-async-generator(ASYNC119) (#24644)pylint] Narrow diagnostic range and exclude cases without exception handlers (PLW0717) (#25440)ruff] Treatyieldbeforebreakfrom a terminal loop as terminal (RUF075) (#25447)Bug fixes
eradicate] Avoid flaggingruff:ignorecomments as code (ERA001) (#25537)eradicate] FixERA001/RUF100conflict whennoqais on commented-out code (#25414)pyflakes] Avoid removing theformatcall when it would change behavior (F523) (#25320)pylint] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (PLE2510,PLE2512,PLE2513,PLE2514,PLE2515) (#25544)pyupgrade] Avoid convertingformatcalls with more kinds of side effects (UP032) (#25484)Rule changes
flake8-pytest-style] Avoid fixes for ambiguousargnamesandargvaluescombinations (PT006) (#24776)Performance
Documentation
pydocstyle] Improve discoverability of rules enabled for each convention (#24973)ruff] Restore example code for Python versions before 3.15 (RUF017) (#25439)bin/active→bin/activatein tutorial (#25473)Other changes
Contributors
v0.15.15Compare Source
Released on 2026-05-28.
Preview features
pyflakes] Report duplicate imports intyping.TYPE_CHECKINGblock (F811) (#22560)Bug fixes
pyflakes] Treat function-scope bare annotations as locals per PEP 526 (F821) (#21540)Performance
TokenValuedrops in the lexer (#25300)Vecsize (#25354)ThinVecin AST to shrinkStmt(#25361)Documentation
line-lengthexample for--configoption (#25389)flake8-comprehensions] DocumentRecursionErroredge case in__len__(C416) (#25286)mccabe] Improve example (C901) (#25287)pyupgrade] Clarify fix safety docs (UP007,UP045) (#25288)refurb] DocumentFURB192exception change for empty sequences (#25317)ruff] Document false negative for user-defined types (RUF013) (#25289)Formatter
Server
codeAction/resolverequests that contain no or no valid URL (#25365)Other changes
Contributors
v0.15.14Compare Source
Released on 2026-05-21.
Preview features
airflow] Implementairflow-task-implicit-multiple-outputs(AIR202) (#25152)flake8-use-pathlib] MarkPTH101fix as unsafe when first argument is a class attribute annotated asint(#25086)pylint] Implementtoo-many-try-statements(W0717) (#23970)ruff] Addincorrect-decorator-order(RUF074) (#23461)ruff] Addfallible-context-manager(RUF075) (#22844)Bug fixes
frozensetannotations as immutable (#25251)flake8-type-checking] Avoidstrictbehavior whenfuture-annotationsare enabled (TC001,TC002,TC003) (#25035)pylint] Avoid false positives inelseclause (PLR1733) (#25177)Rule changes
flake8-comprehensions] SkipC417for lambdas with positional-only parameters (#25272)flake8-simplify] Preserve f-string source verbatim inSIM101fix (#25061)Performance
Documentation
Other changes
ruff_python_stdlibAPIs (#25273)Contributors
v0.15.13Compare Source
Released on 2026-05-14.
Preview features
pylint] Standardize diagnostic message (PLR0914,PLR0917) (#24996)Bug fixes
F811false positive for class methods (#24933)eradicate] Fix false positive for lines with leading whitespace (ERA001) (#25122)flake8-pyi] Fix false positive for f-string debug specifier (PYI016) (#24098)Rule changes
PYI034for in-place operations to enclosing class (#24511)global(#24902)Performance
isort] Avoid constructingglob::Patterns for literal known modules (#25123)CLI
--confighelp text (#25013)Configuration
line-lengthsetting (#24962)Documentation
D203to rules that conflict with the formatter (#25044)COM819and formatter interaction (#25045)NotImplementedis a value, not an exception (F901) (#25054)Other changes
Contributors
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: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-06-25.
Preview features
noqashebang handling inruff:ignorecomments (#26286)ruff] Removepytest-fixture-autouse(RUF076) (#26240, #26371)Documentation
ruff_python_parserREADME for crates.io (#26315)perflint] Clarify thatPERF402applies to any iterable (#26242)Contributors
v0.15.1Compare Source
Released on 2026-06-23.
Preview features
Bug fixes
Rule changes
pylint] Update fix suggestions for__floor__,__trunc__, `__leng