Commit Graph

528 Commits

Author SHA1 Message Date
tomecki 61653b9f27
[`pylint`] Implement `useless-return` (`R1711`) (#3116) 2023-03-17 18:30:32 -04:00
Charlie Marsh 8dd3959e74
Update output in `resources/test/project/README.md` (#3587) 2023-03-17 21:51:03 +00:00
Charlie Marsh 50f9db21da
Enable ANSI colors on Windows 10 (#3583) 2023-03-17 17:34:39 -04:00
Tomer Chachamu 1dd3cbd047
[`pylint`] invalid-characters-* (#3552) 2023-03-17 19:30:41 +00:00
Johan bd935cbd49
[`flake8-bugbear`] Add `no-explicit-stacklevel` (`B028`) (#3550) 2023-03-17 19:20:08 +00:00
Charlie Marsh babd0a05ac
Avoid adding dashed line outside of docstring (#3581) 2023-03-17 14:40:32 -04:00
Micha Reiser 87fab4a2e1
Benchmark all rules (#3570) 2023-03-17 19:29:39 +01:00
Charlie Marsh 2e21920adf
Respect `type` overrides in E721 (#3582) 2023-03-17 14:29:05 -04:00
Micha Reiser dedf4cbdeb
refactor: Move scope and binding types to `scope.rs` (#3573) 2023-03-17 17:31:33 +01:00
Micha Reiser 92179e6369
Scope and Binding IDs (#3572) 2023-03-17 17:12:27 +01:00
Evan Rittenhouse 33d2457909
Prefer `itertools.pairwise()` over `zip()` for successive pairs (`RUF007`) (#3501) 2023-03-16 23:50:45 -04:00
Charlie Marsh 373a77e8c2
Avoid C1901 violations within subscripts (#3517) 2023-03-17 02:52:05 +00:00
Jacob Latonis 73df267635
[`pylint`]: Implement `continue-in-finally` (`E0116`) (#3541) 2023-03-17 02:47:49 +00:00
Jonathan Plasse f5e5caaa25
Fix autofix conflict between `D209` and `D400` (#3564) 2023-03-17 02:36:25 +00:00
Charlie Marsh e0df62b841
Rewrite mock import with starred imports (#3566) 2023-03-16 20:54:29 -04:00
Micha Reiser eff84442bc
refactor: Add Copy implementation to Rule (#3556) 2023-03-16 17:50:18 +01:00
Edgar R. M 9ae9cc9d2f
Use `value > max` style in pylint and mccabe messages (#3553) 2023-03-16 01:37:25 -04:00
Charlie Marsh e636c5fcf0
Avoid unused argument violations in .pyi files (#3533) 2023-03-15 03:17:19 +00:00
Charlie Marsh 12dfd57211
Bump version to v0.0.256 (#3531) 2023-03-14 22:52:21 -04:00
Charlie Marsh d188d242a0
Avoid tracking as-imports separately with force-single-line (#3530) 2023-03-15 02:26:01 +00:00
Charlie Marsh 57796c5e59
Add last remaining deprecated typing imports (#3529) 2023-03-15 00:08:09 +00:00
Charlie Marsh 2545869797
Avoid PEP 604 isinstance errors for starred tuples (#3527) 2023-03-14 22:08:43 +00:00
Charlie Marsh 58353a4bf4
Avoid PEP 604 panic with empty tuple (#3526) 2023-03-14 22:02:15 +00:00
Charlie Marsh a36139ae21
Replicate inline comments when splitting single-line imports (#3521) 2023-03-14 14:48:12 -04:00
Jonathan Plasse 7e904111b1
Fix PYI011 and add auto-fix (#3492) 2023-03-14 14:43:09 -04:00
Charlie Marsh 344daebb1b
Refine complexity rules for try-except-else-finally (#3519) 2023-03-14 14:40:33 -04:00
Charlie Marsh 432059de35
Allow `# ruff:` prefix for isort action comments (#3493) 2023-03-14 14:34:28 -04:00
Charlie Marsh c50d6da8b4
Allow string percent formatting in os.getenv (#3518) 2023-03-14 14:27:21 -04:00
Charlie Marsh 1b738f88c4
Allow f-strings and concatenations in os.getenv (#3516) 2023-03-14 17:46:34 +00:00
Charlie Marsh 1eff3dffa5
Ensure that redirect warnings appear exactly once per code (#3500) 2023-03-14 15:22:14 +00:00
Charlie Marsh 106a93eab0
Make Clap an optional feature for ruff crate (#3498) 2023-03-14 11:02:05 -04:00
Micha Reiser d5700d7c69
Add Micro Benchmark (#3466) 2023-03-14 08:35:07 +01:00
Grzegorz Bokota a82fe4a139
Fix lack of `not` in `PLC1901` error message (#3497) 2023-03-13 19:19:41 -04:00
Charlie Marsh 62ff3b62e3
Add `requires-python` inference to docs (#3495) 2023-03-13 18:14:39 -04:00
Charlie Marsh 1e5db58b7b
Include individual path checks in --verbose logging (#3489) 2023-03-13 17:13:47 -04:00
Charlie Marsh a6e998d639
Remove Wasm-specific Rayon workarounds (#3490) 2023-03-13 16:48:43 -04:00
Charlie Marsh a8c1915e2e
Remove erroneous C4-to-C40 redirect (#3488) 2023-03-13 19:52:05 +00:00
Xuehai Pan c515a1b31a
PYI011: allow `math` constants in defaults (#3484) 2023-03-13 14:23:00 -04:00
Charlie Marsh aa97a092bd
Bump version to v0.0.255 (#3485) 2023-03-13 14:06:51 -04:00
Micha Reiser 685c242761
refactor(ruff_python_ast): Split `get_argument` (#3478) 2023-03-13 18:18:25 +01:00
Jonathan Plasse b540407b74
Infer target-version from project metadata (#3470)
* Infer target-version from project metadata

* Fix requires-python with ">=3.8.16"

* Load requires-python at runtime

* Use upstream VersionSpecifiers

* Add debug information when parsing ruff.toml

* Display debug only if target_version is not set

* Bump pep440-rs to add impl Error for Pep440Error
2023-03-13 18:16:01 +01:00
Charlie Marsh 3a5fbd6d74
Upgrade RustPython to fix Serde dependency (#3481) 2023-03-13 12:29:31 -04:00
Charlie Marsh 227679b5cb
Re-enable the T and C linter prefix selectors (#3452) 2023-03-13 08:20:30 -04:00
Charlie Marsh c2750a59ab
Implement an iterator for universal newlines (#3454)
# Summary

We need to support CR line endings (as opposed to LF and CRLF line endings, which are already supported). They're rare, but they do appear in Python code, and we tend to panic on any file that uses them.

Our `Locator` abstraction now supports CR line endings. However, Rust's `str#lines` implementation does _not_.

This PR adds a `UniversalNewlineIterator` implementation that respects all of CR, LF, and CRLF line endings, and plugs it into most of the `.lines()` call sites.

As an alternative design, it could be nice if we could leverage `Locator` for this. We've already computed all of the line endings, so we could probably iterate much more efficiently?

# Test Plan

Largely relying on automated testing, however, also ran over some known failure cases, like #3404.
2023-03-13 00:01:29 -04:00
Charlie Marsh 2a4d6ab3b2
Remove unnecessary `Path::new` from `fs` calls (#3476) 2023-03-12 23:18:23 -04:00
Charlie Marsh 7a80bcec58
Output GitLab paths relative to `CI_PROJECT_DIR` (#3475) 2023-03-13 03:03:37 +00:00
Charlie Marsh 8955e32b5c
Respect ignores for runtime-import-in-type-checking-block (TCH004) (#3474) 2023-03-13 02:23:26 +00:00
Jacob Latonis 675227db5c
pylint: E1507 invalid-envvar-value (#3467) 2023-03-12 21:43:06 +00:00
Charlie Marsh a65c6806a6
Avoid respecting noqa directives when RUF100 is enabled (#3469) 2023-03-12 14:37:35 -04:00
Xuehai Pan 9858df1ac9
[FIX] PYI011: recognize `Bool` / `Float` / `Complex` numbers as simple defaults (#3459) 2023-03-12 17:34:09 +00:00