Sourced from ruff's\nreleases.
\n\n\nv0.4.8
\nChanges
\nPerformance
\n\n
\n- Linter performance has been improved by around 10% on some\nmicrobenchmarks by refactoring the lexer and parser to maintain\nsynchronicity between them (#11457)
\nPreview features
\n\n
\n- [
\nflake8-bugbear
] Implement\nreturn-in-generator
(B901
) (#11644)- [
\nflake8-pyi
] ImplementPYI063
(#11699)- [
\npygrep_hooks
] Check blanket ignores via file-level\npragmas (PGH004
) (#11540)Rule changes
\n\n
\n- [
\npyupgrade
] UpdateUP035
for Python 3.13\nand the latest version oftyping_extensions
(#11693)- [
\nnumpy
] UpdateNPY001
rule for NumPy 2.0\n(#11735)Server
\n\n
\n- Formatting a document with syntax problems no longer spams a visible\nerror popup (#11745)
\nCLI
\n\n
\n- Add RDJson support for
\n--output-format
flag (#11682)Bug fixes
\n\n
\n- [
\npyupgrade
] Write empty string in lieu of panic when\nfixingUP032
(#11696)- [
\nflake8-simplify
] Simplify double negatives in\nSIM103
(#11684)- Ensure the expression generator adds a newline before\n
\ntype
statements (#11720)- Respect per-file ignores for blanket and redirected noqa rules (#11728)
\nContributors
\n\n
Sourced from ruff's\nchangelog.
\n\n\n0.4.8
\nPerformance
\n\n
\n- Linter performance has been improved by around 10% on some\nmicrobenchmarks by refactoring the lexer and parser to maintain\nsynchronicity between them (#11457)
\nPreview features
\n\n
\n- [
\nflake8-bugbear
] Implement\nreturn-in-generator
(B901
) (#11644)- [
\nflake8-pyi
] ImplementPYI063
(#11699)- [
\npygrep_hooks
] Check blanket ignores via file-level\npragmas (PGH004
) (#11540)Rule changes
\n\n
\n- [
\npyupgrade
] UpdateUP035
for Python 3.13\nand the latest version oftyping_extensions
(#11693)- [
\nnumpy
] UpdateNPY001
rule for NumPy 2.0\n(#11735)Server
\n\n
\n- Formatting a document with syntax problems no longer spams a visible\nerror popup (#11745)
\nCLI
\n\n
\n- Add RDJson support for
\n--output-format
flag (#11682)Bug fixes
\n\n
a8cf709
\nBump version to v0.4.8 (#11755)895eb3e
\n[red-knot] refactor CFG outside of symbol table (#11746)2e0a975
\nDisallow access to Parsed
output, use the API instead (#11741)b021b5b
\nUse Tokens
from parsed type annotation or parsed source (#11740)eed6d78
\nUpdate type annotation parsing API to return Parsed
(#11739)8338db6
\nruff server
: Formatting a document with syntax problems no\nlonger spams a v...d056d09
\n[red-knot] add if-statement support to FlowGraph (#11673)1645be0
\nUpdate NPY001
rule for NumPy 2.0 (#11735)2c86502
\nCI: add job to run tests under minimum supported rust version (msrv) (#11737)2567e14
\nLexer should consider BOM for the start offset (#11732)Sourced from ruff's\nreleases.
\n\n\nv0.4.7
\nChanges
\nPreview features
\n\n
\n- [
\nflake8-pyi
] ImplementPYI064
(#11325)- [
\nflake8-pyi
] ImplementPYI066
(#11541)- [
\nflake8-pyi
] ImplementPYI057
(#11486)- [
\npyflakes
] EnableF822
in\n__init__.py
files by default (#11370)Formatter
\n\n
\n- Fix incorrect placement of trailing stub function comments (#11632)
\nServer
\n\n
\n- Respect file exclusions in
\nruff server
(#11590)- Add support for documents not exist on disk (#11588)
\n- Add Vim and Kate setup guide for
\nruff server
(#11615)Bug fixes
\n\n
\n- Avoid removing newlines between docstring headers and rST blocks (#11609)
\n- Infer indentation with imports when logical indent is absent (#11608)
\n- Use char index rather than position for indent slice (#11645)
\n- [
\nflake8-comprehension
] Strip parentheses around\ngenerators inC400
(#11607)- Mark
\nrepeated-isinstance-calls
as unsafe on Python 3.10\nand later (#11622)Contributors
\n\n
Sourced from ruff's\nchangelog.
\n\n\n0.4.7
\nPreview features
\n\n
\n- [
\nflake8-pyi
] ImplementPYI064
(#11325)- [
\nflake8-pyi
] ImplementPYI066
(#11541)- [
\nflake8-pyi
] ImplementPYI057
(#11486)- [
\npyflakes
] EnableF822
in\n__init__.py
files by default (#11370)Formatter
\n\n
\n- Fix incorrect placement of trailing stub function comments (#11632)
\nServer
\n\n
\n- Respect file exclusions in
\nruff server
(#11590)- Add support for documents not exist on disk (#11588)
\n- Add Vim and Kate setup guide for
\nruff server
(#11615)Bug fixes
\n\n
\n- Avoid removing newlines between docstring headers and rST blocks (#11609)
\n- Infer indentation with imports when logical indent is absent (#11608)
\n- Use char index rather than position for indent slice (#11645)
\n- [
\nflake8-comprehension
] Strip parentheses around\ngenerators inC400
(#11607)- Mark
\nrepeated-isinstance-calls
as unsafe on Python 3.10\nand later (#11622)
1ad5f9c
\nBump version to v0.4.7 (#11646)e914bc3
\nF401 sort bindings before adding to all (#11648)27f6f04
\n[red-knot] initial (very incomplete) flow graph (#11624)d62a617
\nred-knot: Don't refer to Module
instances as IDs (#11649)16a926d
\n[red-knot] infer int literal types (#11623)05566c6
\nUpdate Who's Using Ruff?
section to include\nGodot
(#11647)7ce17b7
\nAdd Vim and Kate setup guide for ruff server
(#11615)f9a6450
\nUse char index rather than position for indent slice (#11645)8a25531
\nred-knot: improve internal documentation in module.rs
(#11638)9b6d2ce
\nFix incorect placement of trailing stub function comments (#11632)Sourced from ruff's\nreleases.
\n\n\nv0.4.6
\nChanges
\nBreaking changes
\n\n
\n- Use project-relative paths when calculating GitLab fingerprints (#11532)
\nPreview features
\n\n
\n- [
\nflake8-async
] Sleep with >24 hour interval should\nusually sleep forever (ASYNC116
) (#11498)Rule changes
\n\n
\n- [
\nnumpy
] Add missing functions to NumPy 2.0 migration\nrule (#11528)- [
\nmccabe
] Consider irrefutable pattern similar to\nif .. else
forC901
(#11565)- Consider
\nmatch
-case
statements for\nC901
,PLR0912
, andPLR0915
(#11521)- Remove empty strings when converting to f-string\n(
\nUP032
) (#11524)- [
\nflake8-bandit
]request-without-timeout
\nshould warn forrequests.request
(#11548)- [
\nflake8-self
] Ignore sunder accesses in\nflake8-self
rules (#11546)- [
\npyupgrade
] Lint forTypeAliasType
usages\n(UP040
) (#11530)Server
\n\n
\n- Respect excludes in
\nruff server
configuration discovery\n(#11551)- Use default settings if initialization options is empty or not\nprovided (#11566)
\n- \n
ruff server
correctly treats.pyi
files as\nstub files (#11535)- \n
ruff server
searches for configuration in parent\ndirectories (#11537)- \n
ruff server
: An empty code action filter no longer\nreturns notebook source actions (#11526)Bug fixes
\n\n
\n- [
\nflake8-logging-format
] Fix autofix title in\nlogging-warn
(G010
) (#11514)- [
\nrefurb
] Avoid recommending\noperator.itemgetter
with dependence on lambda arguments (#11574)- [
\nflake8-simplify
] Avoid recommending context manager in\n__enter__
implementations (#11575)- Create intermediary directories for
\n--output-file
(#11550)- Propagate reads on global variables (#11584)
\n- Treat all
\nsingledispatch
arguments as runtime-required\n(#11523)Contributors
\n\n\n
... (truncated)
\nSourced from ruff's\nchangelog.
\n\n\n0.4.6
\nBreaking changes
\n\n
\n- Use project-relative paths when calculating GitLab fingerprints (#11532)
\nPreview features
\n\n
\n- [
\nflake8-async
] Sleep with >24 hour interval should\nusually sleep forever (ASYNC116
) (#11498)Rule changes
\n\n
\n- [
\nnumpy
] Add missing functions to NumPy 2.0 migration\nrule (#11528)- [
\nmccabe
] Consider irrefutable pattern similar to\nif .. else
forC901
(#11565)- Consider
\nmatch
-case
statements for\nC901
,PLR0912
, andPLR0915
(#11521)- Remove empty strings when converting to f-string\n(
\nUP032
) (#11524)- [
\nflake8-bandit
]request-without-timeout
\nshould warn forrequests.request
(#11548)- [
\nflake8-self
] Ignore sunder accesses in\nflake8-self
rules (#11546)- [
\npyupgrade
] Lint forTypeAliasType
usages\n(UP040
) (#11530)Server
\n\n
\n- Respect excludes in
\nruff server
configuration discovery\n(#11551)- Use default settings if initialization options is empty or not\nprovided (#11566)
\n- \n
ruff server
correctly treats.pyi
files as\nstub files (#11535)- \n
ruff server
searches for configuration in parent\ndirectories (#11537)- \n
ruff server
: An empty code action filter no longer\nreturns notebook source actions (#11526)Bug fixes
\n\n
\n- [
\nflake8-logging-format
] Fix autofix title in\nlogging-warn
(G010
) (#11514)- [
\nrefurb
] Avoid recommending\noperator.itemgetter
with dependence on lambda arguments (#11574)- [
\nflake8-simplify
] Avoid recommending context manager in\n__enter__
implementations (#11575)- Create intermediary directories for
\n--output-file
(#11550)- Propagate reads on global variables (#11584)
\n- Treat all
\nsingledispatch
arguments as runtime-required\n(#11523)
49a5a9c
\nBump version to v0.4.6 (#11585)69d9212
\nPropagate reads on global variables (#11584)4a30558
\n[flake8-bandit
] request-without-timeout
should\nwarn for `requests.request...16acd49
\nRemove some unused pub
functions (#11576)3989cb8
\nMake ruff_notebook
a workspace dependency in\nruff_server
(#11572)a38c05b
\nAvoid recommending context manager in __enter__
\nimplementations (#11575)ab107ef
\nAvoid recomending operator.itemgetter with dependence on lambda arg (#11574)b36c713
\nConsider irrefutable pattern similar to if .. else
for\nC901
(#11565)34a5063
\nRespect excludes in ruff server
configuration discovery (#11551)adc0a5d
\nRename document module to text_document (#11571)Sourced from ruff's\nreleases.
\n\n\nv0.4.5
\nChanges
\nRuff's language server is now in Beta
\n\n
v0.4.5
marks the official Beta release ofruff\nserver
, an integrated language server built into Ruff.ruff\nserver
supports the same feature set asruff-lsp
,\npowering linting, formatting, and code fixes in Ruff's editor\nintegrations -- but with superior performance and no installation\nrequired. We'd love your feedback!You can enable
\nruff server
in the VS\nCode extension today.To read more about this exciting milestone, check out our blog post!
\nRule changes
\n\n
\n- [
\nflake8-future-annotations
] Reword\nfuture-rewritable-type-annotation
(FA100
)\nmessage (#11381)- [
\npycodestyle
] Consider soft keywords for\nE27
rules (#11446)- [
\npyflakes
] Recommend adding unused import bindings to\n__all__
(#11314)- [
\npyflakes
] Update documentation and deprecate\nignore_init_module_imports
(#11436)- [
\npyupgrade
] Mark quotes as unnecessary for\nnon-evaluated annotations (#11485)Formatter
\n\n
\n- Avoid multiline quotes warning with
\nquote-style =\npreserve
(#11490)Server
\n\n
\n- Support Jupyter Notebook files (#11206)
\n- Support
\nnoqa
comment code actions (#11276)- Fix automatic configuration reloading (#11492)
\n- Fix several issues with configuration in Neovim and Helix (#11497)
\nCLI
\n\n
\n- Add
\n--output-format
as a CLI option forruff\nconfig
(#11438)Bug fixes
\n\n
\n- Avoid
\nPLE0237
for property with setter (#11377)- Avoid
\nTCH005
forif
stmt with\nelif
/else
block (#11376)- Avoid flagging
\n__future__
annotations as required for\nnon-evaluated type annotations (#11414)- Check for ruff executable in 'bin' directory as installed by 'pip\ninstall --target'. (#11450)
\n- Sort edits prior to deduplicating in quotation fix (#11452)
\n- Treat escaped newline as valid sequence (#11465)
\n- [
\nflake8-pie
] Preserve parentheses in\nunnecessary-dict-kwargs
(#11372)- [
\npylint
] Ignore__slots__
with dynamic\nvalues (#11488)- [
\npylint
] Removetry
body from branch\ncounting (#11487)- [
\nrefurb
] Respect operator precedence in\nFURB110
(#11464)Documentation
\n\n
\n\n- Add
\n--preview
to the README (#11395)
... (truncated)
\nSourced from ruff's\nchangelog.
\n\n\n0.4.5
\nRuff's language server is now in Beta
\n\n
v0.4.5
marks the official Beta release ofruff\nserver
, an integrated language server built into Ruff.\nruff server
supports the same feature set as\nruff-lsp
, powering linting, formatting, and\ncode fixes in Ruff's editor integrations -- but with superior\nperformance and\nno installation required. We'd love your feedback!You can enable
\nruff server
in the VS\nCode extension today.To read more about this exciting milestone, check out our blog post!
\nRule changes
\n\n
\n- [
\nflake8-future-annotations
] Reword\nfuture-rewritable-type-annotation
(FA100
)\nmessage (#11381)- [
\npycodestyle
] Consider soft keywords for\nE27
rules (#11446)- [
\npyflakes
] Recommend adding unused import bindings to\n__all__
(#11314)- [
\npyflakes
] Update documentation and deprecate\nignore_init_module_imports
(#11436)- [
\npyupgrade
] Mark quotes as unnecessary for\nnon-evaluated annotations (#11485)Formatter
\n\n
\n- Avoid multiline quotes warning with
\nquote-style =\npreserve
(#11490)Server
\n\n
\n- Support Jupyter Notebook files (#11206)
\n- Support
\nnoqa
comment code actions (#11276)- Fix automatic configuration reloading (#11492)
\n- Fix several issues with configuration in Neovim and Helix (#11497)
\nCLI
\n\n
\n- Add
\n--output-format
as a CLI option forruff\nconfig
(#11438)Bug fixes
\n\n
\n- Avoid
\nPLE0237
for property with setter (#11377)- Avoid
\nTCH005
forif
stmt with\nelif
/else
block (#11376)- Avoid flagging
\n__future__
annotations as required for\nnon-evaluated type annotations (#11414)- Check for ruff executable in 'bin' directory as installed by 'pip\ninstall --target'. (#11450)
\n- Sort edits prior to deduplicating in quotation fix (#11452)
\n- Treat escaped newline as valid sequence (#11465)
\n- [
\nflake8-pie
] Preserve parentheses in\nunnecessary-dict-kwargs
(#11372)- [
\npylint
] Ignore__slots__
with dynamic\nvalues (#11488)- [
\npylint
] Removetry
body from branch\ncounting (#11487)- [
\nrefurb
] Respect operator precedence in\nFURB110
(#11464)Documentation
\n\n
... (truncated)
\n550aa87
\nBump version to v0.4.5
(#11502)3c22a3b
\nMinor edits to ruff server
docs (#11500)6263923
\nUpdate documentation for ruff server
with new migration\nguide (#11499)94abea4
\nruff server
: Fix multiple issues with Neovim and Helix (#11497)519a650
\nMark quotes as unnecessary for non-evaluated annotations (#11485)573facd
\nFix automatic configuration reloading for text and notebook documents\n(#11492)3cb2e67
\nruff.applyFormat
now formats an entire notebook document\n(#11493)f0046ab
\nMove has_comments
to CommentRanges
(#11495)5bb9720
\nAvoid multiline quotes warning with quote-style = preserve
\n(#11490)9ff18bf
\nSimplify Neovim docs for the LSP setup (#11489)Sourced from ruff's\nreleases.
\n\n\nv0.4.4
\nChanges
\nPreview features
\n\n
\n- [
\npycodestyle
] Ignore end-of-line comments when\ndetermining blank line rules (#11342)- [
\npylint
] Detectpathlib.Path.open
calls in\nunspecified-encoding
(PLW1514
) (#11288)- [
\nflake8-pyi
] ImplementPYI059
\n(generic-not-last-base-class
) (#11233)- [
\nflake8-pyi
] ImplementPYI062
\n(duplicate-literal-member
) (#11269)Rule changes
\n\n
\n- [
\nflake8-boolean-trap
] Allow passing booleans as\npositional-only arguments in code such asset(True)
(#11287)- [
\nflake8-bugbear
] Ignore enum classes in\ncached-instance-method
(B019
) (#11312)Server
\n\n
\n- Expand tildes when resolving Ruff server configuration file (#11283)
\n- Fix
\nruff server
hanging after Neovim closes (#11291)- Editor settings are used by default if no file-based configuration\nexists (#11266)
\nBug fixes
\n\n
\n- [
\npylint
] Considerwith
statements for\ntoo-many-branches
(PLR0912
) (#11321)- [
\nflake8-blind-except
,tryceratops
] Respect\nlogged and re-raised expressions in nested statements\n(BLE001
,TRY201
) (#11301)- Recognise assignments such as
\n__all__ =\nbuiltins.list(["foo", "bar"])
as valid\n__all__
definitions (#11335)Contributors
\n\n
Sourced from ruff's\nchangelog.
\n\n\n0.4.4
\nPreview features
\n\n
\n- [
\npycodestyle
] Ignore end-of-line comments when\ndetermining blank line rules (#11342)- [
\npylint
] Detectpathlib.Path.open
calls in\nunspecified-encoding
(PLW1514
) (#11288)- [
\nflake8-pyi
] ImplementPYI059
\n(generic-not-last-base-class
) (#11233)- [
\nflake8-pyi
] ImplementPYI062
\n(duplicate-literal-member
) (#11269)Rule changes
\n\n
\n- [
\nflake8-boolean-trap
] Allow passing booleans as\npositional-only arguments in code such asset(True)
(#11287)- [
\nflake8-bugbear
] Ignore enum classes in\ncached-instance-method
(B019
) (#11312)Server
\n\n
\n- Expand tildes when resolving Ruff server configuration file (#11283)
\n- Fix
\nruff server
hanging after Neovim closes (#11291)- Editor settings are used by default if no file-based configuration\nexists (#11266)
\nBug fixes
\n\n
\n- [
\npylint
] Considerwith
statements for\ntoo-many-branches
(PLR0912
) (#11321)- [
\nflake8-blind-except
,tryceratops
] Respect\nlogged and re-raised expressions in nested statements\n(BLE001
,TRY201
) (#11301)- Recognise assignments such as
\n__all__ =\nbuiltins.list(["foo", "bar"])
as valid\n__all__
definitions (#11335)
3e8878a
\nBump version to v0.4.4 (#11352)b6b4ad9
\n[red-knot] @override
lint rule\n(#11282)dd42961
\n[pylint
] Detect pathlib.Path.open
calls in\nunspecified-encoding
(`PLW15...c80c171
\n[red-knot] Vendor typeshed's stdlib (#11340)e2fe177
\nRevert "Simplify arithmetic operation in logical lines checker (#11346)"\n(#11...e9d1cdd
\nSimplify arithmetic operation in logical lines checker (#11346)dfe4291
\nImprove ruff_python_semantic::all::extract_all_names()
(#11335)4541337
\n[red-knot] Remove \\<Db: SemanticDb>
contraints in\nfavor of dynamic dispatch ...8e9ddee
\nIgnore end-of-line comments when determining blank line rules (#11342)702d2fa
\nMake B024 and B027 documentation more nuanced (#11341)Sourced from ruff's\nreleases.
\n\n\nv0.4.3
\nChanges
\nEnhancements
\n\n
\n- Add support for PEP 696 syntax (#11120)
\nPreview features
\n\n
\n- [
\nrefurb
] Use function range for\nreimplemented-operator
diagnostics (#11271)- [
\nrefurb
] Ignore methods in\nreimplemented-operator
(FURB118
) (#11270)- [
\nrefurb
] Implementfstring-number-format
\n(FURB116
) (#10921)- [
\nruff
] Implementredirected-noqa
\n(RUF101
) (#11052)- [
\npyflakes
] Distinguish between first-party and\nthird-party imports for fix suggestions (#11168)Rule changes
\n\n
\n- [
\nflake8-bugbear
] Ignore non-abstract class attributes\nwhen enforcingB024
(#11210)- [
\nflake8-logging
] Include inline instantiations when\ndetecting loggers (#11154)- [
\npylint
] Also emitPLR0206
for properties\nwith variadic parameters (#11200)- [
\nruff
] Detect duplicate codes as part of\nunused-noqa
(RUF100
) (#10850)Formatter
\n\n
\n- Avoid multiline expression if format specifier is present (#11123)
\nLSP
\n\n
\n- Write
\nruff server
setup guide for Helix (#11183)- \n
ruff server
no longer hangs after shutdown (#11222)- \n
ruff server
reads from a configuration TOML file in the\nuser configuration directory if no local configuration exists (#11225)- \n
ruff server
respectsper-file-ignores
\nconfiguration (#11224)- \n
ruff server
: Support a custom TOML configuration file\n(#11140)- \n
ruff server
: Support setting to prioritize project\nconfiguration over editor configuration (#11086)Bug fixes
\n\n
\n- Avoid debug assertion around NFKC renames (#11249)
\n- [
\npyflakes
] Prioritize\nredefined-while-unused
overunused-import
(#11173)- [
\nruff
] Respectasync
expressions in\ncomprehension bodies (#11219)- [
\npygrep_hooks
] Fixblanket-noqa
panic when\nlast line has noqa with no newline (PGH004
) (#11108)- [
\nperflint
] Ignore list-copy recommendations for async\nfor
loops (#11250)- [
\npyflakes
] Improveinvalid-print-syntax
\ndocumentation (#11171)Performance
\n\n
\n- Avoid allocations for isort module names (#11251)
\n- Build a separate ARM wheel for macOS (#11149)
\nContributors
\n\n
... (truncated)
\nSourced from ruff's\nchangelog.
\n\n\n0.4.3
\nEnhancements
\n\n
\n- Add support for PEP 696 syntax (#11120)
\nPreview features
\n\n
\n- [
\nrefurb
] Use function range for\nreimplemented-operator
diagnostics (#11271)- [
\nrefurb
] Ignore methods in\nreimplemented-operator
(FURB118
) (#11270)- [
\nrefurb
] Implementfstring-number-format
\n(FURB116
) (#10921)- [
\nruff
] Implementredirected-noqa
\n(RUF101
) (#11052)- [
\npyflakes
] Distinguish between first-party and\nthird-party imports for fix suggestions (#11168)Rule changes
\n\n
\n- [
\nflake8-bugbear
] Ignore non-abstract class attributes\nwhen enforcingB024
(#11210)- [
\nflake8-logging
] Include inline instantiations when\ndetecting loggers (#11154)- [
\npylint
] Also emitPLR0206
for properties\nwith variadic parameters (#11200)- [
\nruff
] Detect duplicate codes as part of\nunused-noqa
(RUF100
) (#10850)Formatter
\n\n
\n- Avoid multiline expression if format specifier is present (#11123)
\nLSP
\n\n
\n- Write
\nruff server
setup guide for Helix (#11183)- \n
ruff server
no longer hangs after shutdown (#11222)- \n
ruff server
reads from a configuration TOML file in the\nuser configuration directory if no local configuration exists (#11225)- \n
ruff server
respectsper-file-ignores
\nconfiguration (#11224)- \n
ruff server
: Support a custom TOML configuration file\n(#11140)- \n
ruff server
: Support setting to prioritize project\nconfiguration over editor configuration (#11086)Bug fixes
\n\n
\n- Avoid debug assertion around NFKC renames (#11249)
\n- [
\npyflakes
] Prioritize\nredefined-while-unused
overunused-import
(#11173)- [
\nruff
] Respectasync
expressions in\ncomprehension bodies (#11219)- [
\npygrep_hooks
] Fixblanket-noqa
panic when\nlast line has noqa with no newline (PGH004
) (#11108)- [
\nperflint
] Ignore list-copy recommendations for async\nfor
loops (#11250)- [
\npyflakes
] Improveinvalid-print-syntax
\ndocumentation (#11171)Performance
\n\n
1e91a09
\nBump version to v0.4.3 (#11274)d0f51c6
\nRemove remaining ruff_shrinking
references (#11272)8dd3811
\nUse function range for reimplemented-operator
diagnostics\n(#11271)894cd13
\n[refurb
] Ignore methods in\nreimplemented-operator
(FURB118
) (#11270)f3284fd
\nRemove unnecessary check for RUF020 enabled (#11268)82dd5e6
\n[red-knot] resolve class members (#11256)6a1e555
\nUpgrade to Rust 1.78 (#11260)349a4cf
\nRemove trailing reference section (#11257)dfbeca5
\nruff server
no longer hangs after shutdown (#11222)9e69cd6
\nRephrase rationale for pytest-incorrect-pytest-import
(#11255)Sourced from ruff's\nreleases.
\n\n\nv0.4.2
\nChanges
\nRule changes
\n\n
\n- [
\nflake8-pyi
] Allow for overloaded__exit__
\nand__aexit__
definitions (PYI036
) (#11057)- [
\npyupgrade
] Catch usages of"%s" %\nvar
and provide an unsafe fix (UP031
) (#11019)- [
\nrefurb
] Implement new rule that suggests min/max over\nsorted()
(FURB192
) (#10868)Server
\n\n
\n- Fix an issue with missing diagnostics for Neovim and Helix (#11092)
\n- Implement hover documentation for
\nnoqa
codes (#11096)- Introduce common Ruff configuration options with new server settings\n(#11062)
\nBug fixes
\n\n
\n- Use
\nmacos-12
for building release wheels to enable\nmacOS 11 compatibility (#11146)- [
\nflake8-blind-expect
] Allow raise from in\nBLE001
(#11131)- [
\nflake8-pyi
] Allow simple assignments to\nNone
in enum class scopes (PYI026
) (#11128)- [
\nflake8-simplify
] Avoid raisingSIM911
for\nnon-zip
attribute calls (#11126)- [
\nrefurb
] Avoidoperator.itemgetter
\nsuggestion for single-item tuple (#11095)- [
\nruff
] Respect per-file-ignores forRUF100
\nwith no other diagnostics (#11058)- [
\nruff
] Fix async comprehension false positive\n(RUF029
) (#11070)Documentation
\n\n
\n- [
\nflake8-bugbear
] Document explicitly disabling strict\nzip (B905
) (#11040)- [
\nflake8-type-checking
] Mention\nlint.typing-modules
inTCH001
,\nTCH002
, andTCH003
(#11144)- [
\nisort
] Improve documentation around custom\nisort
sections (#11050)- [
\npylint
] Fix documentation oversight for\ninvalid-X-returns
(#11094)Performance
\n\n
\n- Use
\nmatchit
to resolve per-file settings (#11111)Contributors
\n\n\n
... (truncated)
\nSourced from ruff's\nchangelog.
\n\n\n0.4.2
\nRule changes
\n\n
\n- [
\nflake8-pyi
] Allow for overloaded__exit__
\nand__aexit__
definitions (PYI036
) (#11057)- [
\npyupgrade
] Catch usages of"%s" %\nvar
and provide an unsafe fix (UP031
) (#11019)- [
\nrefurb
] Implement new rule that suggests min/max over\nsorted()
(FURB192
) (#10868)Server
\n\n
\n- Fix an issue with missing diagnostics for Neovim and Helix (#11092)
\n- Implement hover documentation for
\nnoqa
codes (#11096)- Introduce common Ruff configuration options with new server settings\n(#11062)
\nBug fixes
\n\n
\n- Use
\nmacos-12
for building release wheels to enable\nmacOS 11 compatibility (#11146)- [
\nflake8-blind-expect
] Allow raise from in\nBLE001
(#11131)- [
\nflake8-pyi
] Allow simple assignments to\nNone
in enum class scopes (PYI026
) (#11128)- [
\nflake8-simplify
] Avoid raisingSIM911
for\nnon-zip
attribute calls (#11126)- [
\nrefurb
] Avoidoperator.itemgetter
\nsuggestion for single-item tuple (#11095)- [
\nruff
] Respect per-file-ignores forRUF100
\nwith no other diagnostics (#11058)- [
\nruff
] Fix async comprehension false positive\n(RUF029
) (#11070)Documentation
\n\n
\n- [
\nflake8-bugbear
] Document explicitly disabling strict\nzip (B905
) (#11040)- [
\nflake8-type-checking
] Mention\nlint.typing-modules
inTCH001
,\nTCH002
, andTCH003
(#11144)- [
\nisort
] Improve documentation around custom\nisort
sections (#11050)- [
\npylint
] Fix documentation oversight for\ninvalid-X-returns
(#11094)Performance
\n\n
\n- Use
\nmatchit
to resolve per-file settings (#11111)
77c93fd
\nBump version to 0.4.2 (#11151)1c9f5e3
\nDisplay the AST even with syntax errors (#11147)263a0d2
\nUse macos-12
to build release wheels (#11146)4738e19
\nRemove unused lexical error types (#11145)f428bd5
\nDocs: mention lint.typing-modules
in TCH001
,\nTCH002
, TCH003
(#11144)4690890
\nruff server
: In 'publish diagnostics' mode, document\ndiagnostics are cleare...19baabb
\nREADME: add Apache Superset to project list (#11136)cee38f3
\n[flake8-blind-expect
] Allow raise from in\nBLE001
(#11131)e3fde28
\n[flake8-pyi
] Allow overloaded __exit__
and\n__aexit__
definitions (`PYI0...1c8849f
\nUse Matchit to Resolve Per-File Settings (#11111)