@astral-sh/ruff-wasm-bundler
Advanced tools
Changelog
0.6.5
pydoclint
] Ignore DOC201
when function name is "new" (#13300)refurb
] Implement slice-to-remove-prefix-or-suffix
(FURB188
) (#13256)eradicate
] Ignore script-comments with multiple end-tags (ERA001
) (#13283)pyflakes
] Improve error message for UndefinedName
when a builtin was added in a newer version than specified in Ruff config (F821
) (#13293)ruff
] Handle unary operators in decimal-from-float-literal
(RUF032
) (#13275)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)