Charlie Marsh
f0465bf106
Emit non-logical newlines for "empty" lines ( #4444 )
2023-05-16 14:58:56 +00:00
Charlie Marsh
8134ec25f0
Fix expected-indentation errors with end-of-line comments ( #4438 )
2023-05-16 10:45:54 -04:00
Jeong, YunWon
badade3ccc
Impl `Default` for `SourceLocation` ( #4328 )
...
Co-authored-by: Micha Reiser <micha@reiser.io>
2023-05-16 07:03:43 +00:00
Micha Reiser
fa26860296
Refactor range from `Attributed` to `Node`s ( #4422 )
2023-05-16 06:36:32 +00:00
Sladyn
c711db11ce
[`flake8-pyi`] Implement `unannotated-assignment-in-stub` (`PY052`) ( #4293 )
2023-05-16 02:06:55 +00:00
Charlie Marsh
1fe6954150
Fix bidirectional-unicode formatting ( #4445 )
2023-05-15 22:36:25 +00:00
Charlie Marsh
2414469ac3
Enable automatic rewrites of `typing.Deque` and `typing.DefaultDict` ( #4420 )
2023-05-15 22:33:24 +00:00
Tom Kuson
838ba1ca3d
Add `PLE` rule docs ( #4437 )
2023-05-15 19:48:18 +00:00
qdegraaf
8ba9eb83af
Implement `flake8-async` plugin ( #4432 )
2023-05-15 09:15:28 -04:00
Zanie Adkins
2c6efc2f5f
Update C419 to be a suggested fix ( #4424 )
2023-05-15 10:30:40 +02:00
Ben Doerry
d6930ca991
Merge subsettings when extending configurations ( #4431 )
2023-05-15 02:34:58 +00:00
Charlie Marsh
dcff515ad8
Make `extend_function_names` an `Option` type ( #4434 )
2023-05-15 02:15:02 +00:00
Jonathan Plasse
b9e387013f
Fix `RUF010` autofix within f-strings ( #4423 )
2023-05-15 02:08:30 +00:00
Charlie Marsh
a69451ff46
[`pyupgrade`] Remove `keep-runtime-typing` setting ( #4427 )
2023-05-14 03:12:52 +00:00
Tyler Yep
01b372a75c
Implement `flake8-future-annotations` FA100 ( #3979 )
2023-05-14 03:00:06 +00:00
Charlie Marsh
cd2e7fa72a
Use `TextSize` for flake8-todos `Directive` methods ( #4426 )
2023-05-13 22:05:51 -04:00
Charlie Marsh
fdf0b999cd
Replace TODO tag regex with a lexer ( #4413 )
2023-05-13 15:23:46 +00:00
Jonathan Plasse
45b5fa573f
Ignore ANN401 for overridden methods ( #4409 )
2023-05-13 15:20:04 +00:00
Jonathan Plasse
a0258f2205
[`pylint`] Fix `PLW3301` auto-fix with generators ( #4412 )
2023-05-13 11:17:13 -04:00
alm
0a68636de3
[`pylint`] Add `duplicate-bases` rule ( #4411 )
2023-05-13 14:28:03 +00:00
Evan Rittenhouse
2f53781a77
Implement `flake8_todos` ( #3921 )
2023-05-13 14:19:06 +00:00
Micha Reiser
f5afa8198c
Use new `rustpython_format` crate over `rustpython-common` ( #4388 )
2023-05-13 12:35:02 +00:00
Charlie Marsh
eeabfd6d18
Enable autofix for split-assertions at top level ( #4405 )
2023-05-12 17:35:49 -04:00
Charlie Marsh
490301f9fe
Replace `macro_rules!` visitors with dedicated methods ( #4402 )
2023-05-12 17:05:59 -04:00
Charlie Marsh
dcedd5cd9d
Bump version to 0.0.267 ( #4400 )
2023-05-12 19:04:56 +00:00
Lotem
52f6663089
Implement `RUF010` to detect explicit type conversions within f-strings ( #4387 )
2023-05-12 18:12:58 +00:00
Charlie Marsh
67076b2dcb
Bump version to 0.0.266 ( #4391 )
2023-05-12 13:11:03 -04:00
Charlie Marsh
7e3ba7f32a
Use `bitflags` for tracking `Context` flags ( #4381 )
2023-05-12 16:07:26 +00:00
konstin
09dbd2029c
Update maturin to maturin 0.15 ( #3999 )
...
* Update maturin to maturin>=0.14.17
This allows removing the deprecated `[package.metadata.maturin]`
* Update to maturin 0.15
2023-05-12 15:43:06 +02:00
Jonathan Plasse
1380bd94da
Expose more fields in rule explanation ( #4367 )
2023-05-11 19:22:23 -04:00
Jonathan Plasse
c10a4535b9
Disallow `unreachable_pub` ( #4314 )
2023-05-11 18:00:00 -04:00
Charlie Marsh
97802e7466
Ignore some methods on list in `flake8-boolean-trap` ( #4385 )
2023-05-11 21:54:59 +00:00
Jonathan Plasse
4fd4a65718
Isolate show statistic integration test ( #4383 )
2023-05-11 21:42:34 +00:00
Charlie Marsh
d78c614764
Remove special-casing for `flake8-builtins` rules ( #4380 )
2023-05-11 16:39:28 -04:00
Charlie Marsh
3f3dd7af99
Move some recursion out of the pre-visit statement phase ( #4379 )
2023-05-11 15:46:25 -04:00
Charlie Marsh
871b92a385
Avoid re-using imports beyond current edit site ( #4378 )
2023-05-11 14:47:18 -04:00
Charlie Marsh
9158f13ee6
Respect `__all__` imports when determining definition visibility ( #4357 )
2023-05-11 17:43:51 +00:00
Charlie Marsh
72e0ffc1ac
Delay computation of `Definition` visibility ( #4339 )
2023-05-11 17:14:29 +00:00
Charlie Marsh
ffcf0618c7
Avoid underflow in expected-special-method-signature ( #4377 )
2023-05-11 12:47:47 -04:00
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
Micha Reiser
c0cf87356e
Set non-empty range for indentation diagnostics ( #4005 )
2023-04-18 16:26:13 +02:00
Charlie Marsh
6c038830a8
Ignore argument assignments when enforcing `RET504` ( #4004 )
2023-04-18 03:22:38 +00:00
Charlie Marsh
064a293b80
Fix defaults for section-order ( #4003 )
2023-04-18 03:00:17 +00:00
Charlie Marsh
79c47e29ee
Avoid short-circuiting when detecting RET rules ( #4002 )
2023-04-17 22:52:26 -04:00
Charlie Marsh
be87a29a9d
Respect typing-modules when evaluating no-return functions ( #4001 )
2023-04-17 20:25:44 +00:00
Micha Reiser
280dffb5e1
Add parser benchmark ( #3990 )
2023-04-17 16:43:59 +02:00
Tom Kuson
516cb10000
Add more documentation for `flake8-type-checking` ( #3994 )
2023-04-17 09:51:54 -04:00
Charlie Marsh
1cdd5e3424
Remove autofix behavior for uncapitalized-environment-variables (`SIM112`) ( #3988 )
2023-04-16 23:19:05 +00:00
Dhruv Manilawala
bd78c6ade2
Preserve type annotations when fixing `E731` ( #3983 )
2023-04-16 23:15:38 +00:00
Dhruv Manilawala
5ce35faa86
Do not consider nested comment as part of code ( #3984 )
2023-04-16 19:11:01 -04:00
Charlie Marsh
c457752f36
Redirect `PIE802` to `C419` ( #3971 )
2023-04-13 22:12:32 -04:00
Charlie Marsh
289289bfd3
Implement `unnecessary-literal-within-dict-call` (`C418`) ( #3969 )
2023-04-14 01:39:35 +00:00
Charlie Marsh
d8718dcf54
Remove extraneous debug and TODO ( #3967 )
2023-04-13 18:45:18 -04:00
Charlie Marsh
fb9eeba422
Move user-defined section validation into `Settings` ( #3966 )
2023-04-13 22:40:05 +00:00
Paul
2d2630ef07
Implement isort custom sections and ordering ( #2419 ) ( #3900 )
2023-04-13 21:28:22 +00:00
Charlie Marsh
1f22e035e3
Add 'or if cond' to `E712` message ( #3962 )
2023-04-13 19:02:23 +00:00
Rob Young
a6a7584d79
Implement `flake8-bandit` shell injection rules ( #3924 )
2023-04-13 14:45:27 -04:00
Charlie Marsh
ffac4f6ec3
Ignore assert errors (S101) in `TYPE_CHECKING` blocks ( #3960 )
2023-04-13 18:20:44 +00:00
Dhruv Manilawala
032a84b167
Check for parenthesis in implicit str concat in `PT006` ( #3955 )
2023-04-13 17:56:18 +00:00
Charlie Marsh
3357aaef4b
Add docs for assert rule (S101) ( #3959 )
2023-04-13 13:43:00 -04:00
Charlie Marsh
e160a52bfd
Raise percent-format upgrade rule (`UP031`) for hanging modulos ( #3953 )
2023-04-12 23:59:20 -04:00
Charlie Marsh
9067ae47d1
Allow `typing_extensions.TypeVar` assignments in `.pyi` files ( #3951 )
2023-04-12 17:30:15 -04:00
Charlie Marsh
1e2df07544
Use identifier range for pytest rules ( #3948 )
2023-04-12 15:28:25 +00:00
USER-5
860841468c
[`flake8-pyi`] Implement duplicate types in unions (`PYI016`) ( #3922 )
2023-04-12 04:06:09 +00:00
Charlie Marsh
ed4ecc3255
Remove unused import ( #3944 )
2023-04-12 03:55:38 +00:00
Charlie Marsh
b999e4b1e2
Allow users to extend the set of included files via `include` ( #3914 )
2023-04-11 23:39:43 -04:00
Charlie Marsh
8ce227047d
Tidy up some `pygrep-hooks` rules ( #3942 )
2023-04-12 03:35:15 +00:00
Daniel Stancl
523515f936
[`flake8-import-conventions`] Add a rule for `BannedImportAlias` ( #3926 )
2023-04-12 03:29:24 +00:00
Charlie Marsh
10da3bc8dd
Support `pyright: ignore` comments ( #3941 )
2023-04-12 03:10:29 +00:00
Charlie Marsh
eb0dd74040
Avoid adding required imports to stub files ( #3940 )
2023-04-11 22:31:20 -04:00
Micha Reiser
61200d2171
lint snapshots: Use filename only to avoid platform specific separators ( #3930 )
2023-04-11 11:40:51 +02:00
Micha Reiser
e8aebee3f6
Pretty print `Diagnostic`s in snapshot tests ( #3906 )
2023-04-11 09:03:00 +00:00
Micha Reiser
210083bdd8
Order `Edit`s by `Location`s ( #3905 )
2023-04-11 08:56:41 +00:00
Micha Reiser
c33c9dc585
Introduce SourceFile to avoid cloning the message filename ( #3904 )
2023-04-11 08:28:55 +00:00
Micha Reiser
056c212975
Render code frame with context ( #3901 )
2023-04-11 10:22:11 +02:00
Micha Reiser
381203c084
Store source code on message ( #3897 )
2023-04-11 07:57:36 +00:00
Micha Reiser
76c47a9a43
Cheap cloneable LineIndex ( #3896 )
2023-04-11 07:33:40 +00:00
Micha Reiser
9209e57c5a
Extract message emitters from Printer ( #3895 )
2023-04-11 07:24:25 +00:00
Leiser Fernández Gallo
333f1bd9ce
Extend SIM105 to match also 'Ellipsis only' bodies in exception handlers ( #3925 )
2023-04-10 09:55:02 -04:00
Leiser Fernández Gallo
002caadf9e
[`flake8-simplify`] Add autofix for `contextlib.suppress` (`SIM105`) ( #3915 )
2023-04-09 22:45:19 +00:00
Dhruv Manilawala
311ba29d0f
Do not skip analysis if `*args` present for `F523` ( #3923 )
2023-04-09 18:34:52 -04:00
Dhruv Manilawala
237a64d922
Check for arguments in inner/outer call for `C414` ( #3916 )
2023-04-09 18:33:11 -04:00
Moritz Sauter
d4af2dd5cf
[`ruff`] Add checks for mutable defaults in `dataclass`es ( #3877 )
2023-04-09 02:46:28 +00:00
Charlie Marsh
a36ce585ce
Remove `extract_path_names` helper ( #3920 )
2023-04-08 11:14:42 -04:00
Charlie Marsh
29ec6df24f
Avoid N802 violations for `@override` methods ( #3912 )
2023-04-08 03:11:50 +00:00
Evan Rittenhouse
abaf0a198d
Ensure that tab characters aren't in multi-line strings before throwing a violation ( #3837 )
2023-04-06 22:25:40 -04:00
konstin
cae5503e34
[`pylint`] Fix unicode handling in `PLE2515` ( #3898 )
2023-04-06 13:54:52 -04:00
Dhruv Manilawala
34e9786a41
Visit comprehension to detect group name usage/overrides ( #3887 )
2023-04-05 18:03:11 -04:00
Dhruv Manilawala
5467d45dfa
Ignore `PLW2901` when using typing cast ( #3891 )
2023-04-05 18:02:32 -04:00
Charlie Marsh
ac87137c1c
Avoid printing docs on cargo dev generate-all ( #3890 )
2023-04-05 14:18:33 -04:00
Charlie Marsh
e0bccfd2d9
Allow legacy C and T selectors in JSON schema ( #3889 )
2023-04-05 17:58:36 +00:00
Tom Kuson
7b6e55a2e0
Add documentation for `flake8-type-checking` ( #3886 )
2023-04-05 17:30:25 +00:00
Charlie Marsh
255b094b33
Bump version to 0.0.261 ( #3881 )
2023-04-04 22:31:01 -04:00
Dhruv Manilawala
b6155232ac
Consider logger candidate from `logging` module only ( #3878 )
2023-04-04 19:52:57 +00:00
kyoto7250
390d7dcf39
Supports more cases in `SIM112` ( #3876 )
2023-04-04 15:49:24 -04:00
Charlie Marsh
d919adc13c
Introduce a `ruff_python_semantic` crate ( #3865 )
2023-04-04 16:50:47 +00:00
kyoto7250
46bcb1f725
[`flake8-simplify`] Implement `dict-get-with-none-default` (`SIM910`) ( #3874 )
2023-04-04 03:52:10 +00:00
Dhruv Manilawala
2b21effa77
fixup! Support mutually exclusive branches for `B031` ( #3844 ) ( #3875 )
2023-04-03 23:34:11 -04:00
Chris Chan
10504eb9ed
Generate `ImportMap` from module path to imported dependencies ( #3243 )
2023-04-04 03:31:37 +00:00
Dhruv Manilawala
76e111c874
Support mutually exclusive branches for `B031` ( #3844 )
2023-04-04 02:33:17 +00:00
Charlie Marsh
60f6a8571a
Allow starred arguments in B030 ( #3871 )
2023-04-03 23:20:34 +00:00
Charlie Marsh
f4173b2a93
Move shadow tracking into `Scope` directly ( #3854 )
2023-04-03 15:33:44 -04:00
Charlie Marsh
449e08ed08
Rename `autofix::helpers` to `autofix::actions` ( #3866 )
2023-04-03 13:34:49 -04:00
Charlie Marsh
5625410936
Remove `uses_magic_variable_access` dependence on `Checker` ( #3864 )
2023-04-03 12:22:06 -04:00
Charlie Marsh
3744e9ab3f
Remove `contains_effect`'s dependency on `Context` ( #3855 )
2023-04-03 12:08:13 -04:00
Nazia Povey
849091d846
When checking module visibility, don't check entire ancestry ( #3835 )
2023-04-03 11:38:41 -04:00
Ran Benita
d2f2544f6e
flake8-pyi: fix PYI015 false positive on assignment of TypeVar & friends ( #3861 )
2023-04-03 11:28:46 -04:00
Charlie Marsh
25771cd4b9
Use references for `Export` binding type ( #3853 )
2023-04-03 15:26:42 +00:00
Charlie Marsh
924bebbb4a
Change "indexes" to "indices" in various contexts ( #3856 )
2023-04-02 23:08:03 +00:00
Charlie Marsh
08e5b3fa61
Make `collect_call_path` return an `Option` ( #3849 )
2023-04-01 22:29:32 -04:00
Charlie Marsh
d822e08111
Move `CallPath` into its own module ( #3847 )
2023-04-01 11:25:04 -04:00
Charlie Marsh
2f90157ce2
Move logging resolver into `logging.rs` ( #3843 )
2023-04-01 03:50:44 +00:00
Charlie Marsh
88308ef9cc
Move `Binding` structs out of `scope.rs` ( #3842 )
2023-03-31 23:49:48 -04:00
Charlie Marsh
6d80c79bac
Combine `operations.rs` and `helpers.rs` ( #3841 )
2023-04-01 03:40:34 +00:00
Charlie Marsh
2fbc620ad3
Move `__all__` utilities to `all.rs` ( #3840 )
2023-04-01 03:31:15 +00:00
Charlie Marsh
27e40e9b31
Remove `helpers.rs` dependency on `Binding` ( #3839 )
2023-04-01 03:19:45 +00:00
Charlie Marsh
b6276e2d95
Move f-string identification into rule module ( #3838 )
2023-03-31 23:10:11 -04:00
Charlie Marsh
66d72b1c7b
Move keyword checks into `is_identifier` ( #3834 )
2023-03-31 16:56:33 -04:00
Jonathan Plasse
968c7df770
Fix `is_module_name()` and improve perf of `is_identifier()` ( #3795 )
2023-03-31 15:15:36 -04:00
Jonathan Plasse
fe38597279
Fix `SIM222` and `SIM223` false positive ( #3832 )
2023-03-31 14:50:35 -04:00
Micha Reiser
48d8680e71
Ambiguous unicode, only test unicode characters ( #3814 )
2023-03-31 18:03:00 +01:00
Charlie Marsh
82584ad101
Extend `unncessary-generator-any-all` to set comprehensions ( #3824 )
2023-03-31 16:29:25 +00:00
Charlie Marsh
dfc872c9a0
Track star imports on `Scope` directly ( #3822 )
2023-03-31 15:01:12 +00:00
Charlie Marsh
cf7e1ddd08
Remove some `usize` references ( #3819 )
2023-03-30 17:35:42 -04:00
Charlie Marsh
9de1f82658
Avoid `unnecessary-comprehension-any-all` for async generators ( #3823 )
2023-03-30 18:43:59 +00:00
Charlie Marsh
54ad9397e5
Flag non-`Name` expressions in `duplicate-isinstance-call` ( #3817 )
2023-03-30 12:19:53 -04:00
Jonathan Plasse
29c8b75fd4
Ignore `collapsible-if` violations for `if False:` and `if True:` ( #3732 )
2023-03-30 15:52:43 +00:00
Charlie Marsh
0b586d5451
Use `panic` instead of `unreachable` for invalid arguments ( #3816 )
2023-03-30 15:40:53 +00:00
Charlie Marsh
01357f62e5
Add import insertion support to autofix capabilities ( #3787 )
2023-03-30 15:33:46 +00:00
Micha Reiser
d7113d3995
refactor: `StateMachine` use `match` statement ( #3811 )
2023-03-30 15:55:54 +02:00
Charlie Marsh
f79506f5a4
Move some generic structs out of `isort` ( #3788 )
2023-03-30 08:58:01 -04:00
Dhruv Manilawala
44ae3237b8
Additional simple magic return types ( #3805 )
2023-03-30 08:57:49 -04:00
konstin
f4cda31708
Use crates.io version of pep440_rs ( #3812 )
...
* Use crates.io version of pep440_rs
* Update Cargo.lock
2023-03-30 12:47:07 +00:00
Charlie Marsh
4328448a2f
Use multi-fix semantics for `inplace` removal ( #3804 )
2023-03-30 00:16:43 +00:00
Charlie Marsh
88298759ce
Misc. follow-up changes to #3802 ( #3803 )
2023-03-29 19:18:36 -04:00
Charlie Marsh
3c0e789b19
Improve robustness of argument removal for `encode` calls ( #3802 )
2023-03-29 23:07:13 +00:00
Charlie Marsh
8601dcc09b
Add import name resolution to `Context` ( #3777 )
2023-03-29 21:47:50 +00:00
Charlie Marsh
134fdd1609
Remove star-import handling from `sys-exit-alias` ( #3776 )
2023-03-29 21:33:50 +00:00
Charlie Marsh
2e6eddc7bd
Improve top-of-file insertions for required imports ( #3779 )
2023-03-29 21:25:39 +00:00
Jonathan Plasse
cb588d1d6d
Allow `TID252` to fix all valid module paths ( #3796 )
2023-03-29 15:13:12 -04:00
Charlie Marsh
9d3b8eb67b
Bump version to v0.0.260 ( #3799 )
2023-03-29 14:51:50 -04:00
Andy Freeland
7d962bf80c
[`flake8-bugbear`] Allow `pathlib.Path()` in `B008` ( #3794 )
2023-03-29 15:42:43 +00:00
Micha Reiser
595cd065f3
Reduce explcit clones ( #3793 )
2023-03-29 15:15:14 +02:00
Anže Starič
b6f1fed424
[`isort`]: support submodules in known_(first|third)_party config options ( #3768 )
2023-03-29 03:53:38 +00:00
Jonathan Plasse
5501fc9572
Exempt return with side effects for TRY300 ( #3780 )
2023-03-28 19:52:05 -04:00
Leiser Fernández Gallo
224e85c6d7
Implement `flake8-gettext` ( #3785 )
2023-03-28 23:32:02 +00:00
Charlie Marsh
f322bcd2bd
Minor nits on reference names ( #3786 )
2023-03-28 22:18:19 +00:00
Charlie Marsh
22d5b0071d
Rename `end_of_statement` to `end_of_last_statement` ( #3775 )
2023-03-28 12:31:06 -04:00
Charlie Marsh
990b378c4d
Set parents even in same-line cases ( #3773 )
2023-03-28 12:09:30 -04:00
Charlie Marsh
e88fbae926
Use import alias locations for `pep8-naming` import rules ( #3772 )
2023-03-28 11:41:23 -04:00
Charlie Marsh
81de3a16bc
Include `with` statements in complexity calculation ( #3771 )
2023-03-28 15:20:22 +00:00