Open
Conversation
c1840c9 to
2f12590
Compare
2f12590 to
36455cc
Compare
36455cc to
77a329c
Compare
77a329c to
dae2d88
Compare
dae2d88 to
688c299
Compare
688c299 to
8c93b5a
Compare
8c93b5a to
e4e9bb4
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #151 +/- ##
==========================================
- Coverage 82.95% 79.31% -3.65%
==========================================
Files 2 2
Lines 88 87 -1
==========================================
- Hits 73 69 -4
- Misses 15 18 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
e4e9bb4 to
2cdb85f
Compare
2cdb85f to
1043b6d
Compare
1043b6d to
84a86a0
Compare
84a86a0 to
aaefd9a
Compare
aaefd9a to
a19c35e
Compare
a19c35e to
8393639
Compare
8393639 to
1573613
Compare
631229f to
aed555e
Compare
aed555e to
ade1f7e
Compare
ade1f7e to
d1169cd
Compare
d1169cd to
eea0189
Compare
eea0189 to
cb6f2c5
Compare
cb6f2c5 to
933df48
Compare
933df48 to
55d16a1
Compare
55d16a1 to
4c52485
Compare
4c52485 to
ceea45d
Compare
ceea45d to
aca942d
Compare
aca942d to
4e98cb3
Compare
4e98cb3 to
870735b
Compare
870735b to
fe42ebe
Compare
fe42ebe to
ac8068d
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:
v0.4.4→v0.15.9v0.15.10==0.4.4→==0.15.90.15.10Note: The
pre-commitmanager in Renovate is not supported by thepre-commitmaintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.Release Notes
astral-sh/ruff-pre-commit (astral-sh/ruff-pre-commit)
v0.15.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.9
v0.15.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.8
v0.15.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.7
v0.15.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.6
v0.15.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.5
v0.15.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.4
v0.15.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.3
v0.15.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.2
v0.15.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.1
v0.15.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.0
v0.14.14Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.14
v0.14.13Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.13
v0.14.12Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.12
v0.14.11Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.11
v0.14.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.10
v0.14.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.9
v0.14.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.8
v0.14.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.7
v0.14.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.6
v0.14.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.5
v0.14.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.4
v0.14.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.3
v0.14.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.2
v0.14.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.1
v0.14.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.0
v0.13.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.13.3
v0.13.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.13.2
v0.13.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.13.1
v0.13.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.13.0
v0.12.12Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.12
v0.12.11Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.11
v0.12.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.10
v0.12.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.9
v0.12.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.8
v0.12.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.7
v0.12.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.7
Ruff's 0.12.6 release was yanked. See the linked release notes for more information.
v0.12.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.5
v0.12.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.4
v0.12.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.3
v0.12.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.2
v0.12.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.1
v0.12.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.0
v0.11.13Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.13
v0.11.12Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.12
v0.11.11Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.11
v0.11.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.10
v0.11.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.9
v0.11.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.8
v0.11.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.7
v0.11.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.6
v0.11.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.5
v0.11.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.4
v0.11.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.3
v0.11.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.2
v0.11.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.1
v0.11.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.0
v0.10.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.10.0
v0.9.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.10
v0.9.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.9
v0.9.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.8
v0.9.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.7
v0.9.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.6
v0.9.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.5
v0.9.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.4
v0.9.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.3
v0.9.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.2
v0.9.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.1
v0.9.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.0
v0.8.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.6
v0.8.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.5
v0.8.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.4
v0.8.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.3
v0.8.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.2
v0.8.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.1
v0.8.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.0
v0.7.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.4
v0.7.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.3
v0.7.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.2
v0.7.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.1
v0.7.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.0
v0.6.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.9
v0.6.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.8
v0.6.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.7
v0.6.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.6
v0.6.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.5
v0.6.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.4
v0.6.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.3
v0.6.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.2
v0.6.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.1
v0.6.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.0
v0.5.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.7
v0.5.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.6
v0.5.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.5
v0.5.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.4
v0.5.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.3
v0.5.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.2
v0.5.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.1
v0.5.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.0
v0.4.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/v0.4.10
v0.4.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/v0.4.9
v0.4.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/v0.4.8
v0.4.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/v0.4.7
v0.4.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/v0.4.6
v0.4.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/v0.4.5
astral-sh/ruff (ruff)
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-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:
If you do give them a try, feel free to share your feedback in the GitHub
discussion!
[
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-02-12.
Preview features
airflow] Add ruff rules to catch deprecated Airflow imports for Airflow 3.1 (AIR321) (#22376)airflow] Third positional parameter not namedti_keyshould be flagged forBaseOperatorLink.get_link(AIR303) (#22828)flake8-gettext] Fix false negatives for plural argument ofngettext(INT001,INT002,INT003) ([#21078](https://redirect.github.com/astral-sh/