Colin Delahunty
1f07ad6e61
[flake8-simplify]: combine-if-conditions ( #2823 )
2023-02-12 21:00:32 +00:00
Charlie Marsh
1666e8ba1e
Add a --show-fixes flag to include applied fixes in output ( #2707 )
2023-02-12 20:48:01 +00:00
Nyakku Shigure
fc465cc2af
[flake8-pyi]: add rules for unrecognized platform check (PYI007, PYI008) ( #2805 )
...
Add two [flake8-pyi](https://github.com/PyCQA/flake8-pyi ) rules (Y007, Y008). ref: #848
The specifications are described in [PEP 484 - Version and platform checking](https://peps.python.org/pep-0484/#version-and-platform-checking )
The original implementation in flake8-pyi is shown below.
- Implemention: 66f28a4407/pyi.py (L1429-L1443)
- Tests: 66f28a4407/tests/sysplatform.pyi
2023-02-12 18:02:38 +00:00
Karol Onyśko
6769a5bce7
Implement flake8-django plugin rules ( #2586 )
2023-02-12 17:47:59 +00:00
Charlie Marsh
97dcb738fa
Run cargo dev generate-all
2023-02-11 12:43:48 -05:00
Michał Mrówka
77099dcd4d
implemented option lines-between-types for isort ( #2762 )
...
Fixes #2585
Add support for the isort option [lines_between_types](https://pycqa.github.io/isort/docs/configuration/options.html#lines-between-types )
2023-02-11 12:17:37 -05:00
Nick Pope
9f84c497f9
Adjust heading level in rule documentation ( #2749 )
2023-02-10 19:10:42 -05:00
tomecki
a5e42d2f7c
pylint: E0100 yield-in-init ( #2716 )
2023-02-10 16:15:15 -05:00
Florian Best
8aab96fb9e
feat(isort): Implement known-local-folder ( #2657 )
2023-02-10 13:15:34 -05:00
Colin Delahunty
48daa0f0ca
[pylint]: bad-string-format-type ( #2572 )
2023-02-09 20:08:56 -05:00
Matt Oberle
fc628de667
Implement bandit's 'hardcoded-sql-expressions' S608 ( #2698 )
...
This is an attempt to implement `bandit` rule `B608` (renamed here `S608`).
- https://bandit.readthedocs.io/en/latest/plugins/b608_hardcoded_sql_expressions.html
The rule inspects strings constructed via `+`, `%`, `.format`, and `f""`.
- `+` and `%` via `BinOp`
- `.format` via `Call`
- `f""` via `JoinedString`
Any SQL-ish strings that use Python string formatting are flagged.
The expressions and targeted expression types for the rule come from here:
- 7104b336d3/bandit/plugins/injection_sql.py
> Related Issue: https://github.com/charliermarsh/ruff/issues/1646
2023-02-09 19:28:17 -05:00
Steve Dignam
67e58a024a
Add flake8-pyi with one rule ( #2682 )
...
Add basic scaffold for [flake8-pyi](https://github.com/PyCQA/flake8-pyi ) and the first rule, Y001
rel: https://github.com/charliermarsh/ruff/issues/848
2023-02-09 19:03:11 -05:00
Charlie Marsh
739a92e99d
Implement compound-statements (E701, E702, E703, E704) ( #2680 )
2023-02-08 22:57:39 -05:00
Colin Delahunty
31027497c6
[flake8-bandit]: try-except-continue ( #2674 )
2023-02-08 21:44:01 -05:00
Aarni Koskela
2bc16eb4e3
flake8-annotations: add ignore-fully-untyped ( #2128 )
...
This PR adds a configuration option to inhibit ANN* violations for functions that have no other annotations either, for easier gradual typing of a large codebase.
2023-02-07 11:35:57 -05:00
Colin Delahunty
7647cafe12
[pylint]: bidirectional-unicode ( #2589 )
2023-02-06 22:49:18 -05:00
Steve Dignam
3b3466f6da
Add flake8-pie single_starts_ends_with ( #2616 )
2023-02-06 21:22:32 -05:00
Colin Delahunty
6272293180
[pylint]: bad-str-strip-call (With Autofix) ( #2570 )
2023-02-06 15:34:37 -05:00
Colin Delahunty
1e1dc3a7ed
[pyupgrade]: Removes quotes from annotations ( #2431 )
2023-02-05 09:43:09 -05:00
Chris Chan
ced55084db
Implement pylint's too-many-return-statements rule (PLR0911) ( #2564 )
2023-02-04 16:56:36 -05:00
Chris Chan
f8f36a7ee0
Implement pylint's too-many-branches rule (PLR0912) ( #2550 )
2023-02-04 16:38:03 -05:00
Jonathan Plasse
bdcab87d2f
Add markdownlint and dev Ruff to pre-commit ( #2303 )
2023-02-02 16:29:07 -05:00
Chris Chan
8136cc9238
Implement pylint's too-many-statements rule (PLR0915) ( #2445 )
2023-02-02 08:18:37 -05:00
Aarni Koskela
cce8fb9882
isort: support forced_separate ( #2268 )
2023-02-02 08:08:02 -05:00
Maksudul Haque
9e59c99133
[flake8-self] Add Plugin and Rule SLF001 ( #2470 )
2023-02-02 07:58:14 -05:00
Colin Delahunty
b032f50775
[pyupgrade]: Remove outdated sys.version_info blocks ( #2099 )
2023-02-02 07:49:24 -05:00
Reid Swan
ec7b25290b
feat: Add isort option lines-after-imports ( #2440 )
...
Fixes https://github.com/charliermarsh/ruff/issues/2243
Adds support for the isort option [lines_after_imports](https://pycqa.github.io/isort/docs/configuration/options.html#lines-after-imports ) to insert blank lines between imports and the follow up code.
2023-02-01 21:39:45 -05:00
Charlie Marsh
2abaffd65b
Improve consistency of backticks for plugin names ( #2460 )
2023-02-01 19:17:32 -05:00
Charlie Marsh
6861e59103
Only avoid PEP604 rewrites for pre-Python 3.10 code ( #2449 )
...
I moved the `self.in_annotation` guard out of the version check in #1563 . But, I think that was a mistake. It was done to resolve #1560 , but the fix in that case _should've_ been to set a different Python version.
Closes #2447 .
2023-02-01 13:03:51 -05:00
Maksudul Haque
7c1a6bce7b
[flake8-raise] Add Plugin and RSE102 Rule ( #2354 )
2023-01-31 18:09:40 -05:00
Charlie Marsh
00495e8620
Use human-readable types for documentation values ( #2375 )
2023-01-30 23:05:28 -05:00
Colin Delahunty
ad8693e3de
[pyupgrade] Implement import-replacement rule (UP035) ( #2049 )
2023-01-30 19:58:28 -05:00
Charlie Marsh
5f07e70762
Recommend disabling explicit-string-concatenation ( #2366 )
...
If `allow-multiline = false` is set, then if the user enables `explicit-string-concatenation` (`ISC003`), there's no way for them to create valid multiline strings. This PR notes that they should turn off `ISC003`.
Closes #2362 .
2023-01-30 16:42:30 -05:00
Martin Fischer
104c63afc6
Exclude deprecated extend-ignore from the JSON schema
...
Now that the option is deprecated we no longer
want IDEs to suggest it in their autocompletion.
2023-01-30 16:26:59 -05:00
Martin Fischer
ba457c21b5
Improve rule config resolution
...
Ruff allows rules to be enabled with `select` and disabled with
`ignore`, where the more specific rule selector takes precedence,
for example:
`--select ALL --ignore E501` selects all rules except E501
`--ignore ALL --select E501` selects only E501
(If both selectors have the same specificity ignore selectors
take precedence.)
Ruff always had two quirks:
* If `pyproject.toml` specified `ignore = ["E501"]` then you could
previously not override that with `--select E501` on the command-line
(since the resolution didn't take into account that the select was
specified after the ignore).
* If `pyproject.toml` specified `select = ["E501"]` then you could
previously not override that with `--ignore E` on the command-line
(since the resolution didn't take into account that the ignore was
specified after the select).
Since d067efe265 (#1245 )
`extend-select` and `extend-ignore` always override
`select` and `ignore` and are applied iteratively in pairs,
which introduced another quirk:
* If some `pyproject.toml` file specified `extend-select`
or `extend-ignore`, `select` and `ignore` became pretty much
unreliable after that with no way of resetting that.
This commit fixes all of these quirks by making later configuration
sources take precedence over earlier configuration sources.
While this is a breaking change, we expect most ruff configuration
files to not rely on the previous unintutive behavior.
2023-01-30 16:26:59 -05:00
Akhil
8e5a944ce1
Implement Pylint's too-many-arguments rule (PLR0913) ( #2308 )
2023-01-30 07:34:37 -05:00
Charlie Marsh
3ee6a90905
Remove remove-six-compat (UP016) ( #2332 )
2023-01-29 21:19:59 -05:00
Charlie Marsh
c9585fe304
Run generate-all
2023-01-28 22:13:07 -05:00
Samuel Cormier-Iijima
dd15c69181
[flake8-bandit] Add Rule S110 (try/except/pass) ( #2197 )
2023-01-27 18:52:55 -05:00
Simon Brugman
94551a203e
feat: pylint PLE0604 and PLE0605 ( #2241 )
2023-01-27 11:26:33 -05:00
Aarni Koskela
779b232db9
Fix typo: RelatveImportsOrder ( #2264 )
2023-01-27 11:15:43 -05:00
Charlie Marsh
4d52ea87ef
Implement exempt-modules setting from flake8-type-checking ( #2230 )
2023-01-26 16:55:32 -05:00
Charlie Marsh
5f8810e987
Add strictness setting for flake8-typing-imports ( #2221 )
2023-01-26 16:04:21 -05:00
Edgar R. M
e88275280b
Implement some rules from flake8-logging-format ( #2150 )
2023-01-26 12:58:10 -05:00
jvstme
0ad6b8224d
Fix typo in src option docs ( #2201 )
2023-01-26 12:23:09 -05:00
Florian Stasse
353857e2a5
Implement TRY400 ( #2115 )
2023-01-25 19:42:19 -05:00
Denis Gavrilyuk
55b43c8ea7
feat: implement TRY002 and TRY003 ( #2135 )
2023-01-25 19:22:43 -05:00
Charlie Marsh
23525a8ea0
Actually, rename TYP rules to TCH ( #2176 )
2023-01-25 16:52:49 -05:00
Charlie Marsh
35cf9e242e
Rename TYP rules to TYC ( #2175 )
2023-01-25 16:26:22 -05:00
Charlie Marsh
38de46ae3c
Treat Python 3.7 as minimum supported version ( #2159 )
2023-01-25 12:36:50 -05:00