Micha Reiser
1ccef5150d
Remove lifetime from FormatContext ( #4376 )
2023-05-11 15:43:42 +00:00
konstin
3c2f41b615
Also show rule codes in autofix errors in production codes ( #4327 )
...
I needed those changes for #4326
2023-05-11 17:36:03 +02:00
Jeong, YunWon
bbadbb5de5
Refactor code to use the new RustPython `is` method ( #4369 )
2023-05-11 16:16:36 +02:00
Jeong, YunWon
be6e00ef6e
Re-integrate RustPython parser repository ( #4359 )
...
Co-authored-by: Micha Reiser <micha@reiser.io>
2023-05-11 07:47:17 +00:00
Charlie Marsh
865205d992
Implement pygrep-hook's Mock-mistake diagnostic ( #4366 )
2023-05-11 03:26:29 +00:00
Charlie Marsh
572adf7994
Use target name in hardcoded-password diagnostics ( #4365 )
2023-05-11 02:54:27 +00:00
Charlie Marsh
3b26bf84f5
Avoid debug panic with empty indent replacement ( #4364 )
2023-05-11 02:42:18 +00:00
Charlie Marsh
f4f88308ae
Remove `Copy` and destructure `Snapshot` ( #4358 )
2023-05-10 19:46:18 +00:00
Charlie Marsh
ea3d3a655d
Add a `Snapshot` abstraction for deferring and restoring visitor context ( #4353 )
2023-05-10 16:50:47 +00:00
Charlie Marsh
fd34797d0f
Add a specialized `StatementVisitor` ( #4349 )
2023-05-10 12:42:20 -04:00
Charlie Marsh
257c571c43
Remove pub from some `Checker` fields ( #4352 )
2023-05-10 12:33:47 -04:00
Charlie Marsh
ccdee55e6e
Tweak capitalization of B021 message ( #4350 )
2023-05-10 15:59:00 +00:00
Charlie Marsh
6d6d7abf70
Use short-import for `HashMap` ( #4351 )
2023-05-10 15:46:55 +00:00
konstin
0096938789
Optionally show fixes when using `--features ecosystem_ci` with cargo and `--show-fixes` at runtime ( #4191 )
...
* Generate fixes when using --show-fixes
Example command: `cargo run --bin ruff -- --no-cache --select F401
--show-source --show-fixes
crates/ruff/resources/test/fixtures/pyflakes/F401_9.py`
Before, `--show-fixes` was ignored:
```
crates/ruff/resources/test/fixtures/pyflakes/F401_9.py:4:22: F401 [*] `foo.baz` imported but unused
|
4 | __all__ = ("bar",)
5 | from foo import bar, baz
| ^^^ F401
|
= help: Remove unused import: `foo.baz`
Found 1 error.
[*] 1 potentially fixable with the --fix option.
```
After:
```
crates/ruff/resources/test/fixtures/pyflakes/F401_9.py:4:22: F401 [*] `foo.baz` imported but unused
|
4 | __all__ = ("bar",)
5 | from foo import bar, baz
| ^^^ F401
|
= help: Remove unused import: `foo.baz`
ℹ Suggested fix
1 1 | """Test: late-binding of `__all__`."""
2 2 |
3 3 | __all__ = ("bar",)
4 |-from foo import bar, baz
4 |+from foo import bar
Found 1 error.
[*] 1 potentially fixable with the --fix option.
```
* Add `--format ecosystem-ci`
* cargo dev generate-all
* Put behind cargo feature
* Regenerate docs
* Don't test ecosystem_ci feature on CI
* Use top level flag instead
* Fix
* Simplify code based on #4191
* Remove old TODO comment
2023-05-10 17:45:57 +02:00
Micha Reiser
853d8354cb
JSON Emitter: Use one indexed column numbers for edits ( #4007 )
...
I noticed in the byte-offsets refactor that the `JsonEmitter` uses one indexed column numbers for the diagnostic start and end locations but not for `edits`.
This PR changes the `JsonEmitter` to emit one-indexed column numbers for edits, as we already do for `Message::location` and `Message::end_location`.
## Open questions
~We'll need to change the LSP to subtract 1 from the columns in `_parse_fix`~
6e44fadf8a/ruff_lsp/server.py (L129-L150)
~@charliermarsh is there a way to get the ruff version in that method? If not, then I recommend adding a `version` that we increment whenever we make incompatible changes to the serialized message. We can then use it in the LSP to correctly compute the column offset.~
I'll use the presence of the `Fix::applicability` field to detect if the Ruff version uses one or zero-based column indices.
See https://github.com/charliermarsh/ruff-lsp/pull/103
2023-05-10 17:21:02 +02:00
Charlie Marsh
5f64d2346f
Enforce max-doc-length for multi-line docstrings ( #4347 )
2023-05-10 11:06:07 -04:00
Micha Reiser
ddbe5a1243
Add `Fix::applicability` to JSON output ( #4341 )
2023-05-10 14:34:53 +00:00
Evan Rittenhouse
04097d194c
Fix false positives in PD002 ( #4337 )
2023-05-10 16:04:28 +02:00
Micha Reiser
a2b8487ae3
Remove functor from autofix title ( #4245 )
2023-05-10 07:21:15 +00:00
Micha Reiser
8969ad5879
Always generate fixes ( #4239 )
2023-05-10 07:06:14 +00:00
Micha Reiser
bfa1c28c00
Use non-empty ranges for logical-lines diagnostics ( #4133 )
2023-05-10 06:44:33 +00:00
Zanie Adkins
cf7aa26aa4
Add `Applicability` to `Fix` ( #4303 )
...
Co-authored-by: Micha Reiser <micha@reiser.io>
2023-05-10 08:42:46 +02:00
Micha Reiser
d66ce76691
Truncate `SyntaxError`s before newline character ( #4124 )
2023-05-10 08:37:57 +02:00
Tom Kuson
b8bb9e8b92
Add docs for `flake8-simplify` rules ( #4334 )
2023-05-10 03:03:24 +00:00
Charlie Marsh
5e46dcbf21
Handle `.encode` calls on parenthesized expressions ( #4338 )
2023-05-09 22:57:10 -04:00
trag1c
045449ab12
Improved E713 & E714 code examples ( #4336 )
2023-05-09 22:27:44 -04:00
Tom Kuson
d5ff8d7c43
Add `flake8-pie` documentation ( #4332 )
2023-05-09 22:11:30 +00:00
Charlie Marsh
d92fb11e80
Include positional- and keyword-only arguments in too-many-arguments ( #4329 )
2023-05-09 18:05:53 -04:00
Charlie Marsh
3d947196f8
Make violation struct fields private ( #4331 )
2023-05-09 18:00:20 -04:00
Charlie Marsh
e846f2688b
Avoid SIM105 autofixes that would remove comments ( #4330 )
2023-05-09 21:30:56 +00:00
Charlie Marsh
7b91a162c6
Remove `current_` prefix from some Context methods ( #4325 )
2023-05-09 19:40:12 +00:00
Charlie Marsh
8c2cfade90
Move `show_source` onto CLI settings group ( #4317 )
2023-05-09 17:26:25 +00:00
Charlie Marsh
a435c0df4b
Remove deprecated `update-check` setting ( #4313 )
2023-05-09 13:10:02 -04:00
Aaron Cunningham
48e1852893
Revert the B027 autofix logic ( #4310 )
2023-05-09 13:08:20 -04:00
Calum Young
03f141f53d
Check that all rules have descriptions ( #4315 )
2023-05-09 16:53:23 +00:00
Charlie Marsh
d3b71f1e04
Run autofix on initial watcher pass ( #4311 )
2023-05-09 12:35:32 -04:00
Mikko Leppänen
04e8e74499
Feat: detect changes also in configuration files ( #4169 )
2023-05-09 16:22:52 +00:00
konstin
318653c427
Write diagnostic name when failing to create fix ( #4309 )
2023-05-09 17:46:40 +02:00
Micha Reiser
99a755f936
Add `schemars` feature ( #4305 )
2023-05-09 16:15:18 +02:00
Aurelio Jargas
e7dfb35778
UP011: Fix typo in rule description ( #4306 )
2023-05-09 08:49:15 -04:00
Dhruv Manilawala
085fd37209
Preserve whitespace around `ListComp` brackets in `C419` ( #4099 )
2023-05-09 08:43:05 +02:00
Charlie Marsh
83536cf87b
Ignore `TRY301` exceptions without except handlers ( #4301 )
2023-05-09 03:38:02 +00:00
Charlie Marsh
9366eb919d
Specify exact command in incorrect parentheses suggestion ( #4300 )
2023-05-09 02:21:54 +00:00
Charlie Marsh
8be51942dd
Use `ruff_python_semantic` abstract utility in flake8-pytest-style ( #4299 )
2023-05-08 22:12:28 -04:00
Charlie Marsh
d365dab904
Include static and class methods in in abstract decorator list ( #4298 )
2023-05-08 21:54:02 -04:00
Charlie Marsh
f23851130a
Add `flynt` to documentation ( #4295 )
2023-05-09 00:52:41 +00:00
Aarni Koskela
efdf383f5e
Implement Flynt static string join transform as FLY002 ( #4196 )
2023-05-08 20:46:38 -04:00
Charlie Marsh
61f21a6513
Rewrite `not not a` as `bool(a)` in boolean contexts ( #4294 )
2023-05-08 23:38:24 +00:00
Charlie Marsh
c54e48dce5
Avoid panics for f-string rewrites at start-of-file ( #4291 )
2023-05-08 19:44:57 +00:00
Charlie Marsh
b913e99bde
Explicitly support ASCII-only for capitalization checks ( #4290 )
2023-05-08 15:41:11 -04:00
Dhruv Manilawala
4ac506526b
Avoid `D403` if first char cannot be uppercased ( #4283 )
2023-05-08 15:33:24 -04:00
Calum Young
cd41de2588
Check docs formatting check ( #4270 )
2023-05-08 19:03:22 +00:00
Dhruv Manilawala
3344d367f5
Avoid fixing `PD002` in a lambda expression ( #4286 )
2023-05-08 18:24:27 +00:00
Aarni Koskela
d7a369e7dc
Update confusable character mapping ( #4274 )
2023-05-08 14:20:44 -04:00
Jonathan Plasse
1b1788c8ad
Fix replace_whitespace() tabulation to space ( #4226 )
...
Co-authored-by: Micha Reiser <micha@reiser.io>
2023-05-08 12:03:04 +00:00
Micha Reiser
4d5a339d9e
Remove `Fix::from(Edit)` and add deprecated replacement methods to `Diagnostic`s ( #4275 )
2023-05-08 10:25:50 +00:00
Zanie Adkins
0801f14046
Refactor `Fix` and `Edit` API ( #4198 )
2023-05-08 11:57:03 +02:00
Trevor McCulloch
3beff29026
[`pylint`] Implement `nested-min-max` (`W3301`) ( #4200 )
2023-05-07 03:14:14 +00:00
Jerome Leclanche
5ac2c7d293
Add .git-rewrite folder to default ignored folder paths ( #4261 )
2023-05-06 22:40:38 -04:00
Charlie Marsh
e66fdb83d0
Respect insertion location when importing symbols ( #4258 )
2023-05-07 02:32:40 +00:00
Charlie Marsh
a95bafefb0
Fix `RET504` example in docs ( #4260 )
2023-05-06 16:56:52 -04:00
Charlie Marsh
539af34f58
Add a utility method to detect top-level state ( #4259 )
2023-05-06 20:24:27 +00:00
Charlie Marsh
983bb31577
Remove `RefEquality` usages from `Context` ( #4257 )
2023-05-06 15:55:14 -04:00
Charlie Marsh
b98b604071
Remove some deferred `&Stmt` references ( #4256 )
2023-05-06 18:42:35 +00:00
Charlie Marsh
cd27b39aff
Re-order some code in scope.rs ( #4255 )
2023-05-06 16:36:20 +00:00
Charlie Marsh
a9fc648faf
Use `NodeId` for `Binding` source ( #4234 )
2023-05-06 16:20:08 +00:00
Charlie Marsh
c1f0661225
Replace `parents` statement stack with a `Nodes` abstraction ( #4233 )
2023-05-06 16:12:41 +00:00
Dhruv Manilawala
2c91412321
Consider Flask app logger as logger candidate ( #4253 )
2023-05-06 11:31:10 -04:00
Charlie Marsh
11e1380df4
Bump version to 0.0.265 ( #4248 )
2023-05-05 13:16:05 -04:00
Micha Reiser
e93f378635
Refactor whitespace around operator ( #4223 )
2023-05-05 09:37:56 +02:00
Micha Reiser
2124feb0e7
Fail lint tests if the fix creates a syntax error ( #4202 )
2023-05-05 07:59:33 +02:00
Charlie Marsh
c0e7269b07
Update doc defaults for `section-order` ( #4232 )
2023-05-04 21:35:27 +00:00
Chris Chan
c2921e957b
[`pylint`] Implement import-self (`W0406`) ( #4154 )
2023-05-04 16:05:15 -04:00
Charlie Marsh
93cfce674a
Ignore __debuggerskip__ in unused variable checks ( #4229 )
2023-05-04 15:45:49 -04:00
Charlie Marsh
b71cc3789f
Change `--fix-only` exit semantics to mirror `--fix` ( #4146 )
2023-05-04 19:03:15 +00:00
Zanie Adkins
717128112d
Fix panic in pydocstyle D214 when docstring indentation is empty ( #4216 )
2023-05-04 14:42:34 -04:00
Arya Kumar
e9e194ab32
[`flake8-pyi`] Implement `PYI042` and `PYI043` ( #4214 )
2023-05-04 14:35:26 -04:00
Calum Young
890e630c41
Allow linking to individual rules ( #4158 )
2023-05-04 13:43:53 -04:00
Aaron Cunningham
d78287540d
Update B027 to support autofixing ( #4178 )
2023-05-04 16:36:32 +00:00
Charlie Marsh
494e807315
Add space when joining rule codes for debug messages ( #4225 )
2023-05-04 15:34:34 +00:00
Tom Kuson
6db1a32eb9
Add docs for PLC rules ( #4224 )
2023-05-04 10:56:00 -04:00
Dhruv Manilawala
bb2cbf1f25
End of statement insertion should occur after newline ( #4215 )
2023-05-04 16:17:41 +02:00
konstin
badfdab61a
Show rule codes on autofix failure ( #4220 )
2023-05-04 15:25:07 +02:00
Dhruv Manilawala
59d40f9f81
Show settings path in `--show-settings` output ( #4199 )
2023-05-04 08:22:31 +02:00
Arya Kumar
37aae666c7
[flake8-pyi] PYI020 ( #4211 )
2023-05-03 22:37:32 -04:00
Leiser Fernández Gallo
460023a959
Fix era panic caused by out of bound edition ( #4206 )
2023-05-03 15:48:43 +02:00
Aarni Koskela
d0e3ca29d9
Print out autofix-broken or non-converging code when debugging ( #4201 )
2023-05-03 13:50:03 +02:00
Micha Reiser
b14358fbfe
Render tabs as 4 spaces in diagnostics ( #4132 )
2023-05-02 13:14:02 +00:00
wookie184
ac600bb3da
Warn on PEP 604 syntax not in an annotation, but don't autofix ( #4170 )
2023-05-01 23:49:20 -07:00
Charlie Marsh
8cb76f85eb
Bump version to 0.0.264 ( #4179 )
2023-05-01 23:33:38 -07:00
Charlie Marsh
56c45013c2
Allow boolean parameters for `pytest.param` ( #4176 )
2023-05-02 01:07:50 +00:00
Calum Young
a4ce746892
Reference related settings in rules ( #4157 )
2023-05-02 00:59:00 +00:00
Calum Young
2d6d51f3a1
Add `flake8-return` docs ( #4164 )
2023-05-02 00:53:46 +00:00
Jonathan Plasse
814731364a
Fix UP032 auto-fix ( #4165 )
2023-04-30 16:57:41 -04:00
Jonathan Plasse
8c97e7922b
Fix F811 false positive with match ( #4161 )
2023-04-30 14:39:45 -04:00
Charlie Marsh
64b7280eb8
Respect parent-scoping rules for `NamedExpr` assignments ( #4145 )
2023-04-29 22:45:30 +00:00
Evan Rittenhouse
8d64747d34
Remove `pyright` comment prefix from PYI033 checks ( #4152 )
2023-04-29 18:41:04 -04:00
Charlie Marsh
2115d99c43
Remove `ScopeStack` in favor of child-parent `ScopeId` pointers ( #4138 )
2023-04-29 18:23:51 -04:00
Calum Young
39ed75f643
Document `flake8-unused-arguments` ( #4147 )
2023-04-29 19:17:50 +00:00
Calum Young
8f61eae1e7
Add remaining `pep8-naming` docs ( #4149 )
2023-04-29 15:13:10 -04:00
Calum Young
f0f4bf2929
Move typos to pre-commit config ( #4148 )
2023-04-29 12:13:35 -04:00
Calum Young
03144b2fad
Document `flake8-commas` ( #4142 )
2023-04-29 03:24:15 +00:00
Calum Young
0172cc51a7
Document `flake8-print` ( #4144 )
2023-04-29 03:19:00 +00:00
Calum Young
12d64a223b
Document RUF100 ( #4141 )
2023-04-28 22:14:15 +00:00
Charlie Marsh
432ea6f2e2
Tweak rule documentation for `B008` ( #4137 )
2023-04-28 01:29:03 +00:00
Evan Rittenhouse
b34804ceb5
Make D410/D411 autofixes mutually exclusive ( #4110 )
2023-04-28 01:24:35 +00:00
Moritz Sauter
ee6d8f7467
Add bugbear immutable functions as allowed in dataclasses ( #4122 )
2023-04-27 21:23:06 -04:00
Dhruv Manilawala
089b64e9c1
Autofix `EM101`, `EM102`, `EM103` if possible ( #4123 )
2023-04-27 18:53:27 +00:00
Tom Kuson
3e81403fbe
Add pygrep-hooks documentation ( #4131 )
2023-04-27 18:33:07 +00:00
Charlie Marsh
3c9f5e2fdc
Preserve star-handling special-casing for force-single-line ( #4129 )
2023-04-27 00:02:17 -04:00
Micha Reiser
17db2e2a62
Fix B023 shadowed variables in nested functions ( #4111 )
2023-04-26 22:01:31 +01:00
Micha Reiser
e04ef42334
Use `memchr` to speedup newline search on x86 ( #3985 )
2023-04-26 20:15:47 +01:00
Micha Reiser
f3e6ddda62
perf(logical-lines): Various small perf improvements ( #4022 )
2023-04-26 20:10:35 +01:00
Micha Reiser
cab65b25da
Replace row/column based `Location` with byte-offsets. ( #3931 )
2023-04-26 18:11:02 +00:00
Charlie Marsh
ee91598835
Tweak `--show-fixes` documentation ( #4117 )
2023-04-26 15:15:56 +00:00
Dhruv Manilawala
b9c06b48e1
Document that `--diff` implies `--fix-only` ( #4098 )
2023-04-25 21:19:44 -06:00
Charlie Marsh
7266eb0d69
Add support for providing command-line arguments via `argfile` ( #4087 )
2023-04-25 17:58:21 -06:00
Jonathan Plasse
4df7bc0bcd
Fix `E713` and `E714` false positives for multiple comparisons ( #4083 )
2023-04-25 11:37:56 -06:00
Charlie Marsh
fd7ccb4c9e
Bump version to 0.0.263 ( #4086 )
2023-04-24 23:32:29 -06:00
Evan Rittenhouse
ae6f38344a
Unify positional and keyword arguments when checking for missing arguments in docstring ( #4067 )
2023-04-25 05:32:15 +00:00
Trevor McCulloch
bbf658d4c5
[`pylint`] Implement PLE0302 `unexpected-special-method-signature` ( #4075 )
2023-04-25 04:51:21 +00:00
Jonathan Plasse
1f3b0fd602
Fix `SIM222` and `SIM223` false positives and auto-fix ( #4063 )
2023-04-25 04:44:02 +00:00
Dhruv Manilawala
37483f3ac9
Ignore `ClassVar` annotation for `RUF008`, `RUF009` ( #4081 )
2023-04-24 23:58:30 +00:00
Jonathan Plasse
5e91211e6d
Add `in_boolean_test` to `Context` ( #4072 )
2023-04-23 23:18:23 -06:00
Jonathan Plasse
df77595426
Move `Truthiness` into `ruff_python_ast` ( #4071 )
2023-04-24 04:54:31 +00:00
Charlie Marsh
407af6e0ae
Avoid infinite-propagation of inline comments when force-splitting imports ( #4074 )
2023-04-23 22:39:51 -06:00
Dhruv Manilawala
d64146683e
Increment priority should be (branch-local, global) ( #4070 )
2023-04-23 00:04:15 -06:00
Charlie Marsh
0e7914010f
Misc. small clean-up of `flake8-import-conventions` rules ( #4069 )
2023-04-23 04:57:15 +00:00
Edgar R. M
cfc7d8a2b5
[`flake8-import-conventions`] Implement new rule `ICN003` to ban `from ... import ...` for selected modules ( #4040 )
2023-04-23 04:40:36 +00:00
Tom Kuson
f5cd659292
Add docs for `tryceratops` rules ( #4042 )
2023-04-23 04:35:56 +00:00
Charlie Marsh
260138b427
Use `Context` for pep8-naming helpers ( #4068 )
2023-04-22 18:44:54 -04:00
Jonathan Plasse
2da149fd7e
Ignore `N815` for `TypedDict` fields ( #4066 )
2023-04-22 18:17:14 -04:00
Micha Reiser
e33887718d
Use Rust 1.69 ( #4065 )
2023-04-22 23:04:17 +01:00
Micha Reiser
ba4f4f4672
Upgrade dependencies ( #4064 )
2023-04-22 18:04:01 +01:00
Alan Du
82abbc7234
[`flake8-bugbear`] Add pytest.raises(Exception) support to `B017` ( #4052 )
2023-04-21 03:43:01 +00:00
Dhruv Manilawala
ba98149022
Avoid `RUF008` if field annotation is immutable ( #4039 )
2023-04-20 16:02:12 -04:00
Dhruv Manilawala
7fd44a3e12
Avoid `PYI015` for valid default value without annotation ( #4043 )
2023-04-20 15:45:47 -04:00
Evan Rittenhouse
6e8d561090
Support --fix in watch mode ( #4035 )
2023-04-19 23:33:12 -04:00
Charlie Marsh
eed6866b7e
Add relative-path tests for `banned-api` ( #4033 )
2023-04-19 16:04:22 -04:00
Charlie Marsh
25a6bfa9ee
Bump version to 0.0.262 ( #4032 )
2023-04-19 15:49:28 -04:00
Charlie Marsh
b3f8f2a5c1
Remove TODO in `handle_node_store` ( #4031 )
2023-04-19 15:28:56 -04:00
Charlie Marsh
cc8b5a543b
Ignore stub file assignments to value-requiring targets ( #4030 )
2023-04-19 15:26:00 -04:00
Charlie Marsh
10d5415bcb
Ignore certain flake8-pyi errors within function bodies ( #4029 )
2023-04-19 15:10:29 -04:00
Charlie Marsh
827cbe7f97
Treat non-future function annotations as required-at-runtime ( #4028 )
2023-04-19 14:43:55 -04:00
Charlie Marsh
0d84517fbc
Use module path resolver for relative autofix ( #4027 )
2023-04-19 14:43:45 -04:00
Charlie Marsh
7fa1da20fb
Support relative imports in `banned-api` enforcement ( #4025 )
2023-04-19 14:30:13 -04:00
Francesco Nuzzo
f13a161ead
remove unnecessary f-string formatting ( #4026 )
2023-04-19 18:14:33 +00:00
Charlie Marsh
c4cda301aa
Ignore relative imports in `banned-api` rules ( #4024 )
2023-04-19 13:30:08 -04:00
Charlie Marsh
13fda30051
Refactor `flake8_tidy_imports` rules to consistently take `Checker` ( #4023 )
2023-04-19 16:42:15 +00:00
Micha Reiser
a3146ab1ca
Fix (doc-)line-too-long start location ( #4006 )
2023-04-19 08:42:28 +02:00