..
airflow
[`airflow`] Get rid of `Replacement::Name` and replace them with `Replacement::AutoImport` for enabling auto fixing (`AIR301`, `AIR311`) ( #17941 )
2025-05-14 11:10:15 -04:00
control-flow-graph
[`pylint`] Fix `unreachable` infinite loop (`PLW0101`) ( #15278 )
2025-01-08 09:45:04 -06:00
eradicate
[`eradicate`] Correctly handle metadata blocks directly followed by normal blocks (`ERA001`) ( #15330 )
2025-01-07 16:22:22 -05:00
fastapi
[`FastAPI`] Update `Annotated` fixes (`FAST002`) ( #15462 )
2025-01-15 13:05:53 -05:00
filesystem
Rename `ruff` crate to `ruff_linter` ( #7529 )
2023-09-20 08:38:27 +02:00
flake8_2020
Rename `ruff` crate to `ruff_linter` ( #7529 )
2023-09-20 08:38:27 +02:00
flake8_annotations
[ruff 0.8] [`flake8-annotations`] Remove deprecated rules ANN101 and ANN102 ( #14384 )
2024-11-20 13:11:51 +01:00
flake8_async
[`flake8-async`] allow async generators (`ASYNC100`) ( #13639 )
2024-10-07 07:25:54 -05:00
flake8_bandit
Skip S608 for expressionless f-strings ( #17999 )
2025-05-10 11:37:58 +01:00
flake8_blind_except
Respect logged and re-raised expressions in nested statements ( #11301 )
2024-05-05 21:52:09 -04:00
flake8_boolean_trap
FBT001: exclude boolean operators ( #14203 )
2024-11-10 22:40:37 +00:00
flake8_bugbear
[`flake8-bugbear`] Ignore `B028` if `skip_file_prefixes` is present ( #18047 )
2025-05-12 17:06:51 -05:00
flake8_builtins
[flake8-builtins] Ignore variables matching module attribute names (A001) ( #16454 )
2025-03-03 11:10:23 +01:00
flake8_commas
Enable token-based rules on source with syntax errors ( #11950 )
2024-07-02 08:57:46 +00:00
flake8_comprehensions
[flake8-comprehensions]: Handle trailing comma in C403 fix ( #16110 )
2025-02-15 11:45:41 -06:00
flake8_datetimez
[`flake8-datetime`] Ignore `.replace()` calls while looking for `.astimezone` ( #16050 )
2025-02-09 15:48:59 +00:00
flake8_debugger
[`flake8-debugger`] Also flag `sys.breakpointhook` and `sys.__breakpointhook__` (`T100`) ( #16191 )
2025-02-16 14:50:16 -05:00
flake8_django
[`flake8-django`] Recognize other magic methods (`DJ012`) ( #15365 )
2025-01-09 14:36:42 +01:00
flake8_errmsg
Allow `EM` fixes even if `msg` variable is defined ( #9059 )
2023-12-08 15:16:15 -06:00
flake8_executable
[`flake8-executables`] Allow `uv run` in shebang line for `shebang-missing-python` (`EXE003`) ( #16849 )
2025-03-19 10:35:07 -05:00
flake8_fixme
Fix TODO directive out of bounds acccess ( #13756 )
2024-10-15 10:49:53 +02:00
flake8_future_annotations
Avoid flagging `__future__` annotations as required for non-evaluated type annotations ( #11414 )
2024-05-21 18:57:13 +00:00
flake8_gettext
Rename `ruff` crate to `ruff_linter` ( #7529 )
2023-09-20 08:38:27 +02:00
flake8_implicit_str_concat
[`flake8-implicit-str-concat`] Normalize octals before merging concatenated strings in `single-line-implicit-string-concatenation` (`ISC001`) ( #13118 )
2024-08-27 18:53:27 +01:00
flake8_import_conventions
[flake8-import-conventions] Add import `numpy.typing as npt` to default `flake8-import-conventions.aliases` ( #17133 )
2025-04-02 09:25:46 +02:00
flake8_logging
[`flake8-logging`] `.exception()` and `exc_info=` outside exception handlers (`LOG004`, `LOG014`) ( #15799 )
2025-02-04 09:52:12 +01:00
flake8_logging_format
Include inline instantiations when detecting loggers ( #11154 )
2024-04-25 21:00:12 -04:00
flake8_no_pep420
Skip namespace package enforcement for PEP 723 scripts ( #13974 )
2024-10-29 02:11:31 +00:00
flake8_pie
[`flake8-pie`] Mark autofix for `PIE804` as unsafe if the dictionary contains comments ( #18046 )
2025-05-12 10:16:59 -05:00
flake8_print
Rename `ruff` crate to `ruff_linter` ( #7529 )
2023-09-20 08:38:27 +02:00
flake8_pyi
[`flake8-pyi`] Ensure `Literal[None,] | Literal[None,]` is not autofixed to `None | None` (`PYI061`) ( #17659 )
2025-04-28 12:23:29 +01:00
flake8_pytest_style
[`flake8-pytest-style`] Don't recommend `usefixtures` for parametrize values in `PT019` ( #17650 )
2025-05-14 10:31:42 -04:00
flake8_quotes
Add semantic model flag when inside f-string replacement field ( #10766 )
2024-04-04 09:08:48 +05:30
flake8_raise
Avoid false-positives for parens-on-raise with futures.exception() ( #10206 )
2024-03-03 00:28:51 +00:00
flake8_return
[`flake8-return`] Recognize functions returning `Never` as non-returning (`RET503`) ( #15298 )
2025-01-07 07:57:34 +00:00
flake8_self
[`flake8-self`] Ignore attribute accesses on instance-like variables (`SLF001`) ( #16149 )
2025-02-23 10:00:49 +00:00
flake8_simplify
[`flake8-simplify`] Correct behavior for `str.split`/`rsplit` with `maxsplit=0` (`SIM905`) ( #18075 )
2025-05-14 14:20:18 -04:00
flake8_slots
Avoid recommending `__slots__` for classes that inherit from more than `namedtuple` ( #12531 )
2024-07-26 14:24:40 +00:00
flake8_tidy_imports
Rename `ruff` crate to `ruff_linter` ( #7529 )
2023-09-20 08:38:27 +02:00
flake8_todos
[`flake8-todos`] Allow VSCode GitHub PR extension style links in `missing-todo-link` (`TD003`) ( #15519 )
2025-01-15 23:47:33 +00:00
flake8_type_checking
Fixes how the checker visits `typing.cast`/`typing.NewType` arguments ( #17538 )
2025-04-23 09:26:00 +02:00
flake8_unused_arguments
Consider `__new__` methods as special function type for enforcing class method or static method rules ( #13305 )
2025-02-16 14:12:25 -06:00
flake8_use_pathlib
[`flake8-use-pathlib`] `PTH*` suppress diagnostic for all `os.*` functions that have the `dir_fd` parameter ( #17968 )
2025-05-12 16:11:56 -04:00
flynt
Rename `ruff` crate to `ruff_linter` ( #7529 )
2023-09-20 08:38:27 +02:00
isort
enforce required imports even with useless alias ( #14287 )
2024-11-14 15:39:38 -06:00
mccabe
Rename `ruff` crate to `ruff_linter` ( #7529 )
2023-09-20 08:38:27 +02:00
numpy
Ignore `NPY201` inside `except` blocks for compatibility with older numpy versions ( #12490 )
2024-07-24 20:03:23 +00:00
pandas_vet
Limit inplace diagnostics to methods that accept inplace ( #9495 )
2024-01-12 14:12:54 -05:00
pep8_naming
[`pep8-naming`] Consider any number of leading underscore for `N801` ( #15988 )
2025-02-06 14:08:27 +05:30
perflint
Fix typos ( #17988 )
2025-05-09 14:57:14 -04:00
pycodestyle
[`pycodestyle`] Fix duplicated diagnostic in `E712` ( #17651 )
2025-04-28 08:31:16 +01:00
pydoclint
Fix typos found by codespell ( #14863 )
2024-12-09 09:32:12 +00:00
pydocstyle
[`pydocstyle`] Handle arguments with the same names as sections (`D417`) ( #16011 )
2025-02-11 12:05:29 -05:00
pyflakes
Add new rule RUF059: Unused unpacked assignment ( #16449 )
2025-03-03 10:51:36 +01:00
pygrep_hooks
Respect per-file ignores for blanket and redirected noqa rules ( #11728 )
2024-06-04 03:57:59 +00:00
pylint
[`pylint`] Detect `global` declarations in module scope (`PLE0118`) ( #17411 )
2025-04-25 08:37:16 -04:00
pyupgrade
[`pyupgrade`] Add `resource.error` as deprecated alias of `OSError` (`UP024`) ( #17933 )
2025-05-14 10:37:25 -04:00
refurb
[`refurb`] Mark autofix as safe only for number literals in `FURB116` ( #17692 )
2025-05-12 16:08:12 -04:00
ruff
[`ruff`] Implement a recursive check for `RUF060` ( #17976 )
2025-05-12 16:17:13 -04:00
syntax_errors
[semantic-syntax-tests] Add test fixtures for `AwaitOutsideAsyncFunction` ( #17785 )
2025-05-05 14:02:06 -04:00
tryceratops
Recode `TRY302` to `TRY203` ( #13502 )
2024-10-17 16:35:12 +01:00
__init__.py
[`pylint`] (Re-)Implement `import-private-name` (`C2701`) ( #9553 )
2024-01-16 14:03:11 -05:00