Charlie Marsh
ff96219e62
Exclude None, Bool, and Ellipsis from ConstantType ( #1988 )
...
These have no effect, so it's confusing that they're even settable.
2023-01-18 20:50:09 -05:00
Charlie Marsh
d33424ec9d
Enable suppression of magic values by type ( #1987 )
...
Closes #1949 .
2023-01-18 20:44:24 -05:00
Charlie Marsh
34412a0a01
Avoid removing side effects for boolean simplifications ( #1984 )
...
Closes #1978 .
2023-01-18 19:08:14 -05:00
Charlie Marsh
ceb48d3a32
Use relative paths for INP001 ( #1981 )
2023-01-18 18:45:47 -05:00
Charlie Marsh
969a6f0d53
Replace misplaced-comparison-constant with SIM300 ( #1980 )
...
Closes : #1954 .
2023-01-18 18:42:49 -05:00
Charlie Marsh
7628876ff2
Invert order of yoda-conditions message ( #1979 )
...
The suggestion was wrong!
2023-01-18 18:27:36 -05:00
Charlie Marsh
ef355e5c2c
Remove artificial wraps from GitHub messages ( #1977 )
2023-01-18 18:20:56 -05:00
Charlie Marsh
97f55b8e97
Convert remaining call path sites to use SmallVec
( #1972 )
2023-01-18 14:50:33 -05:00
Aarni Koskela
ff2be35f51
Run cargo fmt in pre-commit ( #1968 )
...
Since `cargo fmt` is a required CI check, we could just as well run it in `pre-commit`.
2023-01-18 13:14:51 -05:00
Anders Kaseorg
1e803f7108
README: Link “Flake8” for consistency with the rest of the list ( #1969 )
...
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2023-01-18 13:07:21 -05:00
Charlie Marsh
1ab0273aa7
Strip whitespace when injecting D209 newline ( #1967 )
...
Closes #1963 .
2023-01-18 12:09:17 -05:00
Charlie Marsh
5a7d8c25f4
Treat subscript accesses as unsafe effects for autofix ( #1966 )
...
See: #1809 .
2023-01-18 11:46:12 -05:00
Charlie Marsh
26d6414558
Fix UP003 check from rebase
2023-01-18 11:39:39 -05:00
Charlie Marsh
dae95626ae
Use smallvec
for call path representation ( #1960 )
...
This provides a ~10% speed-up for large codebases with `--select ALL`:

2023-01-18 11:29:05 -05:00
Maksudul Haque
9a3e525930
[isort
] Add no-lines-before
Option ( #1955 )
...
Closes https://github.com/charliermarsh/ruff/issues/1916 .
2023-01-18 11:09:47 -05:00
Anders Kaseorg
b9c6cfc0ab
Autofix SIM117 (MultipleWithStatements) ( #1961 )
...
This is slightly buggy due to Instagram/LibCST#855 ; it will complain `[ERROR] Failed to fix nested with: Failed to extract CST from source` when trying to fix nested parenthesized `with` statements lacking trailing commas. But presumably people who write parenthesized `with` statements already knew that they don’t need to nest them.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2023-01-18 11:06:04 -05:00
Charlie Marsh
b1f10c8339
Confine type-of-primitive checks to builtin type calls ( #1962 )
...
Closes #1958 .
2023-01-18 10:53:50 -05:00
Anders Kaseorg
83346de6e0
Autofix SIM102 (NestedIfStatements)
...
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2023-01-18 07:37:27 -05:00
Anders Kaseorg
b23cc31863
Change ast::helpers::has_coments to accept a Range
...
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2023-01-18 07:37:27 -05:00
Anders Kaseorg
462d81beb7
Ensure ast::whitespace::indentation extracts whitespace
...
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2023-01-18 07:37:27 -05:00
Anders Kaseorg
715ea2d374
Accept a Locator for ast::whitespace::indentation
...
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2023-01-18 07:37:27 -05:00
skykasko
6c7e60b4f9
Fix bad link for flake8-no-pep420 ( #1952 )
...
See https://github.com/charliermarsh/ruff/pull/1942 .
2023-01-18 07:36:05 -05:00
Maksudul Haque
868d0b3e29
[isort
] Add constants
and variables
Options ( #1951 )
...
closes https://github.com/charliermarsh/ruff/issues/1819
2023-01-18 07:30:51 -05:00
Charlie Marsh
cdb4700813
Bump version to 0.0.225
2023-01-18 00:22:48 -05:00
Anders Kaseorg
ea4d54a90f
Restrict SIM105 to try blocks with a body of one simple statement ( #1948 )
...
If a `try` block has multiple statements, a compound statement, or
control flow, rewriting it with `contextlib.suppress` would obfuscate
the fact that the exception still short-circuits further statements in
the block.
Fixes #1947 .
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2023-01-18 00:22:22 -05:00
Charlie Marsh
51b917cfbf
Exempt contextlib.ExitStack()
for SIM115 rules ( #1946 )
...
Since our binding tracking is somewhat limited, I opted to favor false negatives over false positives. So, e.g., this won't trigger SIM115:
```py
with contextlib.ExitStack():
f = exit_stack.enter_context(open("filename"))
```
(Notice that `exit_stack` is unbound.)
The alternative strategy required us to incorrectly trigger SIM115 on this:
```py
with contextlib.ExitStack() as exit_stack:
exit_stack_ = exit_stack
f = exit_stack_.enter_context(open("filename"))
```
Closes #1945 .
2023-01-17 22:39:54 -05:00
Edgar R. M
c880d744fd
Implement flake8-no-pep420
( #1942 )
...
Closes https://github.com/charliermarsh/ruff/issues/1844 .
2023-01-17 22:10:32 -05:00
Charlie Marsh
84d1df08be
Avoid broken autofix for SIM103
with elif
( #1944 )
...
Also adjusts the generator to avoid the extra parentheses (and skips commented `if` statements).
Closes #1943 .
2023-01-17 22:03:17 -05:00
Charlie Marsh
b9bb5acff8
Remove unnecessary setuptools block
2023-01-17 21:17:37 -05:00
Charlie Marsh
ca7c3c2175
Avoid autofixing comma rules when --fix is not set ( #1940 )
...
Closes #1939 .
2023-01-17 20:09:01 -05:00
Charlie Marsh
8891e2e62b
Fix name of ruff-pre-commit event
2023-01-17 17:25:02 -05:00
Martin Fischer
53265e0ed4
cli: Catch panics to tell the user to report them ( #1928 )
2023-01-17 17:17:09 -05:00
Charlie Marsh
072849a8a9
Move @functools.cache
rewrites to their own rule ( #1938 )
...
Closes #1934 .
2023-01-17 15:12:40 -05:00
Charlie Marsh
70ea4b25e8
Allow duplicate enum values for enum.auto() ( #1933 )
...
Closes #1932 .
2023-01-17 11:14:11 -05:00
Martin Fischer
30e133f3d8
refactor: Declare defaults once in settings::defaults
2023-01-17 09:20:57 -05:00
Martin Fischer
aa812de07e
refactor: Implement Default for Settings
2023-01-17 09:20:57 -05:00
Martin Fischer
57ac6a8444
refactor: Make resolve_codes take IntoIterator instead of Iterator
2023-01-17 09:20:57 -05:00
Martin Fischer
a6566b1b34
refactor: Merge Settings.enabled and Settings.fixable
...
The Settings struct previously contained the fields:
pub enabled: HashableHashSet<RuleCode>,
pub fixable: HashableHashSet<RuleCode>,
This commit merges both fields into one by introducing a new
RuleTable type, wrapping HashableHashMap<RuleCode, bool>,
which has the following benefits:
1. It makes the invalid state that a rule is
disabled but fixable unrepresentable.
2. It encapsulates the implementation details of the table.
(It currently uses an FxHashMap but that may change.)
3. It results in more readable code.
settings.rules.enabled(rule)
settings.rules.should_fix(rule)
is more readable than:
settings.enabled.contains(rule)
settings.fixable.contains(rule)
2023-01-17 09:20:57 -05:00
Martin Fischer
580da1fa6b
refactor: Group Settings fields
2023-01-17 09:20:57 -05:00
Martin Fischer
b78b6f275e
refactor: Define origin names & URLs within doc comments
2023-01-17 07:44:40 -05:00
Martin Fischer
6868bb46f5
refactor: Get rid of Platform enum
2023-01-17 07:44:40 -05:00
Martin Fischer
601848d9a8
refactor: Rename RuleOrigin::title to RuleOrigin::name
2023-01-17 07:44:40 -05:00
Martin Fischer
f4da7635f0
Add missing url for flake8-import-conventions
2023-01-17 07:44:40 -05:00
Charlie Marsh
74a8a218f3
Bump version to 0.0.224
2023-01-16 23:43:14 -05:00
Colin Delahunty
1730f2a603
[pyupgrade] Automatically rewrite format-strings to f-strings ( #1905 )
2023-01-16 23:06:39 -05:00
Charlie Marsh
a4862857de
Update PIE796 fixture
2023-01-16 19:29:14 -05:00
Leonardo Esparis
6e88c60c46
Add flake8-pie PIE796: prefer-unique-enum ( #1923 )
...
I accept any suggestion. By the way, I have a doubt, I have checked and all flake8-pie plugins can be fixed by ruff, but is it necessary that this one is also fixed automatically ?
rel #1543
2023-01-16 19:27:34 -05:00
Charlie Marsh
2ed1f78873
Add benchmark scripts for no-IO ( #1925 )
2023-01-16 17:38:40 -05:00
Charlie Marsh
f3bf008aed
Avoid removing statements that contain side-effects ( #1920 )
...
Closes #1917 .
2023-01-16 14:45:02 -05:00
Charlie Marsh
3b4aaa53c1
Add some new testimonials ( #1921 )
2023-01-16 14:44:52 -05:00