Micha Reiser
5d4825b60f
Normalise Hex and unicode escape sequences in string ( #9280 )
2023-12-28 09:06:58 +08:00
Steve C
c716acc7a6
[refurb
] Implement bit-count
(FURB161
) ( #9265 )
...
## Summary
Implements
[`FURB161`/`use-bit-count`](https://github.com/dosisod/refurb/blob/master/refurb/checks/builtin/use_bit_count.py )
See: #1348
## Test Plan
`cargo test`
2023-12-27 15:32:51 +00:00
Shantanu
50187016cb
[refurb
] Avoid false positives for math-constant
(FURB152
) ( #9290 )
...
Fixes #9281
2023-12-27 09:45:37 -05:00
dependabot[bot]
29513398d2
Bump env_logger from 0.10.0 to 0.10.1 ( #9275 )
2023-12-25 09:03:35 -05:00
Charlie Marsh
fa78d2d97c
Avoid adding return types to stub methods ( #9277 )
...
We should avoid adding `-> None` to stubs in `.pyi` files, along with a
few other cases. (We already ignore abstract methods.)
Closes https://github.com/astral-sh/ruff/issues/9270 .
2023-12-25 09:03:24 -05:00
dependabot[bot]
8b70240fa2
Bump anyhow from 1.0.75 to 1.0.76 ( #9274 )
2023-12-25 08:12:40 -05:00
dependabot[bot]
e85e0d45f3
Bump ignore from 0.4.20 to 0.4.21 ( #9273 )
2023-12-25 08:12:36 -05:00
dependabot[bot]
9b43203575
Bump colored from 2.0.4 to 2.1.0 ( #9271 )
2023-12-25 08:12:28 -05:00
dependabot[bot]
bae3fa435d
Bump pep440_rs from 0.3.12 to 0.4.0 ( #9272 )
2023-12-25 08:12:20 -05:00
Zanie Blue
6e65601055
Update some references to the old repo org ( #9233 )
...
Need https://github.com/pkgxdev/pantry/issues/4531 before we can update
at
af88ffc57e/docs/installation.md (L30-L31)
2023-12-24 20:02:49 +00:00
Charlie Marsh
9d6444138b
Remove lexing and parsing from the linter benchmark ( #9264 )
...
## Summary
This PR adds some helper structs to the linter paths to enable passing
in the pre-computed tokens and parsed source code during benchmarking,
to remove lexing and parsing from the overall linter benchmark
measurement. We already remove parsing for the formatter, and we have
separate benchmarks for the lexer and the parser, so this should make it
much easier to measure linter performance changes.
2023-12-23 16:43:11 -05:00
Charlie Marsh
6d0c9c4e95
Avoid asyncio-dangling-task
for nonlocal and global bindings ( #9263 )
...
Closes https://github.com/astral-sh/ruff/issues/9262 .
2023-12-23 21:33:50 +00:00
Charlie Marsh
20def33fb7
Remove special pre-visit for module docstrings ( #9261 )
...
This ensures that we visit the module docstring like any other string.
Closes https://github.com/astral-sh/ruff/issues/9260 .
2023-12-23 10:03:12 -05:00
Charlie Marsh
506ffade6c
Remove unnecessary rule enabled check ( #9259 )
2023-12-23 12:45:22 +00:00
dependabot[bot]
5040fb8cec
Bump thiserror from 1.0.50 to 1.0.51 ( #9255 )
2023-12-23 12:44:44 +00:00
Charlie Marsh
09ac0f9e72
Remove separate push
method ( #9258 )
2023-12-23 12:36:40 +00:00
dependabot[bot]
34d7584ca3
Bump toml from 0.8.2 to 0.8.8 ( #9253 )
2023-12-23 07:35:24 -05:00
dependabot[bot]
097d0a4322
Bump proc-macro2 from 1.0.70 to 1.0.71 ( #9250 )
2023-12-23 07:35:18 -05:00
dependabot[bot]
9a672ec112
Bump cachedir from 0.3.0 to 0.3.1 ( #9254 )
2023-12-23 07:35:11 -05:00
dependabot[bot]
7a109164a6
Bump test-case from 3.2.1 to 3.3.1 ( #9252 )
2023-12-23 07:35:03 -05:00
Henry Schreiner
74dba3ee59
ci: group dependabot updates ( #9249 )
...
See https://github.com/scientific-python/cookie/pull/348 .
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2023-12-22 23:39:52 -06:00
Charlie Marsh
cdea7d71a3
Fix scoping for generators in named expressions in classes ( #9248 )
...
Closes https://github.com/astral-sh/ruff/issues/9230 .
2023-12-22 18:06:40 +00:00
Charlie Marsh
bb86d359d4
Run cargo with --locked
in CI ( #9247 )
...
This should ensure that CI fails if the lockfile is not up-to-date (see:
https://github.com/astral-sh/ruff/pull/9235 ).
2023-12-22 15:53:42 +00:00
Micha Reiser
9cc257ee7d
Improve dummy_implementations
preview style formatting ( #9240 )
2023-12-22 03:44:14 +00:00
Micha Reiser
a06723da2b
Parenthesize multi-context managers ( #9222 )
2023-12-22 03:41:03 +00:00
Micha Reiser
fa2c37b411
Parenthesize long type annotations in annotated assignments ( #9210 )
2023-12-22 03:33:47 +00:00
Micha Reiser
3cc719bd74
Use named preview test functions ( #9239 )
2023-12-22 00:23:04 +00:00
Micha Reiser
d835b28d01
Show preview changes for tests with options ( #9223 )
2023-12-21 23:36:19 +00:00
Charlie Marsh
1e7bc1dffe
Wrap subscripted dicts in parens for f-string conversion ( #9238 )
...
Closes https://github.com/astral-sh/ruff/issues/9227 .
2023-12-21 21:51:50 +00:00
Charlie Marsh
e241c1c5df
Make parent non-Optional in traverse_union ( #9219 )
...
## Summary
This protects callers from having to pass in `None`, and allows the
callback to operate as if it's always a union member.
2023-12-21 21:10:08 +00:00
Charlie Marsh
b0ae1199e8
Add a fix for never-union
( #9218 )
...
## Summary
Enables us to rewrite `Never | int` as `int`.
2023-12-21 21:01:09 +00:00
Charlie Marsh
a9ceef5b5d
[ruff
] Add never-union
rule to detect redundant typing.NoReturn
and typing.Never
( #9217 )
...
## Summary
Adds a rule to detect unions that include `typing.NoReturn` or
`typing.Never`. In such cases, the use of the bottom type is redundant.
Closes https://github.com/astral-sh/ruff/issues/9113 .
## Test Plan
`cargo test`
2023-12-21 20:53:31 +00:00
Andrew Gallant
a3e06e5a9d
update lock file from v0.1.9 release ( #9235 )
...
This should have been done before the actual release, so we add another
step to `CONTRIBUTING.md` to make sure it gets done in the future.
This doesn't fix https://github.com/astral-sh/ruff/issues/9234
completely, but it's a step in the right direction.
2023-12-21 15:47:30 -05:00
Zanie Blue
3c2b800d26
Clarify release workflow steps in CONTRIB guide ( #9232 )
...
We always recommend providing the SHA and since
https://github.com/astral-sh/ruff/pull/7279 it does not need to be the
latest commit on `main`.
2023-12-21 12:25:18 -06:00
Andrew Gallant
0263f2715e
Bump version to v0.1.9 ( #9231 )
2023-12-21 13:19:50 -05:00
Micha Reiser
c6d8076034
Set target versions in Black tests ( #9221 )
2023-12-21 04:20:17 +00:00
Micha Reiser
8cb7950102
Add target_version
to formatter options ( #9220 )
2023-12-21 04:05:58 +00:00
Micha Reiser
ef4bd8d5ff
Fix: Avoid parenthesizing subscript targets and values ( #9209 )
2023-12-20 23:42:25 +00:00
asafamr-mm
5d41c84ef7
SIM300: CONSTANT_CASE variables are improperly flagged for yoda violation ( #9164 )
...
## Summary
fixes #6956
details in issue
Following an advice in
https://github.com/astral-sh/ruff/issues/6956#issuecomment-1817672585 ,
this change separates expressions to 3 levels of "constant likelihood":
* literals, empty dict and tuples... (definitely constant, level 2)
* CONSTANT_CASE vars (probably constant, 1)
* all other expressions (0)
a comparison is marked yoda if the level is strictly higher on its left
hand side
following
https://github.com/astral-sh/ruff/issues/6956#issuecomment-1697107822
marking compound expressions of literals (e.g. `60 * 60` ) as constants
this change current behaviour on
`SomeClass().settings.SOME_CONSTANT_VALUE > (60 * 60)` in the fixture
from error to ok
2023-12-20 20:26:07 +00:00
Charlie Marsh
cbe3bf9bde
Avoid asyncio-dangling-task
violations on shadowed bindings ( #9215 )
...
## Summary
Ensures that we avoid flagging cases like:
```python
async def f(x: int):
if x > 0:
task = asyncio.create_task(make_request())
else:
task = asyncio.create_task(make_request())
await task
```
Closes https://github.com/astral-sh/ruff/issues/9133 .
2023-12-20 12:07:57 -05:00
Charlie Marsh
4b4160eb48
Allow removal of typing
from exempt-modules
( #9214 )
...
## Summary
If you remove `typing` from `exempt-modules`, we tend to panic, since we
try to add `TYPE_CHECKING` to `from typing import ...` statements while
concurrently attempting to remove other members from that import. This
PR adds special-casing for typing imports to avoid such panics.
Closes https://github.com/astral-sh/ruff/issues/5331
Closes https://github.com/astral-sh/ruff/issues/9196 .
Closes https://github.com/astral-sh/ruff/issues/9197 .
2023-12-20 11:03:02 -05:00
Charlie Marsh
29846f5b09
Prefer Never
to NoReturn
in auto-typing ( #9213 )
...
Closes https://github.com/astral-sh/ruff/issues/9212 .
2023-12-20 09:36:01 -05:00
Charlie Marsh
07b293d949
Add fix to automatically remove print
and pprint
statements ( #9208 )
...
Closes https://github.com/astral-sh/ruff/issues/9207 .
2023-12-20 05:35:30 +00:00
Charlie Marsh
5ccc21aea2
Add support for NoReturn
in auto-return-typing ( #9206 )
...
## Summary
Given a function like:
```python
def func(x: int):
if not x:
raise ValueError
else:
raise TypeError
```
We now correctly use `NoReturn` as the return type, rather than `None`.
Closes https://github.com/astral-sh/ruff/issues/9201 .
2023-12-20 00:06:31 -05:00
Charlie Marsh
f5d4019c2b
Add error suppression hint for multi-line strings ( #9205 )
...
Closes https://github.com/astral-sh/ruff/issues/9200 .
2023-12-20 04:04:30 +00:00
Alex Waygood
bc0bf6f41c
[flake8-pyi] Expand PYI018 to cover ParamSpecs and TypeVarTuples ( #9198 )
...
## Summary
Part of #8771 . flake8-pyi will emit a Y018 error for unused TypeVars,
ParamSpecs or TypeVarTuples; Ruff currently only emits PYI018 for unused
TypeVars.
This is my first "proper" Ruff PR -- let me know if there's a better way
of doing this! Not sure if the repeated calls to `match_typing_expr()`
are ideal.
## Test Plan
I manually updated the fixtures to add some unused ParamSpecs and
TypeVarTuples, and then updated the snapshots using `cargo insta
review`. All tests then passed when run using `cargo test`.
2023-12-20 03:10:07 +00:00
konsti
a2bc635584
Add a non-latin project to the ecosystem checks ( #9199 )
...
We've had bugs related to non-latin scripts, most recently #9145 , where
just starting a docstring with multi-byte characters would panic. I've
added https://github.com/binary-husky/gpt_academic to catch those in the
ecosystem checks, it's a popular repo with mixed english and chinese
comments and symbols.
2023-12-19 16:14:01 -05:00
Dhruv Manilawala
09296e3e3c
Implement no_blank_line_before_class_docstring
preview style ( #9154 )
...
## Summary
This PR implements the `no_blank_line_before_class_docstring` preview
style.
## Test Plan
Update existing snapshots.
### Formatter ecosystem
`main`
| project | similarity index | total files | changed files |
|----------------|------------------:|------------------:|------------------:|
| cpython | 0.75804 | 1799 | 1648 |
| django | 0.99984 | 2772 | 34 |
| home-assistant | 0.99955 | 10596 | 213 |
| poetry | 0.99905 | 321 | 15 |
| transformers | 0.99967 | 2657 | 324 |
| twine | 1.00000 | 33 | 0 |
| typeshed | 0.99980 | 3669 | 18 |
| warehouse | 0.99976 | 654 | 14 |
| zulip | 0.99958 | 1459 | 36 |
`dhruv/no-blank-line-docstring`
| project | similarity index | total files | changed files |
|----------------|------------------:|------------------:|------------------:|
| cpython | 0.75804 | 1799 | 1648 |
| django | 0.99984 | 2772 | 34 |
| home-assistant | 0.99955 | 10596 | 213 |
| poetry | 0.99905 | 321 | 15 |
| transformers | 0.99967 | 2657 | 324 |
| twine | 1.00000 | 33 | 0 |
| typeshed | 0.99980 | 3669 | 18 |
| warehouse | 0.99976 | 654 | 14 |
| zulip | 0.99958 | 1459 | 36 |
fixes : #8888
2023-12-19 00:43:20 -06:00
Steve C
7c894921df
[pylint
] Implement too-many-locals
(PLR0914
) ( #9163 )
...
## Summary
Implements [`PLR0914` -
`too-many-locals`](https://pylint.readthedocs.io/en/latest/user_guide/messages/refactor/too-many-locals.html )
See #970
## Test Plan
`cargo test`
2023-12-18 20:00:04 +00:00
Charlie Marsh
be8f8e62b5
Reverse order of arguments for operator.contains
( #9192 )
...
Closes https://github.com/astral-sh/ruff/issues/9191 .
2023-12-18 14:39:52 -05:00