What's Changed
Rules
- Add autofix for flake8-type-checking by @charliermarsh in #4742
- [
airflow
] Add AIR001: task variable name should be same as task_id arg by @jlaneve in #4687 - [
flake8-bandit
] Implement S609, linux_commands_wildcard_injection by @scop in #4504 - [
flake8-bugbear
] Move duplicate-value rule to flake8-bugbear by @charliermarsh in #4882 - [
flake8-fixme
] Implementflake8_fixme
and refactorTodoDirective
by @evanrittenhouse in #4681 - [
flake8-future-annotations
] ImplementFA102
by @akx in #4702 - [
flake8-pyi
] Add PYI024 forflake8-pyi
plugin by @qdegraaf in #4756 - [
flake8-pyi
] Add PYI034 forflake8-pyi
plugin by @qdegraaf in #4764 - [
flake8-pyi
] AddPYI032
rule with autofix by @qdegraaf in #4695 - [
flake8-pyi
] Add autofix for PYI010 by @qdegraaf in #4634 - [
flake8-pyi
] Implement PYI029 by @density in #4851 - [
flake8-pyi
] Implement PYI035 by @density in #4820 - [
flake8-pyi
] Implement PYI048 forflake8-pyi
plugin by @qdegraaf in #4645 - [
flake8-pyi
] Implement PYI053 by @density in #4770 - [
flake8-pyi
] Implement PYI054 by @density in #4775 - [
flake8-pyi
] ImplementPYI025
by @qdegraaf in #4791 - [
flake8-pyi
] ImplementPYI045
by @density in #4700 - [
pylint
] Add Pylint ruleC0208
(use-sequence-for-iteration
) asPLC0208
(iteration-over-set
) by @tjkuson in #4706 - [
pylint
] Add autofix forPLR1701
(repeated-isinstance-calls) by @dhruvmanila in #4792 - [
pylint
] Implement Pylint'syield-inside-async-function
rule (PLE1700
) by @chanman3388 in #4668 - [
pylint
] implement E307 for pylint invalid str return type by @Ryang20718 in #4854 - [
ruff
] Lint pyproject.toml by @konstin in #4496 - [
tryceratops
] Ignore error calls withexc_info
in TRY400 by @charliermarsh in #4797
Settings
- Add
pyflakes.extend-generics
setting by @JonathanPlasse in #4677
Bug Fixes
- Fix PLW3301 false positive single argument nested min/max by @JonathanPlasse in #4683
- Handle dotted alias imports to check for implicit imports by @dhruvmanila in #4685
- Flag empty strings in flake8-errmsg rules by @charliermarsh in #4745
- Exclude function definition from too-many-statements rule by @charliermarsh in #4794
- Preserve quotes in F523 fixer by @charliermarsh in #4836
- Fix round-tripping of nested functions by @charliermarsh in #4875
- Avoid early-exit in explicit-f-string-type-conversion by @charliermarsh in #4886
- Avoid no-op fix for nested with expressions by @charliermarsh in #4906
- Fix UP036 auto-fix error by @JonathanPlasse in #4679
- Use class name as range for
B024
by @charliermarsh in #4647 - Change TODO directive detection to work with multiple pound signs on the same line by @evanrittenhouse in #4558
- Allow more immutable funcs for RUF009 by @qdegraaf in #4660
- Avoid using typing-imported symbols for runtime edits by @charliermarsh in #4649
- Fix
async for
formatting by @charliermarsh in #4675 - Ignore setattr in FBT003 by @alexfikl in #4752
- Include ImportError in non-fixable try-catch imports by @charliermarsh in #4793
- Avoid extra newline between diagnostics in grouped mode by @charliermarsh in #4776
- Avoid enforcing native-literals rule within nested f-strings by @charliermarsh in #4488
- Respect mixed variable assignment in RET504 by @charliermarsh in #4835
- Make FLY002 autofix into a constant string instead of an f-string if all
join()
arguments are strings by @evanrittenhouse in #4834 - Add some exceptions for FBT003 (#3247) by @allisonkarlitskaya in #4867
- Avoid running RUF100 rules when code contains syntax errors by @charliermarsh in #4869
- Avoid index-out-of-bands panic for positional placeholders by @charliermarsh in #4872
- Remove destructive fixes for F523 by @charliermarsh in #4883
- Respect shadowed exports in
__all__
by @charliermarsh in #4885 - Track symbol deletions separately from bindings by @charliermarsh in #4888
- Change fixable_set to include RuleSelector::All/Nursery by @evanrittenhouse in #4852
New Contributors
- @bersbersbers made their first contribution in #4644
- @jlaneve made their first contribution in #4690
- @suharnikov made their first contribution in #4678
- @alexfikl made their first contribution in #4752
- @allisonkarlitskaya made their first contribution in #4867
- @Ryang20718 made their first contribution in #4854
- @addisoncrump made their first contribution in #4893
Full Changelog: v0.0.270...v0.0.271