Commit Graph

822 Commits

Author SHA1 Message Date
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
Andy Freeland bfecf684ce
[`flake8-bugbear`] Add more immutable functions for `B008` (#3764) 2023-03-28 10:50:05 -04:00
konstin 756e9956a2
Fix `cargo test --doc` (#3766) 2023-03-28 11:36:07 +00:00
Micha Reiser f68c26a506
perf(pycodestyle): Initialize Stylist from tokens (#3757) 2023-03-28 11:53:35 +02:00
Micha Reiser 000394f428
perf(pycodestyle): Introduce TokenKind (#3745) 2023-03-28 11:22:39 +02:00
Micha Reiser 2fdf98ef4e
perf(pycodestyle): Refactor checks to iterate over tokens insteadof text (#3736) 2023-03-28 10:37:13 +02:00
Micha Reiser 1d724b1495
perf(pycodestyle): Remove regex captures (#3735) 2023-03-28 09:50:34 +02:00
Micha Reiser 113a8b8fda
perf(pycodestyle): Reduce allocations when computing logical lines (#3715) 2023-03-28 09:09:27 +02:00
Charlie Marsh c3917eab38
Revert "Implement `flake8-i18n` (#3741)" (#3765) 2023-03-27 21:14:38 +00:00
JBLDSKY 0eb5a22dd1
[`flake8-pyi`] Implement `PYI012` (#3743) 2023-03-27 18:27:24 +00:00
Charlie Marsh 450c6780ff
Avoid `useless-import alias` (`C0414`) in `.pyi` files (#3761) 2023-03-27 18:27:03 +00:00
Leiser Fernández Gallo 5cb120327c
Implement `flake8-i18n` (#3741) 2023-03-27 18:03:39 +00:00
trag1c 8dbffb576d
Removed unnecessary pipe escape (#3760) 2023-03-27 13:49:47 -04:00
Charlie Marsh 31fff4b10e
Disallow some restriction lints (#3754) 2023-03-26 23:20:20 +00:00
Jonathan Plasse 2326335f5c
Improve performance of statistics (#3751) 2023-03-26 18:46:44 -04:00
Charlie Marsh 6ed6da3e82
Move `fix::FixMode` to `flags::FixMode` (#3753) 2023-03-26 21:40:06 +00:00
Jonathan Plasse cd75b57036
Sort statistics by count (#3748) 2023-03-26 16:45:35 -04:00
Charlie Marsh e603382cf0
Allow diagnostics to generate multi-edit fixes (#3709) 2023-03-26 16:45:19 -04:00
Charlie Marsh 32be63fd1e
Avoid overlong-line errors for lines that end with URLs (#3663) 2023-03-26 18:17:35 +00:00
Jonathan Plasse d594179275
Fix `SIM222` and `SIM223` false negatives (#3740) 2023-03-26 18:09:11 +00:00
Agriya Khetarpal c0befb4670
Use `wild::args()` and add `wild` as a dependency (#3739) 2023-03-26 14:32:45 +00:00
Charlie Marsh a66481ed28
Rename setter methods on `Diagnostic` (#3738) 2023-03-26 10:28:30 -04:00
Charlie Marsh 5c7898124f
Traverse over nested string type annotations (#3724) 2023-03-25 21:56:09 -04:00
Jonathan Plasse 50a7916e84
[`pydocstyle`] Implement autofix for `D403` (#3731) 2023-03-25 19:21:45 +00:00
Dhruv Manilawala 2659336ed1
Add support for `.log(level, msg)` calls in `flake8-logging-format` (#3726) 2023-03-25 15:55:53 +00:00
Jonathan Plasse 8ac7584756
[`flake8-pyi`] Implement `PYI015` (#3728) 2023-03-25 15:48:11 +00:00
Jonathan Plasse 4a1740a4c4
[`flake8-pyi`] Add autofix for `PYI014` (#3729) 2023-03-25 15:41:11 +00:00
Charlie Marsh 2083134a96
Rename `Fix` to `Edit` (#3702) 2023-03-24 19:29:14 -04:00
Charlie Marsh c721eedc37
Remove `'b` lifetime from `Checker` (#3723) 2023-03-24 21:42:18 +00:00
Dhruv Manilawala c1d89d8c93
[`flake8-bugbear`]: Implement rule `B031` (#3680) 2023-03-24 17:26:11 -04:00
Dhruv Manilawala 63adf9f5e8
Allow aliased `logging` module as a logger candidate (#3718) 2023-03-24 17:19:09 -04:00
Micha Reiser 7af83460ce
Use unicode-width to determine line-length instead of character count (#3714) 2023-03-24 17:17:05 -04:00
Jonathan Plasse dc4d7619ee
Add `Diagnostic.try_amend()` to simplify error handling (#3701) 2023-03-24 17:10:11 -04:00
Jonathan Plasse 1bac206995
Revert "Replace `logical_lines` feature with `debug_assertions` (#3648)" (#3708) 2023-03-23 23:42:56 -04:00
Jonathan Plasse efc6e8cb39
Exempt `PLR1711` and `RET501` if non-`None` annotation (#3705) 2023-03-24 03:11:58 +00:00
Jonathan Plasse 7da06b9741
Allow simple container literals as default values (#3703) 2023-03-23 22:51:36 -04:00
Charlie Marsh 0f95056f13
Avoid panics for implicitly concatenated forward references (#3700) 2023-03-23 19:13:50 -04:00
Charlie Marsh 028329854b
Avoid parsing f-strings in type annotations (#3699) 2023-03-23 18:51:44 -04:00
Charlie Marsh ba43d6bd0b
Avoid parsing `ForwardRef` contents as type references (#3698) 2023-03-23 18:44:02 -04:00
Charlie Marsh e8d17d23cb
Expand the scope of useless-expression (B018) (#3455) 2023-03-23 18:33:58 -04:00
Jonathan Plasse aea925a898
Fix SIM118 auto-fix (#3695) 2023-03-23 17:14:56 -04:00
Charlie Marsh f58345dee3
Bump version to v0.0.259 (#3691) 2023-03-23 14:52:42 -04:00
Charlie Marsh 71c0da27bb
Avoid nested loops in missing_whitespace (#3688) 2023-03-23 14:18:59 -04:00
Charlie Marsh 8a2d1a3029
Respect all rule-exemption sources when suppressing parser errors (#3665) 2023-03-23 13:36:48 -04:00