Charlie Marsh
93fdf7ed36
Fix miscellaneous issues in await-outside-async detection
( #14218 )
...
## Summary
Closes https://github.com/astral-sh/ruff/issues/14167 .
2024-11-08 21:07:13 -05:00
Michal Čihař
b19f388249
[refurb
] Use UserString
instead of non-existent UserStr
( #14209 )
...
## Summary
The class name is UserString, not a UserStr, see
https://docs.python.org/3.9/library/collections.html#collections.UserString
2024-11-08 20:54:18 -05:00
Dhruv Manilawala
fbf140a665
Bump version to 0.7.3 ( #14197 )
2024-11-08 16:39:37 +05:30
Simon Brugman
d1ef418bb0
Docs: tweak rules documentation ( #14180 )
...
Co-authored-by: Micha Reiser <micha@reiser.io>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2024-11-08 09:01:53 +00:00
Charlie Marsh
272d24bf3e
[flake8-pyi
] Add a fix for duplicate-literal-member
( #14188 )
...
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz (push) Blocked by required conditions
CI / Fuzz the parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
## Summary
Closes https://github.com/astral-sh/ruff/issues/14187 .
2024-11-08 03:45:19 +00:00
Simon Brugman
2040e93add
[flake8-logging-format
] Fix invalid formatting value in docs of logging-extra-attr-clash
(G101
) ( #14165 )
2024-11-07 21:00:05 +01:00
Simon Brugman
794eb886e4
[flake8-bandit
] Typo in docs suspicious-pickle-import
(S403
) ( #14175 )
2024-11-07 20:59:18 +01:00
Simon Brugman
fe8e49de9a
[pyflakes
] Typo in docs for if-tuple
(F634
) ( #14158 )
2024-11-07 15:28:20 +00:00
InSync
b8188b2262
[flake8-pyi
] Add autofix for docstring-in-stub
(PYI021
) ( #14150 )
...
Co-authored-by: Micha Reiser <micha@reiser.io>
Co-authored-by: Alex Waygood <alex.waygood@gmail.com>
2024-11-07 12:00:19 +00:00
Simon Brugman
136721e608
[refurb
] Implement subclass-builtin
(FURB189
) ( #14105 )
...
## Summary
Implementation for one of the rules in
https://github.com/astral-sh/ruff/issues/1348
Refurb only deals only with classes with a single base, however the rule
is valid for any base.
(`str, Enum` is common prior to `StrEnum`)
## Test Plan
`cargo test`
---------
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
2024-11-07 17:26:19 +05:30
Dhruv Manilawala
5b500b838b
Update known dunder methods for Python 3.13 ( #14146 )
...
## Summary
Closes : #14145
2024-11-07 11:39:00 +05:30
Dylan
cb003ebe22
[flake8-builtins
] Skip lambda expressions in builtin-argument-shadowing (A002)
( #14144 )
...
CI / cargo test (windows) (push) Blocked by required conditions
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz (push) Blocked by required conditions
CI / Fuzz the parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
Flake8-builtins provides two checks for arguments (really, parameters)
of a function shadowing builtins: A002 checks function definitions, and
A006 checks lambda expressions. This PR ensures that A002 is restricted
to functions rather than lambda expressions.
Closes #14135 .
2024-11-07 05:34:09 +00:00
InSync
46c5a13103
[eradicate
] Better detection of IntelliJ language injection comments (ERA001
) ( #14094 )
2024-11-06 18:24:15 +00:00
Lokejoke
abafeb4bee
Fix: Recover boolean test flag after visiting subexpressions ( #13909 )
...
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo shear (push) Blocked by required conditions
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz (push) Blocked by required conditions
CI / Fuzz the parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
Co-authored-by: xbrtnik1 <524841@mail.muni.cz>
2024-11-05 20:55:49 +01:00
Dylan
2b76fa8fa1
[refurb] Parse more exotic decimal strings in verbose-decimal-constructor (FURB157)
( #14098 )
...
FURB157 suggests replacing expressions like `Decimal("123")` with
`Decimal(123)`. This PR extends the rule to cover cases where the input
string to `Decimal` can be easily transformed into an integer literal.
For example:
```python
Decimal("1__000") # fix: `Decimal(1000)`
```
Note: we do not implement the full decimal parsing logic from CPython on
the grounds that certain acceptable string inputs to the `Decimal`
constructor may be presumed purposeful on the part of the developer. For
example, as in the linked issue, `Decimal("١٢٣")` is valid and equal to
`Decimal(123)`, but we do not suggest a replacement in this case.
Closes #13807
2024-11-05 13:33:04 -06:00
InSync
bb25bd9c6c
Also remove trailing comma while fixing C409 and C419 ( #14097 )
2024-11-04 20:33:30 +00:00
Simon Brugman
b7e32b0a18
Re-enable clippy useless-format
( #14095 )
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo shear (push) Blocked by required conditions
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz (push) Blocked by required conditions
CI / Fuzz the parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
2024-11-04 18:25:25 +01:00
Simon Brugman
fb94b71e63
Derive message formats macro support to string ( #14093 )
2024-11-04 18:06:25 +01:00
Simon Brugman
a7a78f939c
Replace format!
without parameters with .to_string()
( #14090 )
...
Co-authored-by: Alex Waygood <alex.waygood@gmail.com>
2024-11-04 14:09:30 +00:00
Fábio D. Batista
2b73a1c039
[eradicate
] ignore # language=
in commented-out-code rule (ERA001) ( #14069 )
...
## Summary
The `commented-out-code` rule (ERA001) from `eradicate` is currently
flagging a very common idiom that marks Python strings as another
language, to help with syntax highlighting:

This PR adds this idiom to the list of allowed exceptions to the rule.
## Test Plan
I've added some additional test cases.
2024-11-03 16:50:00 -05:00
Charlie Marsh
2b0cdd2338
Improve some rule messages and docs ( #14068 )
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz (push) Blocked by required conditions
CI / Fuzz the parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
2024-11-03 19:25:43 +00:00
Charlie Marsh
f09dc8b67c
Detect items that hash to same value in duplicate dictionaries ( #14065 )
...
## Summary
Closes https://github.com/astral-sh/ruff/issues/12772 .
2024-11-03 14:16:34 -05:00
Charlie Marsh
71a122f060
Allow open
without context manager in return
statement ( #14066 )
...
## Summary
Closes https://github.com/astral-sh/ruff/issues/13862 .
2024-11-03 14:16:27 -05:00
Matt Norton
3ca24785ae
Add links to missing related options within rule documentations ( #13971 )
...
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-11-03 14:15:57 -05:00
Charlie Marsh
1de36cfe4c
Fix wrong-size header in open-file-with-context-handler
( #14067 )
2024-11-03 19:06:40 +00:00
Charlie Marsh
66872a41fc
Detect items that hash to same value in duplicate sets ( #14064 )
...
## Summary
Like https://github.com/astral-sh/ruff/pull/14063 , but ensures that we
catch cases like `{1, True}` in which the items hash to the same value
despite not being identical.
2024-11-03 18:49:11 +00:00
Charlie Marsh
e00594e8d2
Respect hash-equivalent literals in iteration-over-set
( #14063 )
...
## Summary
Closes https://github.com/astral-sh/ruff/issues/14049 .
2024-11-03 18:44:52 +00:00
Steve C
ae9f08d1e5
[ruff
] - fix false positive for decorators (RUF028
) ( #14061 )
2024-11-03 11:49:03 +00:00
Steve C
f69712c11d
[flake8-pyi
] - include all python file types for PYI006
and PYI066
( #14059 )
2024-11-03 11:47:36 +00:00
Steve C
be485602de
Fix preview link references in 2 rule docs ( #14060 )
2024-11-03 11:45:35 +00:00
Steve C
bc7615af0e
[flake8-bugbear
] - do not run mutable-argument-default
on stubs (B006
) ( #14058 )
...
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz (push) Blocked by required conditions
CI / Fuzz the parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
## Summary
Early-exits in `B006` when the file is a stub. Fixes #14026
## Test Plan
`cargo test`
2024-11-02 22:48:48 -04:00
Charlie Marsh
4a3eeeff86
Remove HashableExpr
abstraction ( #14057 )
...
## Summary
It looks like `ComparableExpr` now implements `Hash` so we can just
remove this.
2024-11-02 20:28:35 +00:00
Charlie Marsh
35c6dfe481
Avoid parsing joint rule codes as distinct codes in # noqa
( #12809 )
...
## Summary
We should enable warnings for unsupported codes, but this at least fixes
the parsing for `# noqa: F401F841`.
Closes https://github.com/astral-sh/ruff/issues/12808 .
2024-11-02 20:24:59 +00:00
Simon Brugman
f8374280c0
[flake8-simplify
] Implementation for split-of-static-string
(SIM905) ( #14008 )
...
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz (push) Blocked by required conditions
CI / Fuzz the parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
## Summary
Closes https://github.com/astral-sh/ruff/issues/13944
## Test Plan
Standard snapshot testing
flake8-simplify surprisingly only has a single test case
---------
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-11-02 17:15:36 +00:00
Steve C
0925513529
[pyupgrade
] - ignore kwarg unpacking for UP044
( #14053 )
...
## Summary
Fixes #14047
## Test Plan
`catgo test`
---------
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-11-02 13:10:56 -04:00
Simon Brugman
5053d2c127
Doc: markdown link fix ( #14041 )
...
Typo in `mutable-contextvar-default` in `flake8-bugbear`
2024-11-01 14:19:00 +00:00
Dhruv Manilawala
ef72fd79a7
Bump version to 0.7.2 ( #14039 )
2024-11-01 19:09:07 +05:30
STACIA
658a51ea10
Fix typo for static method decorator ( #14038 )
2024-11-01 12:30:50 +00:00
Simon Brugman
9a6b08b557
[flake8-simplify
] Include caveats of enabling if-else-block-instead-of-if-exp
(SIM108) ( #14019 )
2024-10-31 17:26:22 +00:00
Steve C
2d917d72f6
[pyupgrade
] - add PEP646 Unpack conversion to *
with fix (UP044
) ( #13988 )
...
Co-authored-by: Micha Reiser <micha@reiser.io>
2024-10-31 06:58:34 +00:00
Simon Brugman
f426349051
docs: typo in refurb-sorted-min-max ( #13993 )
2024-10-30 12:07:42 +00:00
Charlie Marsh
b6847b371e
Skip namespace package enforcement for PEP 723 scripts ( #13974 )
...
## Summary
Vendors the PEP 723 parser from
[uv](debe67ffdb/crates/uv-scripts/src/lib.rs (L283)
).
Closes https://github.com/astral-sh/ruff/issues/13912 .
2024-10-29 02:11:31 +00:00
Dhruv Manilawala
ec6208e51b
Treat return type of singledispatch
as runtime-required ( #13957 )
...
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz (push) Blocked by required conditions
CI / Fuzz the parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
## Summary
fixes : #13955
## Test Plan
Update existing test case to use a return type hint for which `main`
flags `TCH003`.
2024-10-28 20:33:28 -04:00
Micha Reiser
9f3a38d408
Extract LineIndex
independent methods from Locator
( #13938 )
CI / Fuzz the parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz (push) Blocked by required conditions
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
2024-10-28 07:53:41 +00:00
renovate[bot]
41f74512df
Update Rust crate insta to v1.41.0 ( #13956 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Micha Reiser <micha@reiser.io>
2024-10-28 06:51:53 +00:00
Dhruv Manilawala
5af0966057
Remove unreferenced snapshots ( #13958 )
2024-10-28 07:16:05 +01:00
Micha Reiser
5a56886414
TCH003: Fix false positive for singledispatchmethod
( #13941 )
...
## Summary
Fixes https://github.com/astral-sh/ruff/issues/13924
## Test Plan
Added test
2024-10-27 21:02:45 -04:00
Micha Reiser
32b57b2ee4
Enable nursery rules: 'redundant_clone', 'debug_assert_with_mut_call', and 'unused_peekable' ( #13920 )
2024-10-25 09:46:30 +02:00
Dhruv Manilawala
337af836d3
Bump version to 0.7.1 ( #13913 )
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz (push) Blocked by required conditions
CI / Fuzz the parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
2024-10-24 20:57:07 +05:30
Micha Reiser
e402e27a09
Use referencial equality in traversal
helper methods ( #13895 )
2024-10-24 11:30:22 +02:00