Sawbez
53e810ed3e
[docs] Add docs for the entirety of `flake8-builtins` ( #2840 )
2023-02-14 04:30:30 +00:00
Charlie Marsh
6d1adc85fc
Remove autofix for prefer-type-error ( #2880 )
2023-02-14 02:26:22 +00:00
Martin Fischer
8120d7c974
Change rule page links in README from GitHub to beta.ruff.rs
2023-02-13 19:34:06 -05:00
Anders Kaseorg
b9d075c252
Alphabetize flake8-raise and flake8-self in documentation ( #2871 )
2023-02-13 18:03:09 -05:00
Charlie Marsh
3c03e2cb2e
Rename flake8-django rules to match convention ( #2861 )
2023-02-13 15:30:04 +00:00
Charlie Marsh
6128346b08
Re-show --target-version on CLI interface ( #2859 )
2023-02-13 15:04:11 +00:00
Ville Skyttä
d1cf0ee52b
Remove "blanket" from RUF100 README message ( #2844 )
2023-02-13 14:43:35 +00:00
Charlie Marsh
63f3d5e610
Update pre-commit instructions ( #2838 )
2023-02-13 00:06:40 +00:00
Charlie Marsh
83f6e52c92
Bump version to 0.0.246 ( #2834 )
2023-02-12 23:39:51 +00:00
Charlie Marsh
8b35b052b8
Avoid duplicates in if-with-same-arms ( #2827 )
2023-02-12 22:22:19 +00:00
Colin Delahunty
1f07ad6e61
[`flake8-simplify`]: combine-if-conditions ( #2823 )
2023-02-12 21:00:32 +00:00
Charlie Marsh
1666e8ba1e
Add a `--show-fixes` flag to include applied fixes in output ( #2707 )
2023-02-12 20:48:01 +00:00
Zeddicus414
26f39cac2f
Add PD002 use-of-inplace-argument documentation ( #2799 )
2023-02-12 18:10:34 +00:00
Simon Brugman
02897a141b
[`flake8-tidy-imports`] add documentation for `banned-api` ( #2819 )
2023-02-12 18:09:39 +00:00
Nyakku Shigure
fc465cc2af
[`flake8-pyi`]: add rules for unrecognized platform check (PYI007, PYI008) ( #2805 )
...
Add two [flake8-pyi](https://github.com/PyCQA/flake8-pyi ) rules (Y007, Y008). ref: #848
The specifications are described in [PEP 484 - Version and platform checking](https://peps.python.org/pep-0484/#version-and-platform-checking )
The original implementation in flake8-pyi is shown below.
- Implemention: 66f28a4407/pyi.py (L1429-L1443)
- Tests: 66f28a4407/tests/sysplatform.pyi
2023-02-12 18:02:38 +00:00
Karol Onyśko
6769a5bce7
Implement flake8-django plugin rules ( #2586 )
2023-02-12 17:47:59 +00:00
Zeddicus414
fda93c6245
Add E722 bare-except documentation ( #2796 )
2023-02-12 16:51:32 +00:00
Simon Brugman
1d4422f004
[`flake8-comprehensions`] improve autofix for C401, C402 and C417 ( #2806 )
2023-02-12 16:03:37 +00:00
Simon Brugman
2dccb7611a
[`flake8-comprehensions`] bugfix for C413 autofix ( #2804 )
2023-02-12 15:56:07 +00:00
Simon Brugman
0123425be1
[`flake8-comprehensions`] autofix C414 and C417 + bugfix ( #2693 )
...
Closes https://github.com/charliermarsh/ruff/issues/2262 and closes https://github.com/charliermarsh/ruff/issues/2423
Fixes bug where some cases generated duplicated violations (see https://github.com/charliermarsh/ruff/pull/2732#issuecomment-1426397842 )
2023-02-12 05:20:42 +00:00
Martin Fischer
0e4d5eeea7
Implement config subcommand
...
The synopsis is as follows.
List all top-level config keys:
$ ruff config
allowed-confusables
builtins
cache-dir
... etc.
List all config keys in a specific section:
$ ruff config mccabe
max-complexity
Describe a specific config option:
$ ruff config mccabe.max-complexity
The maximum McCabe complexity to allow before triggering `C901` errors.
Default value: 10
Type: int
Example usage:
```toml
# Flag errors (`C901`) whenever the complexity level exceeds 5.
max-complexity = 5
```
2023-02-11 23:43:09 -05:00
Charlie Marsh
d827a9156e
Add documentation on enabling autocompletion ( #2791 )
2023-02-12 02:51:50 +00:00
Charlie Marsh
418808895e
Add docs for f-string-missing-placeholders and unused-variable ( #2790 )
2023-02-12 02:48:36 +00:00
Charlie Marsh
19fc410683
Remove raw string from hardcoded-sql-expression ( #2780 )
2023-02-11 20:05:57 +00:00
Charlie Marsh
97dcb738fa
Run cargo dev generate-all
2023-02-11 12:43:48 -05:00
Michał Mrówka
77099dcd4d
implemented option lines-between-types for isort ( #2762 )
...
Fixes #2585
Add support for the isort option [lines_between_types](https://pycqa.github.io/isort/docs/configuration/options.html#lines-between-types )
2023-02-11 12:17:37 -05:00
Martin Fischer
70ff65154d
Rename function-is-too-complex to complex-structure
2023-02-11 12:05:17 -05:00
Martin Fischer
7db6a2d6d4
Rename rules containing PEP reference in name
2023-02-11 12:05:17 -05:00
Martin Fischer
42924c0d9a
Rename a bunch of pydocstyle rules
2023-02-11 12:05:17 -05:00
Martin Fischer
31d00936ee
Drop no- from no-unnecessary-* rule names
2023-02-11 12:05:17 -05:00
Martin Fischer
c3c5d9a852
Rename nested-if-statements to collapsible-if
2023-02-11 12:05:17 -05:00
Martin Fischer
7e5c19385c
Rename return-bool-condition-directly to needless-bool
2023-02-11 12:05:17 -05:00
Charlie Marsh
24faabf1f4
Bump version to 0.0.245
2023-02-10 22:15:27 -05:00
Simon Brugman
e83ed0ecba
Implement autofix for relative imports (TID252) ( #2739 )
2023-02-10 22:05:47 -05:00
Nick Pope
9f84c497f9
Adjust heading level in rule documentation ( #2749 )
2023-02-10 19:10:42 -05:00
Martin Fischer
0ec25d1514
Rename dynamically-typed-expression to any-type ( #2751 )
2023-02-10 19:02:31 -05:00
Charlie Marsh
acb70520f8
Add colored environment variables to README ( #2746 )
2023-02-10 17:06:02 -05:00
Charlie Marsh
6eb9268675
Allow named unicodes in bidirectional escape check ( #2710 )
2023-02-10 16:59:28 -05:00
Charlie Marsh
3f20f73413
Use `function_type::classify` for `yield-in-init` ( #2742 )
2023-02-10 16:19:45 -05:00
tomecki
a5e42d2f7c
pylint: E0100 yield-in-init ( #2716 )
2023-02-10 16:15:15 -05:00
Florian Best
8aab96fb9e
feat(isort): Implement known-local-folder ( #2657 )
2023-02-10 13:15:34 -05:00
Martin Fischer
ec63658250
Disallow rule names starting with avoid-*
2023-02-10 09:25:29 -05:00
Martin Fischer
1a97de0b01
Disallow rule names starting with uses-*
2023-02-10 09:25:29 -05:00
Martin Fischer
1cbe48522e
Disallow rule names ending in *-used
2023-02-10 09:25:29 -05:00
Martin Fischer
bfbde537af
Disallow rule names starting with do-not-*
2023-02-10 09:25:29 -05:00
Colin Delahunty
48daa0f0ca
[`pylint`]: bad-string-format-type ( #2572 )
2023-02-09 20:08:56 -05:00
Matt Oberle
fc628de667
Implement bandit's 'hardcoded-sql-expressions' S608 ( #2698 )
...
This is an attempt to implement `bandit` rule `B608` (renamed here `S608`).
- https://bandit.readthedocs.io/en/latest/plugins/b608_hardcoded_sql_expressions.html
The rule inspects strings constructed via `+`, `%`, `.format`, and `f""`.
- `+` and `%` via `BinOp`
- `.format` via `Call`
- `f""` via `JoinedString`
Any SQL-ish strings that use Python string formatting are flagged.
The expressions and targeted expression types for the rule come from here:
- 7104b336d3/bandit/plugins/injection_sql.py
> Related Issue: https://github.com/charliermarsh/ruff/issues/1646
2023-02-09 19:28:17 -05:00
Charlie Marsh
9e2418097c
Run cargo dev generate-all
2023-02-09 19:14:02 -05:00
Steve Dignam
67e58a024a
Add flake8-pyi with one rule ( #2682 )
...
Add basic scaffold for [flake8-pyi](https://github.com/PyCQA/flake8-pyi ) and the first rule, Y001
rel: https://github.com/charliermarsh/ruff/issues/848
2023-02-09 19:03:11 -05:00
Charlie Marsh
7d5fb0de8a
Add documentation for mccabe, isort, and flake8-annotations ( #2691 )
2023-02-09 11:56:18 -05:00
Charlie Marsh
54d1719424
Hide rule configuration settings on CLI ( #2687 )
2023-02-09 11:13:04 -05:00
Charlie Marsh
739a92e99d
Implement compound-statements (E701, E702, E703, E704) ( #2680 )
2023-02-08 22:57:39 -05:00
Charlie Marsh
5a07c9f57c
Only include rule links once in README ( #2678 )
2023-02-08 21:48:05 -05:00
Colin Delahunty
31027497c6
[`flake8-bandit`]: try-except-continue ( #2674 )
2023-02-08 21:44:01 -05:00
Charlie Marsh
dabfdf718e
Mark flake8-simplify rules as unfixable in non-fixable cases ( #2676 )
2023-02-08 21:28:28 -05:00
Charlie Marsh
ff3665a24b
Mark RUF005 as fixable
2023-02-08 18:02:33 -05:00
Charlie Marsh
125615af12
Bump version to 0.0.244
2023-02-08 17:28:59 -05:00
Charlie Marsh
6339f8e009
Use separate exit codes for fatal errors vs. lint errors ( #2670 )
2023-02-08 15:21:15 -05:00
Charlie Marsh
75fad989f4
Add `--exit-non-zero-on-fix` ( #2668 )
2023-02-08 14:27:54 -05:00
Nuno Mendes
9cd1bf9c03
doc: add documentation for TRY002 ( #2655 )
2023-02-08 11:04:31 -05:00
Florian Best
3862dc2626
docs: use new command line arguments ( #2658 )
2023-02-08 10:36:53 -05:00
Charlie Marsh
2a0927a5ef
Update Discord link
2023-02-08 04:36:59 -05:00
Charlie Marsh
4c35feaa18
Add documentation for eradicate, flake8-import-conventions, and flake8-no-pep420 ( #2652 )
2023-02-07 22:19:21 -05:00
Charlie Marsh
8261d0656e
Disable autofix for flake8-print rules ( #2651 )
2023-02-07 21:38:57 -05:00
Charlie Marsh
a9aa96b24f
Add documentation for flake8-quotes rules ( #2650 )
2023-02-07 21:20:24 -05:00
Charlie Marsh
271e4fda8c
Create per-rule pages and link from README ( #2644 )
2023-02-07 18:15:05 -05:00
Charlie Marsh
be08384fb0
Run cargo dev generate-all
2023-02-07 16:48:06 -05:00
Aarni Koskela
2bc16eb4e3
flake8-annotations: add ignore-fully-untyped ( #2128 )
...
This PR adds a configuration option to inhibit ANN* violations for functions that have no other annotations either, for easier gradual typing of a large codebase.
2023-02-07 11:35:57 -05:00
Colin Delahunty
7647cafe12
[`pylint`]: bidirectional-unicode ( #2589 )
2023-02-06 22:49:18 -05:00
Charlie Marsh
bf718fdf26
Bump Ruff version to 0.0.243
2023-02-06 21:22:54 -05:00
Steve Dignam
3b3466f6da
Add flake8-pie single_starts_ends_with ( #2616 )
2023-02-06 21:22:32 -05:00
Charlie Marsh
e59b75d31b
Bump version to 0.0.242
2023-02-06 16:25:29 -05:00
Charlie Marsh
610f150dd1
Remove autofix from bad-str-strip-call; add suggestions instead ( #2610 )
2023-02-06 16:25:20 -05:00
Colin Delahunty
6272293180
[`pylint`]: bad-str-strip-call (With Autofix) ( #2570 )
2023-02-06 15:34:37 -05:00
Charlie Marsh
7fa5ce8b63
Automatically remove empty type-checking blocks ( #2598 )
2023-02-05 18:46:07 -05:00
Charlie Marsh
f6864a96f6
Enable autofix for unnecessary-paren-on-raise-exception ( #2596 )
2023-02-05 18:19:27 -05:00
Colin Delahunty
1e1dc3a7ed
[`pyupgrade`]: Removes quotes from annotations ( #2431 )
2023-02-05 09:43:09 -05:00
Chris Chan
ced55084db
Implement pylint's `too-many-return-statements` rule (`PLR0911`) ( #2564 )
2023-02-04 16:56:36 -05:00
Chris Chan
f8f36a7ee0
Implement pylint's `too-many-branches` rule (`PLR0912`) ( #2550 )
2023-02-04 16:38:03 -05:00
Charlie Marsh
7d4f0a8320
Bump Ruff version to 0.0.241
2023-02-03 19:25:12 -05:00
Pierre Sassoulas
e6316b185e
[pylint] Rename 'too-many-args' to 'too-many-arguments'
...
The actual name
2023-02-03 18:58:32 -05:00
Pierre Sassoulas
a2183be96e
[pylint] Rename constant-comparison to comparison-of-constant
...
The actual name
2023-02-03 18:58:32 -05:00
Pierre Sassoulas
df39a95925
[pylint] Rename use-sys-exit to consider-using-sys-exit
...
The actual name
2023-02-03 18:58:32 -05:00
Charlie Marsh
b9c1a3c5c1
Move benchmarking instructions to CONTRIBUTING.md ( #2554 )
2023-02-03 14:53:53 -05:00
Aarni Koskela
38addbe50d
Soft-deprecate update_check ( #2530 )
2023-02-03 11:33:38 -05:00
Jacob Coffee
04ef674195
Add Jetbrains Webinar Event (Temporary) ( #2516 )
2023-02-03 08:08:27 -05:00
Florian Best
7e9b9cc7b3
feat: add autofix for PLR0402 ( #2504 )
2023-02-02 23:25:16 -05:00
Jonathan Plasse
bdcab87d2f
Add `markdownlint` and dev Ruff to `pre-commit` ( #2303 )
2023-02-02 16:29:07 -05:00
Charlie Marsh
651f6b6bce
Bump Ruff version to 0.0.240
2023-02-02 12:45:23 -05:00
Charlie Marsh
668860cba3
Add more information to Pylint FAQ section
2023-02-02 11:08:17 -05:00
Chris Chan
8136cc9238
Implement pylint's `too-many-statements` rule (`PLR0915`) ( #2445 )
2023-02-02 08:18:37 -05:00
Aarni Koskela
cce8fb9882
isort: support forced_separate ( #2268 )
2023-02-02 08:08:02 -05:00
Maksudul Haque
9e59c99133
[`flake8-self`] Add Plugin and Rule `SLF001` ( #2470 )
2023-02-02 07:58:14 -05:00
Colin Delahunty
b032f50775
[`pyupgrade`]: Remove outdated `sys.version_info` blocks ( #2099 )
2023-02-02 07:49:24 -05:00
Reid Swan
ec7b25290b
feat: Add isort option lines-after-imports ( #2440 )
...
Fixes https://github.com/charliermarsh/ruff/issues/2243
Adds support for the isort option [lines_after_imports](https://pycqa.github.io/isort/docs/configuration/options.html#lines-after-imports ) to insert blank lines between imports and the follow up code.
2023-02-01 21:39:45 -05:00
Charlie Marsh
2abaffd65b
Improve consistency of backticks for plugin names ( #2460 )
2023-02-01 19:17:32 -05:00
Charlie Marsh
06cbf5a2ae
Add some top-level links to the README ( #2458 )
2023-02-01 19:10:41 -05:00
Henry Schreiner
db1b1672b8
fix: minor spacing typo in message for PTH123 ( #2453 )
2023-02-01 14:39:50 -05:00
Charlie Marsh
6861e59103
Only avoid PEP604 rewrites for pre-Python 3.10 code ( #2449 )
...
I moved the `self.in_annotation` guard out of the version check in #1563 . But, I think that was a mistake. It was done to resolve #1560 , but the fix in that case _should've_ been to set a different Python version.
Closes #2447 .
2023-02-01 13:03:51 -05:00
Charlie Marsh
c15595325c
Bump version to 0.0.239
2023-01-31 19:06:22 -05:00
Maksudul Haque
7c1a6bce7b
[`flake8-raise`] Add Plugin and `RSE102` Rule ( #2354 )
2023-01-31 18:09:40 -05:00
Thomas M Kehrenberg
c3a3195922
Fix option name "max-args" in the documentation ( #2401 )
2023-01-31 12:30:05 -05:00
Hassan Kibirige
da4618d77b
For neovim:null_ls use ruff builtin for formatting ( #2386 )
...
null_ls picked up the recommended snippet in README.md and ruff formatting now a builtin.
Ref:
1. 482990e391
2. 7b2b28e207/doc/BUILTINS.md (ruff-1)
2023-01-31 07:22:14 -05:00
Erik Welch
adc134ced0
Fix typos: s/scripy/scipy/g ( #2380 )
2023-01-31 07:17:18 -05:00
Charlie Marsh
00495e8620
Use human-readable types for documentation values ( #2375 )
2023-01-30 23:05:28 -05:00
Colin Delahunty
ad8693e3de
[`pyupgrade`] Implement import-replacement rule (`UP035`) ( #2049 )
2023-01-30 19:58:28 -05:00
Charlie Marsh
69e20c4554
Minor improvements to the docs ( #2371 )
2023-01-30 19:06:05 -05:00
Charlie Marsh
b5816634b3
Add a link to MkDocs ( #2370 )
2023-01-30 19:00:57 -05:00
Charlie Marsh
1cbd929a0a
Bump version to 0.0.238
2023-01-30 16:44:19 -05:00
Charlie Marsh
5f07e70762
Recommend disabling `explicit-string-concatenation` ( #2366 )
...
If `allow-multiline = false` is set, then if the user enables `explicit-string-concatenation` (`ISC003`), there's no way for them to create valid multiline strings. This PR notes that they should turn off `ISC003`.
Closes #2362 .
2023-01-30 16:42:30 -05:00
Charlie Marsh
4589daa0bd
Ignore magic comparisons to bytes by default ( #2365 )
2023-01-30 16:31:48 -05:00
Charlie Marsh
ea0274d22c
Use bold for deprecated
2023-01-30 16:28:21 -05:00
Charlie Marsh
ca1129ad27
Document new rule config resolution
2023-01-30 16:26:59 -05:00
Martin Fischer
ba457c21b5
Improve rule config resolution
...
Ruff allows rules to be enabled with `select` and disabled with
`ignore`, where the more specific rule selector takes precedence,
for example:
`--select ALL --ignore E501` selects all rules except E501
`--ignore ALL --select E501` selects only E501
(If both selectors have the same specificity ignore selectors
take precedence.)
Ruff always had two quirks:
* If `pyproject.toml` specified `ignore = ["E501"]` then you could
previously not override that with `--select E501` on the command-line
(since the resolution didn't take into account that the select was
specified after the ignore).
* If `pyproject.toml` specified `select = ["E501"]` then you could
previously not override that with `--ignore E` on the command-line
(since the resolution didn't take into account that the ignore was
specified after the select).
Since d067efe265 (#1245 )
`extend-select` and `extend-ignore` always override
`select` and `ignore` and are applied iteratively in pairs,
which introduced another quirk:
* If some `pyproject.toml` file specified `extend-select`
or `extend-ignore`, `select` and `ignore` became pretty much
unreliable after that with no way of resetting that.
This commit fixes all of these quirks by making later configuration
sources take precedence over earlier configuration sources.
While this is a breaking change, we expect most ruff configuration
files to not rely on the previous unintutive behavior.
2023-01-30 16:26:59 -05:00
Charlie Marsh
01fedec1e7
Add SciPy and meson-python ( #2363 )
2023-01-30 15:34:19 -05:00
Martin Fischer
ef20692149
fix: clap usage for CLI help generation in the README ( #2358 )
2023-01-30 13:14:40 -05:00
Simon Brugman
50046fbed3
Extend conventional imports defaults to include TensorFlow et al ( #2353 )
...
extend conventional imports
Based on configuration from Visual Studio for Python
(https://code.visualstudio.com/docs/python/editing#_quick-fixes )
2023-01-30 11:04:19 -05:00
Akhil
8e5a944ce1
Implement Pylint's `too-many-arguments` rule (`PLR0913`) ( #2308 )
2023-01-30 07:34:37 -05:00
Simon Brugman
2ef28f217c
pandas vet autofix for PD002 and general refactor
2023-01-29 22:30:37 -05:00
Martin Fischer
d76a47d366
Implement `ruff linter` subcommand
...
The subcommand lists all supported upstream linters and their prefixes:
$ ruff linter
F Pyflakes
E/W pycodestyle
C90 mccabe
I isort
N pep8-naming
D pydocstyle
UP pyupgrade
YTT flake8-2020
# etc...
Just like with the `rule` subcommand `--format json` is supported:
$ ruff linter --format json
[
{
"prefix": "F",
"name": "Pyflakes"
},
{
"prefix": "",
"name": "pycodestyle",
"categories": [
{
"prefix": "E",
"name": "Error"
},
{
"prefix": "W",
"name": "Warning"
}
]
},
# etc...
2023-01-29 21:32:37 -05:00
Charlie Marsh
3ee6a90905
Remove remove-six-compat (UP016) ( #2332 )
2023-01-29 21:19:59 -05:00
Simon Brugman
5165b703d9
Add VS Code to gitignore; fix typos ( #2333 )
2023-01-29 21:14:38 -05:00
Charlie Marsh
64fb0bd2cc
Include both `ruff help` and `ruff help check` in README ( #2325 )
2023-01-29 17:01:15 -05:00
Charlie Marsh
546413defb
Fix remaining RelativeImportsOrder typo
2023-01-29 11:33:12 -05:00
Charlie Marsh
c9585fe304
Run generate-all
2023-01-28 22:13:07 -05:00
Charlie Marsh
535868f939
Update fixable list ( #2316 )
2023-01-28 20:18:55 -05:00
Chirag
cec993aaa9
Add `ruff .` to documentation ( #2307 )
2023-01-28 14:53:11 -05:00
Charlie Marsh
add7fefeb5
Bump version to 0.0.237
2023-01-28 10:52:14 -05:00
Charlie Marsh
071e3fd196
Split MkDocs site into multiple pages ( #2296 )
2023-01-28 08:31:16 -05:00
Martin Fischer
dd79ec293a
Rename new `explain` subcommand to `rule`
...
We probably want to introduce multiple explain subcommands and
overloading `explain` to explain it all seems like a bad idea.
We may want to introduce a subcommand to explain config options and
config options may end up having the same name as their rules, e.g. the
current `banned-api` is both a rule name (although not yet exposed to
the user) and a config option.
The idea is:
* `ruff rule` lists all rules supported by ruff
* `ruff rule <code>` explains a specific rule
* `ruff linter` lists all linters supported by ruff
* `ruff linter <name>` lists all rules/options supported by a specific linter
(After this commit only the 2nd case is implemented.)
2023-01-28 07:26:20 -05:00
Matt Morris
caada2f8bb
add missing backticks to flake8 plugin urls in `README` ( #2291 )
2023-01-28 07:16:23 -05:00
Charlie Marsh
fd56414b2f
Re-add ALL disclaimer
2023-01-27 22:18:20 -05:00
Charlie Marsh
1a0191f1ac
Add release to breaking changes
2023-01-27 20:34:24 -05:00
Martin Fischer
eda2be6350
Use subcommands for CLI instead of incompatible boolean flags
...
This commit greatly simplifies the implementation of the CLI,
as well as the user expierence (since --help no longer lists all
options even though many of them are in fact incompatible).
To preserve backwards-compatability as much as possible aliases have
been added for the new subcommands, so for example the following two
commands are equivalent:
ruff explain E402 --format json
ruff --explain E402 --format json
However for this to work the legacy-format double-dash command has to
come first, i.e. the following no longer works:
ruff --format json --explain E402
Since ruff previously had an implicitly default subcommand,
this is preserved for backwards compatibility, i.e. the following two
commands are equivalent:
ruff .
ruff check .
Previously ruff didn't complain about several argument combinations that
should have never been allowed, e.g:
ruff --explain RUF001 --line-length 33
previously worked but now rightfully fails since the explain command
doesn't support a `--line-length` option.
2023-01-27 19:38:17 -05:00
Charlie Marsh
57a68f7c7d
Document the location of the personal config file ( #2283 )
2023-01-27 19:25:55 -05:00
Charlie Marsh
a19dd9237b
Add comparison to type checkers ( #2282 )
2023-01-27 19:18:40 -05:00
Samuel Cormier-Iijima
dd15c69181
[`flake8-bandit`] Add Rule S110 (try/except/pass) ( #2197 )
2023-01-27 18:52:55 -05:00
Charlie Marsh
df44c5124e
Add missing autofix levels to sometimes-fixable rules
2023-01-27 18:25:23 -05:00
Charlie Marsh
d1aaf16e40
Omit typing module from flake8-type-checking by default ( #2277 )
2023-01-27 18:19:45 -05:00
Ville Skyttä
221b87332c
feat: add more DTZ fix suggestions in messages ( #2274 )
2023-01-27 18:14:17 -05:00
Simon Brugman
94551a203e
feat: pylint `PLE0604` and `PLE0605` ( #2241 )
2023-01-27 11:26:33 -05:00
Charlie Marsh
a316b26b49
Rewrite some string-format violation messages ( #2242 )
2023-01-26 19:42:16 -05:00
Charlie Marsh
685d9ab848
Bump version to 0.0.236
2023-01-26 18:47:00 -05:00
Charlie Marsh
615e62ae24
Clarify E-category rule support ( #2239 )
2023-01-26 18:12:28 -05:00
Simon Brugman
8766e6a666
docs(readme): add featuretools ( #2236 )
2023-01-26 17:24:45 -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
5f8810e987
Add strictness setting for `flake8-typing-imports` ( #2221 )
2023-01-26 16:04:21 -05:00
Charlie Marsh
50c85fd192
Add a fixable and unfixable example to the docs ( #2211 )
2023-01-26 13:23:21 -05:00
Martin Fischer
23819ae338
Group options in --help output and sort them by importance
...
`ruff --help` previously listed 37 options in no particular order
(with niche options like --isolated being listed before before essential
options such as --select). This commit remedies that and additionally
groups the options by making use of the Clap help_heading feature.
Note that while the source code has previously also referred to
--add-noqa, --show-settings, and --show-files as "subcommands"
this commit intentionally does not list them under the new
Subcommands section since contrary to --explain and --clean
combining them with most of the other options makes sense.
2023-01-26 13:06:29 -05:00
Charlie Marsh
f7be192f8b
Alphabetize Flake8 plugins in the README ( #2209 )
2023-01-26 13:05:30 -05:00
Edgar R. M
e88275280b
Implement some rules from `flake8-logging-format` ( #2150 )
2023-01-26 12:58:10 -05:00
jvstme
0ad6b8224d
Fix typo in src option docs ( #2201 )
2023-01-26 12:23:09 -05:00
Henry Schreiner
f3aa409d9a
docs(readme): add pypa's build ( #2200 )
2023-01-26 12:18:04 -05:00
Charlie Marsh
adb5c5b150
Fix `respect_gitignore` reference ( #2196 )
2023-01-26 09:53:17 -05:00
Charlie Marsh
b346f74915
Run cargo update ( #2185 )
2023-01-25 21:32:44 -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
Charlie Marsh
edd0e16a02
Bump version to 0.0.235
2023-01-25 18:28:27 -05:00
Charlie Marsh
9b07d0bd92
Bump version to 0.0.234
2023-01-25 16:55:57 -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
8e1fac620e
Add flake8-builtins options to README ( #2173 )
2023-01-25 15:43:26 -05:00
Aarni Koskela
0da691c0d5
Add Babel to readme ( #2170 )
2023-01-25 15:21:26 -05:00
Hugo van Kemenade
6d87adbcc0
Fix singular and plural for error(s)
2023-01-25 15:21:10 -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
6978dcf035
Add an FAQ on autofix ( #2163 )
2023-01-25 13:09:16 -05:00
Charlie Marsh
63b4f60ba4
Implement typing-only import detection (TYP001, TYP002, TYP003) ( #2147 )
2023-01-24 23:48:11 -05:00
Charlie Marsh
9eb13bc9da
Downgrade recommended pre-commit version to v0.0.231
2023-01-24 23:47:13 -05:00
Charlie Marsh
0758049e49
Implement runtime-import-in-type-checking-block (TYP004) ( #2146 )
2023-01-24 23:33:26 -05:00
Charlie Marsh
605416922d
Bump version to 0.0.233
2023-01-24 10:46:49 -05:00
Charlie Marsh
d645a19e0a
Bump version to 0.0.232
2023-01-24 09:49:07 -05:00
Charlie Marsh
30ae0d3723
Add Dagger and Great Expectations ( #2130 )
2023-01-24 09:48:00 -05:00
Ville Skyttä
7e92485f43
feat: autofix `multi-line-summary-*-line` ( #2093 )
2023-01-24 08:17:13 -05:00
Edgar R. M
f5f0ed280a
Implement `EXE001` and `EXE002` from `flake8-executable` ( #2118 )
2023-01-24 08:02:47 -05:00
Hugo
b29b4084ff
Add apk instructions to README ( #2121 )
2023-01-24 07:29:03 -05:00
Aarni Koskela
c61ca4a953
Add Home Assistant to Readme ( #2120 )
2023-01-24 07:27:45 -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
1c3265ef98
Bump version to 0.0.231
2023-01-23 12:51:09 -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
7d9c1d7a5a
Add a note on some isort incompatibilities
2023-01-23 12:32:35 -05:00
Thomas MK
c5cebb106e
Fix outdated description of ruff's support of isort settings ( #2106 )
...
Ruff supports more than `known-first-party`, `known-third-party`, `extra-standard-library`, and `src` nowadays.
Not sure if this is the best wording. Suggestions welcome!
2023-01-23 12:29:44 -05:00
Simon Brugman
f472fbc6d4
docs(readme): add pypa cibuildwheel ( #2107 )
2023-01-23 11:39:23 -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
f40ae943a7
Fix bad documentation message for init option
2023-01-22 19:25:23 -05:00
alm
4fb0c6e3ad
feat: Implement TRY201 ( #2073 )
2023-01-22 17:08:57 -05:00
Simon Brugman
11f06055a0
feat: flake8-use-pathlib PTH100-124 ( #2090 )
2023-01-22 15:17:25 -05:00
Charlie Marsh
23b622943e
Bump version to 0.0.230
2023-01-22 13:58:41 -05:00
alm
e11cf1bf65
Update linters PyPI links to latest version ( #2062 )
2023-01-22 13:10:22 -05:00
Martin Fischer
4758ee6ac4
refactor: Generate Linter -> RuleSelector mapping via macro
...
To enable ruff_dev to automatically generate the rule Markdown tables in
the README the ruff library contained the following function:
Linter::codes() -> Vec<RuleSelector>
which was slightly changed to `fn prefixes(&self) -> Prefixes` in
9dc66b5a65 to enable ruff_dev to split
up the Markdown tables for linters that have multiple prefixes
(pycodestyle has E & W, Pylint has PLC, PLE, PLR & PLW).
The definition of this method was however largely redundant with the
#[prefix] macro attributes in the Linter enum, which are used to
derive the Linter::parse_code function, used by the --explain command.
This commit removes the redundant Linter::prefixes by introducing a
same-named method with a different signature to the RuleNamespace trait:
fn prefixes(&self) -> &'static [&'static str];
As well as implementing IntoIterator<Rule> for &Linter. We extend the
extisting RuleNamespace proc macro to automatically derive both
implementations from the Linter enum definition.
To support the previously mentioned Markdown table splitting we
introduce a very simple hand-written method to the Linter impl:
fn categories(&self) -> Option<&'static [LinterCategory]>;
2023-01-22 11:51:29 -05:00
Simon Brugman
6fc6bf0648
feat: enable autofix for TRY004 ( #2084 )
...
functionality was already implemented, just the trait needed to be added
2023-01-22 07:18:56 -05:00
Cosmo
39aed6f11d
Update link to Pylint parity tracking issue ( #2074 )
2023-01-21 17:46:55 -05:00
Simon Brugman
67de8ac85e
feat: implementation for TRY004 ( #2066 )
...
See: #2056 .
2023-01-21 14:58:59 -05:00
Charlie Marsh
84300e00ff
Bump version to 0.0.229
2023-01-21 13:18:06 -05:00
Simon Brugman
afcf5c0ee0
feat: plugin scaffold for tryceratops with TRY300 ( #2055 )
...
Renamed to TRY to avoid conflicts, as proposed in https://github.com/guilatrova/tryceratops/pull/55
https://github.com/guilatrova/tryceratops/blob/main/docs/violations/TC300.md
See: #2056
2023-01-21 11:25:10 -05:00
Colin Delahunty
80295f335b
Pyupgrade: Printf string formatting ( #1803 )
2023-01-21 09:37:22 -05:00
Charlie Marsh
8e558a3458
Add scaffolding for `flake8-type-checking` extension ( #2048 )
...
This PR adds the scaffolding files for `flake8-type-checking`, along with the simplest rule (`empty-type-checking-block`), just as an example to get us started.
See: #1785 .
2023-01-20 22:41:36 -05:00