Charlie Marsh
98a8330124
Add stylist settings to all LibCST invocations ( #2225 )
2023-01-26 16:59:33 -05:00
Charlie Marsh
4d52ea87ef
Implement exempt-modules setting from flake8-type-checking ( #2230 )
2023-01-26 16:55:32 -05:00
Charlie Marsh
291239b9f1
Fix range for try-consider-else ( #2228 )
2023-01-26 16:36:18 -05:00
Charlie Marsh
224334b6d1
Avoid erroneous class autofixes in indented blocks ( #2226 )
2023-01-26 16:24:21 -05:00
Charlie Marsh
0cab3f8437
Preserve indentation when fixing via LibCST ( #2223 )
2023-01-26 16:09:35 -05:00
Charlie Marsh
5f8810e987
Add strictness setting for flake8-typing-imports ( #2221 )
2023-01-26 16:04:21 -05:00
Edgar R. M
e88275280b
Implement some rules from flake8-logging-format ( #2150 )
2023-01-26 12:58:10 -05:00
Samuel Cormier-Iijima
7370a27c09
Don't flag B009/B010 if identifiers would be mangled ( #2204 )
2023-01-26 12:56:18 -05:00
Eric Roberts
708295f4c9
Move violations for pycodestyle rules to rules files ( #2138 )
2023-01-25 20:11:36 -05:00
Charlie Marsh
4190f1045e
Remove manual newline from autofix helpers ( #2184 )
2023-01-25 19:53:26 -05:00
Florian Stasse
353857e2a5
Implement TRY400 ( #2115 )
2023-01-25 19:42:19 -05:00
Denis Gavrilyuk
55b43c8ea7
feat: implement TRY002 and TRY003 ( #2135 )
2023-01-25 19:22:43 -05:00
Anders Kaseorg
6036d1bbe2
flake8_executable: Only match shebang at beginning of line ( #2183 )
...
The Python implementation uses `re.match` for this, which only matches
at the beginning of a line.
https://github.com/xuhdev/flake8-executable/blob/v2.1.3/flake8_executable/__init__.py#L124
We could use `Regex::captures_read_at`, but that’s a more complicated
API; it’s easier to anchor the regex with `^`.
Signed-off-by: Anders Kaseorg <andersk@mit.edu >
Signed-off-by: Anders Kaseorg <andersk@mit.edu >
2023-01-25 18:57:09 -05:00
Simon Brugman
52201422ae
fix: platform-independent newlines
2023-01-25 18:00:39 -05:00
Simon Brugman
d7fe1eeba0
fix: platform-independent paths
2023-01-25 18:00:39 -05:00
Simon Brugman
c859ac4933
refactor: test ground truth update for new macro
2023-01-25 18:00:39 -05:00
Simon Brugman
e9c1089ddc
refactor: tests use new marco
2023-01-25 18:00:39 -05:00
Charlie Marsh
23525a8ea0
Actually, rename TYP rules to TCH ( #2176 )
2023-01-25 16:52:49 -05:00
Charlie Marsh
35cf9e242e
Rename TYP rules to TYC ( #2175 )
2023-01-25 16:26:22 -05:00
Charlie Marsh
d5dff11d4b
Avoid reraise-no-cause for explicit reraises ( #2174 )
2023-01-25 15:51:24 -05:00
Florian Best
43a8ce6c89
fix: avoid flagging unused loop variable (B007) with globals(), vars() or eval() ( #2166 )
2023-01-25 15:18:58 -05:00
Charlie Marsh
0e6f513607
Avoid prefer-type-error (TRY004) with intermediary control flow ( #2162 )
2023-01-25 13:00:59 -05:00
Charlie Marsh
02421d02f5
Avoid flagging unused loop variable (B007) with locals() ( #2161 )
2023-01-25 12:53:35 -05:00
Charlie Marsh
38de46ae3c
Treat Python 3.7 as minimum supported version ( #2159 )
2023-01-25 12:36:50 -05:00
Charlie Marsh
63b4f60ba4
Implement typing-only import detection (TYP001, TYP002, TYP003) ( #2147 )
2023-01-24 23:48:11 -05:00
Charlie Marsh
0758049e49
Implement runtime-import-in-type-checking-block (TYP004) ( #2146 )
2023-01-24 23:33:26 -05:00
Charlie Marsh
deff503932
Avoid generating dirty call paths ( #2144 )
2023-01-24 20:40:38 -05:00
Eric Roberts
0cac1a0d21
Move is_overlong to helpers ( #2137 )
2023-01-24 12:45:35 -05:00
Charlie Marsh
7b81f36e54
Enable executable checks on Windows ( #2133 )
2023-01-24 10:46:27 -05:00
Eric Roberts
ff63da9f52
Move compare to helpers file ( #2131 )
...
From discussion on https://github.com/charliermarsh/ruff/pull/2123
I didn't originally have a helpers file so I put the function in both
places but now that a helpers file exists it seems logical for it to be
there.
2023-01-24 10:30:56 -05:00
Charlie Marsh
3fb9e76012
Remove unnecessary manual Generator invocations ( #2129 )
2023-01-24 09:38:12 -05:00
Eric Roberts
0f283ae98c
Move pycodestyle rules into individual files ( #2123 )
2023-01-24 09:27:26 -05:00
Martin Fischer
abc9810e2b
refactor: Turn RuleSelector into a newtype around RuleCodePrefix
...
Yet another refactor to let us implement the many-to-many mapping
between codes and rules in a prefix-agnostic way.
We want to break up the RuleCodePrefix[1] enum into smaller enums.
To facilitate that this commit introduces a new wrapping type around
RuleCodePrefix so that we can start breaking it apart.
[1]: Actually `RuleCodePrefix` is the previous name of the autogenerated
enum ... I renamed it in b19258a243 to
RuleSelector since `ALL` isn't a prefix. This commit now renames it back
but only because the new `RuleSelector` wrapper type, introduced in this
commit, will let us move the `ALL` variant from `RuleCodePrefix` to
`RuleSelector` in the next commit.
2023-01-24 09:26:19 -05:00
Ville Skyttä
7e92485f43
feat: autofix multi-line-summary-*-line ( #2093 )
2023-01-24 08:17:13 -05:00
Charlie Marsh
930c3be69d
Ignore generators in flake8-return rules ( #2126 )
...
We could do a better job of handling them, but they cause too many false-positives right now.
Closes #2119 .
2023-01-24 08:15:26 -05:00
Aarni Koskela
24d0a980c5
flake8-annotations: deduplicate code between functions and methods ( #2125 )
2023-01-24 08:03:33 -05:00
Edgar R. M
f5f0ed280a
Implement EXE001 and EXE002 from flake8-executable ( #2118 )
2023-01-24 08:02:47 -05:00
Martin Fischer
ca58c72fc9
refactor: Convention::codes to rules_to_be_ignored
2023-01-24 07:37:34 -05:00
Denis Gavrilyuk
58d5ac08a8
feat: implement TRY301 ( #2113 )
2023-01-24 07:25:26 -05:00
Charlie Marsh
cc63a4be6a
Allow flagging of multiline implicit string concatenations ( #2117 )
...
At present, `ISC001` and `ISC002` flag concatenations like the following:
```py
"a" "b" # ISC001
"a" \
"b" # ISC002
```
However, multiline concatenations are allowed.
This PR adds a setting:
```toml
[tool.ruff.flake8-implicit-str-concat]
allow-multiline = false
```
Which extends `ISC002` to _also_ flag multiline concatenations, like:
```py
(
"a" # ISC002
"b"
)
```
Note that this is backwards compatible, as `allow-multiline` defaults to `true`.
2023-01-24 00:01:01 -05:00
Denis Gavrilyuk
d65ce6308b
feat: implement TRY200 ( #2087 )
...
#2056
2023-01-23 14:12:42 -05:00
Charlie Marsh
b988a268e4
Escape curly braces when converting .format() strings ( #2112 )
...
Closes #2111 .
2023-01-23 14:11:24 -05:00
Maksudul Haque
8001a1639c
[flake8-bandit] Added Rule S612 (Use of insecure logging.config.listen) ( #2108 )
...
ref: https://github.com/charliermarsh/ruff/issues/1646
2023-01-23 12:37:33 -05:00
Charlie Marsh
09b65a6449
Remove some usages of default format for expressions ( #2100 )
2023-01-22 23:15:43 -05:00
Steve Dignam
0c624af036
Add flake8-pie PIE800: no-unnecessary-spread ( #1881 )
...
Checks for unnecessary spreads, like `{**foo, **{"bar": True}}`
rel: https://github.com/charliermarsh/ruff/issues/1879
rel: https://github.com/charliermarsh/ruff/issues/1543
2023-01-22 21:43:34 -05:00
Steve Dignam
4ca328f964
Add flake8-pie PIE804: no-unnecessary-dict-kwargs ( #1884 )
...
Warn about things like `foo(**{"bar": True})` which is equivalent to `foo(bar=True)`
rel: https://github.com/charliermarsh/ruff/issues/1879
rel: https://github.com/charliermarsh/ruff/issues/1543
2023-01-22 21:32:45 -05:00
Charlie Marsh
07b5bf7030
Remove misleading emoji comment
2023-01-22 21:23:55 -05:00
Charlie Marsh
8d46d3bfa6
Avoid nested-if violations when outer-if has else clause ( #2095 )
...
It looks like we need `do`-`while`-like semantics here with an additional outer check.
Closes #2094 .
2023-01-22 17:40:56 -05:00
alm
4fb0c6e3ad
feat: Implement TRY201 ( #2073 )
2023-01-22 17:08:57 -05:00
Simon Brugman
ebfdefd110
refactor: remove redundant enum ( #2091 )
2023-01-22 15:27:08 -05:00