@astral-sh/ruff-wasm-bundler
Advanced tools
Changelog
0.6.4
flake8-builtins
] Use dynamic builtins list based on Python version (#13172)pydoclint
] Permit yielding None
in DOC402
and DOC403
(#13148)pylint
] Update diagnostic message for PLW3201
(#13194)ruff
] Implement post-init-default
(RUF033
) (#13192)ruff
] Implement useless if-else (RUF034
) (#13218)flake8-pyi
] Respect pep8_naming.classmethod-decorators
settings when determining if a method is a classmethod in custom-type-var-return-type
(PYI019
) (#13162)flake8-pyi
] Teach various rules that annotations might be stringized (#12951)pylint
] Avoid no-self-use
for attrs
-style validators (#13166)pylint
] Recurse into subscript subexpressions when searching for list/dict lookups (PLR1733
, PLR1736
) (#13186)pyupgrade
] Detect aiofiles.open
calls in UP015
(#13173)pyupgrade
] Mark sys.version_info[0] < 3
and similar comparisons as outdated (UP036
) (#13175)ruff format
output (#13212)Changelog
0.6.3
flake8-simplify
] Extend open-file-with-context-handler
to work with dbm.sqlite3
(SIM115
) (#13104)pycodestyle
] Disable E741
in stub files (.pyi
) (#13119)pydoclint
] Avoid DOC201
on explicit returns in functions that only return None
(#13064)flake8-async
] Disable check for asyncio
before Python 3.11 (ASYNC109
) (#13023)FastAPI
] Avoid introducing invalid syntax in fix for fast-api-non-annotated-dependency
(FAST002
) (#13133)flake8-implicit-str-concat
] Normalize octals before merging concatenated strings in single-line-implicit-string-concatenation
(ISC001
) (#13118)flake8-pytest-style
] Improve help message for pytest-incorrect-mark-parentheses-style
(PT023
) (#13092)pylint
] Avoid autofix for calls that aren't min
or max
as starred expression (PLW3301
) (#13089)ruff
] Add datetime.time
, datetime.tzinfo
, and datetime.timezone
as immutable function calls (RUF009
) (#13109)ruff
] Extend comment deletion for RUF100
to include trailing text from noqa
directives while preserving any following comments on the same line, if any (#13105)Changelog
0.6.2
flake8-simplify
] Extend open-file-with-context-handler
to work with other standard-library IO modules (SIM115
) (#12959)ruff
] Avoid unused-async
for functions with FastAPI route decorator (RUF029
) (#12938)ruff
] Ignore fstring-missing-syntax
(RUF027
) for fastAPI
paths (#12939)ruff
] Implement check for Decimal called with a float literal (RUF032) (#12909)flake8-bugbear
] Update diagnostic message when expression is at the end of function (B015
) (#12944)flake8-pyi
] Skip type annotations in string-or-bytes-too-long
(PYI053
) (#13002)flake8-type-checking
] Always recognise relative imports as first-party (#12994)flake8-unused-arguments
] Ignore unused arguments on stub functions (ARG001
) (#12966)pylint
] Ignore augmented assignment for self-cls-assignment
(PLW0642
) (#12957)pep8-naming
] Don't flag from
imports following conventional import names (N817
) (#12946)pylint
] - Allow __new__
methods to have cls
as their first argument even if decorated with @staticmethod
for bad-staticmethod-argument
(PLW0211
) (#12958)hyperfine
installation instructions; update hyperfine
code samples (#13034)PT001
as per the new default behavior (#13019)perflint
] Improve docs for try-except-in-loop
(PERF203
) (#12947)pydocstyle
] Add reference to lint.pydocstyle.ignore-decorators
setting to rule docs (#12996)Changelog
0.6.1
This is a hotfix release to address an issue with ruff-pre-commit
. In v0.6,
Ruff changed its behavior to lint and format Jupyter notebooks by default;
however, due to an oversight, these files were still excluded by default if
Ruff was run via pre-commit, leading to inconsistent behavior.
This has now been fixed.
fastapi
] Implement fast-api-unused-path-parameter
(FAST003
) (#12638)pylint
] Rename too-many-positional
to too-many-positional-arguments
(R0917
) (#12905)flake8-naming
]: Respect import conventions (N817
) (#12922)Changelog
0.6.0
Check out the blog post for a migration guide and overview of the changes!
See also, the "Remapped rules" section which may result in disabled rules.
src
layouts by default for isort
rules (#12848)PT001
and PT023
now default to omitting the decorator parentheses when there are no arguments (#12838).The following rules are now deprecated:
pytest-missing-fixture-name-underscore
(PT004
)pytest-incorrect-fixture-name-underscore
(PT005
)unpacked-list-comprehension
(UP027
)The following rules have been remapped to new rule codes:
unnecessary-dict-comprehension-for-iterable
: RUF025
to C420
The following rules have been stabilized and are no longer in preview:
singledispatch-method
(PLE1519
)singledispatchmethod-function
(PLE1520
)bad-staticmethod-argument
(PLW0211
)if-stmt-min-max
(PLR1730
)invalid-bytes-return-type
(PLE0308
)invalid-hash-return-type
(PLE0309
)invalid-index-return-type
(PLE0305
)invalid-length-return-type
(PLEE303
)self-or-cls-assignment
(PLW0642
)byte-string-usage
(PYI057
)duplicate-literal-member
(PYI062
)redirected-noqa
(RUF101
)The following behaviors have been stabilized:
cancel-scope-no-checkpoint
(ASYNC100
): Support asyncio
and anyio
context mangers.async-function-with-timeout
(ASYNC109
): Support asyncio
and anyio
context mangers.async-busy-wait
(ASYNC110
): Support asyncio
and anyio
context mangers.async-zero-sleep
(ASYNC115
): Support anyio
context mangers.long-sleep-not-forever
(ASYNC116
): Support anyio
context mangers.The following fixes have been stabilized:
superfluous-else-return
(RET505
)superfluous-else-raise
(RET506
)superfluous-else-continue
(RET507
)superfluous-else-break
(RET508
)flake8-simplify
] Further simplify to binary in preview for (SIM108
) (#12796)pyupgrade
] Show violations without auto-fix (UP031
) (#11229)flake8-import-conventions
] Add xml.etree.ElementTree
to default conventions (#12455)flake8-pytest-style
] Add a space after comma in CSV output (PT006
) (#12853)flake8-async
] Do not lint yield in context manager (ASYNC100
) (#12896)flake8-comprehensions
] Do not lint async for
comprehensions (C419
) (#12895)flake8-return
] Only add return None
at end of a function (RET503
) (#11074)flake8-type-checking
] Avoid treating dataclasses.KW_ONLY
as typing-only (TCH003
) (#12863)pep8-naming
] Treat type(Protocol)
et al as metaclass base (N805
) (#12770)pydoclint
] Don't enforce returns and yields in abstract methods (DOC201
, DOC202
) (#12771)ruff
] Skip tuples with slice expressions in (RUF031
) (#12768)ruff
] Ignore unparenthesized tuples in subscripts when the subscript is a type annotation or type alias (RUF031
) (#12762)ruff
] Ignore template strings passed to logging and builtins._()
calls (RUF027
) (#12889)ruff
] Do not remove parens for tuples with starred expressions in Python <=3.10 (RUF031
) (#12784)Changelog
0.5.7
flake8-comprehensions
] Account for list and set comprehensions in unnecessary-literal-within-tuple-call
(C409
) (#12657)flake8-pyi
] Add autofix for future-annotations-in-stub
(PYI044
) (#12676)flake8-return
] Avoid syntax error when auto-fixing RET505
with mixed indentation (space and tabs) (#12740)pydoclint
] Add docstring-missing-yields
(DOC402
) and docstring-extraneous-yields
(DOC403
) (#12538)pydoclint
] Avoid DOC201
if docstring begins with "Return", "Returns", "Yield", or "Yields" (#12675)pydoclint
] Deduplicate collected exceptions after traversing function bodies (DOC501
) (#12642)pydoclint
] Ignore DOC
errors for stub functions (#12651)pydoclint
] Teach rules to understand reraised exceptions as being explicitly raised (DOC501
, DOC502
) (#12639)ruff
] Implement incorrectly-parenthesized-tuple-in-subscript
(RUF031
) (#12480)ruff
] Mark RUF023
fix as unsafe if __slots__
is not a set and the binding is used elsewhere (#12692)refurb
] Add autofix for implicit-cwd
(FURB177
) (#12708)ruff
] Add autofix for zip-instead-of-pairwise
(RUF007
) (#12663)tryceratops
] Add BaseException
to raise-vanilla-class
rule (TRY002
) (#12620)pyproject.toml
files (#12727)flake8-async
] Fix false positives with multiple async with
items (ASYNC100
) (#12643)flake8-bandit
] Avoid false-positives for list concatenations in SQL construction (S608
) (#12720)flake8-bugbear
] Treat return
as equivalent to break
(B909
) (#12646)flake8-comprehensions
] Set comprehensions not a violation for sum
in unnecessary-comprehension-in-call
(C419
) (#12691)flake8-simplify
] Parenthesize conditions based on precedence when merging if arms (SIM114
) (#12737)pydoclint
] Try both 'Raises' section styles when convention is unspecified (DOC501
) (#12649)Changelog
0.5.6
Ruff 0.5.6 automatically enables linting and formatting of notebooks in preview mode.
You can opt-out of this behavior by adding *.ipynb
to the extend-exclude
setting.
[tool.ruff]
extend-exclude = ["*.ipynb"]
flake8-builtins
] Implement import, lambda, and module shadowing (#12546)pydoclint
] Add docstring-missing-returns
(DOC201
) and docstring-extraneous-returns
(DOC202
) (#12485)flake8-return
] Exempt cached properties and other property-like decorators from explicit return rule (RET501
) (#12563)$/logTrace
for server trace logs in Zed and VS Code (#12564)flake8-implicit-str-concat
] Always allow explicit multi-line concatenations when implicit concatenations are banned (#12532)flake8-async
] Avoid flagging asyncio.timeout
s as unused when the context manager includes asyncio.TaskGroup
(#12605)flake8-slots
] Avoid recommending __slots__
for classes that inherit from more than namedtuple
(#12531)isort
] Avoid marking required imports as unused (#12537)isort
] Preserve trailing inline comments on import-from statements (#12498)pycodestyle
] Add newlines before comments (E305
) (#12606)pycodestyle
] Don't attach comments with mismatched indents (#12604)pyflakes
] Fix preview-mode bugs in F401
when attempting to autofix unused first-party submodule imports in an __init__.py
file (#12569)pylint
] Respect start index in unnecessary-list-index-lookup
(#12603)pyupgrade
] Avoid recommending no-argument super in slots=True
dataclasses (#12530)pyupgrade
] Use colon rather than dot formatting for integer-only types (#12534)Changelog
0.5.5
fastapi
] Implement fastapi-redundant-response-model
(FAST001
) and fastapi-non-annotated-dependency
(FAST002
) (#11579)pydoclint
] Implement docstring-missing-exception
(DOC501
) and docstring-extraneous-exception
(DOC502
) (#11471)numpy
] Fix NumPy 2.0 rule for np.alltrue
and np.sometrue
(#12473)numpy
] Ignore NPY201
inside except
blocks for compatibility with older numpy versions (#12490)pep8-naming
] Avoid applying ignore-names
to self
and cls
function names (N804
, N805
) (#12497)Ord
implementation of cmp_fix
(#12471)pydoclint
] Fix panic in DOC501
reported in #12428 (#12435)flake8-bugbear
] Allow singleton tuples with starred expressions in B013
(#12484)Changelog
0.5.4
ruff
] Rename RUF007
to zip-instead-of-pairwise
(#12399)flake8-builtins
] Avoid shadowing diagnostics for @override
methods (#12415)flake8-comprehensions
] Insert parentheses for multi-argument generators (#12422)pydocstyle
] Handle escaped docstrings within docstring (D301
) (#12192)Changelog
0.5.3
Ruff 0.5.3 marks the stable release of the Ruff language server and introduces revamped documentation, including setup guides for your editor of choice and the language server itself.
pyupgrade
] Implement unnecessary-default-type-args
(UP043
) (#12371)flake8-bugbear
] Detect enumerate iterations in loop-iterator-mutation
(B909
) (#12366)flake8-bugbear
] Remove discard
, remove
, and pop
allowance for loop-iterator-mutation
(B909
) (#12365)pylint
] Allow repeated-equality-comparison
for mixed operations (PLR1714
) (#12369)pylint
] Ignore self
and cls
when counting arguments (PLR0913
) (#12367)pylint
] Use UTF-8 as default encoding in unspecified-encoding
fix (PLW1514
) (#12370)--preview
flag for server
subcommand for the linter and formatter (#12208)flake8-comprehensions
] Allow additional arguments for sum
and max
comprehensions (C419
) (#12364)pylint
] Avoid dropping extra boolean operations in repeated-equality-comparison
(PLR1714
) (#12368)pylint
] Consider expression before statement when determining binding kind (PLR1704
) (#12346)