Encode prefixes in README headings not just in TOC (#1109)

This commit is contained in:
Phillip Verheyden 2022-12-07 08:24:49 -06:00 committed by GitHub
parent c5451cd8ad
commit b8ff209af8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 99 additions and 55 deletions

100
README.md
View file

@ -69,31 +69,31 @@ of [Conda](https://docs.conda.io/en/latest/):
1. [Installation and Usage](#installation-and-usage) 1. [Installation and Usage](#installation-and-usage)
1. [Configuration](#configuration) 1. [Configuration](#configuration)
1. [Supported Rules](#supported-rules) 1. [Supported Rules](#supported-rules)
1. [Pyflakes (F)](#pyflakes) 1. [Pyflakes (F)](#pyflakes-f)
1. [pycodestyle (E, W)](#pycodestyle) 1. [pycodestyle (E, W)](#pycodestyle-e-w)
1. [mccabe (C90)](#mccabe) 1. [mccabe (C90)](#mccabe-c90)
1. [isort (I)](#isort) 1. [isort (I00)](#isort-i00)
1. [pydocstyle (D)](#pydocstyle) 1. [pydocstyle (D)](#pydocstyle-d)
1. [pyupgrade (UP)](#pyupgrade) 1. [pyupgrade (UP)](#pyupgrade-up)
1. [pep8-naming (N)](#pep8-naming) 1. [pep8-naming (N)](#pep8-naming-n)
1. [flake8-2020 (YTT)](#flake8-2020) 1. [flake8-2020 (YTT)](#flake8-2020-ytt)
1. [flake8-annotations (ANN)](#flake8-annotations) 1. [flake8-annotations (ANN)](#flake8-annotations-ann)
1. [flake8-bandit (S)](#flake8-bandit) 1. [flake8-bandit (S)](#flake8-bandit-s)
1. [flake8-blind-except (BLE)](#flake8-blind-except) 1. [flake8-blind-except (BLE)](#flake8-blind-except-ble)
1. [flake8-boolean-trap (FBT)](#flake8-boolean-trap) 1. [flake8-boolean-trap (FBT)](#flake8-boolean-trap-fbt)
1. [flake8-bugbear (B)](#flake8-bugbear) 1. [flake8-bugbear (B)](#flake8-bugbear-b)
1. [flake8-builtins (A)](#flake8-builtins) 1. [flake8-builtins (A)](#flake8-builtins-a)
1. [flake8-comprehensions (C4)](#flake8-comprehensions) 1. [flake8-comprehensions (C4)](#flake8-comprehensions-c4)
1. [flake8-debugger (T10)](#flake8-debugger) 1. [flake8-debugger (T10)](#flake8-debugger-t10)
1. [flake8-import-conventions](#flake8-import-conventions) 1. [flake8-import-conventions (ICN)](#flake8-import-conventions-icn)
1. [flake8-print (T20)](#flake8-print) 1. [flake8-print (T20)](#flake8-print-t20)
1. [flake8-quotes (Q)](#flake8-quotes) 1. [flake8-quotes (Q)](#flake8-quotes-q)
1. [flake8-return (RET)](#flake8-return) 1. [flake8-return (RET)](#flake8-return-ret)
1. [flake8-tidy-imports (I25)](#flake8-tidy-imports) 1. [flake8-tidy-imports (I25)](#flake8-tidy-imports-i25)
1. [eradicate (ERA)](#eradicate) 1. [eradicate (ERA)](#eradicate-era)
1. [pygrep-hooks (PGH)](#pygrep-hooks) 1. [pygrep-hooks (PGH)](#pygrep-hooks-pgh)
1. [Pylint (PLC, PLE, PLR, PLW)](#pylint) 1. [Pylint (PLC, PLE, PLR, PLW)](#pylint-plc-ple-plr-plw)
1. [Ruff-specific rules (RUF)](#ruff-specific-rules) 1. [Ruff-specific rules (RUF)](#ruff-specific-rules-ruf)
1. [Editor Integrations](#editor-integrations) 1. [Editor Integrations](#editor-integrations)
1. [FAQ](#faq) 1. [FAQ](#faq)
1. [Development](#development) 1. [Development](#development)
@ -396,7 +396,7 @@ The 🛠 emoji indicates that a rule is automatically fixable by the `--fix` com
<!-- Sections automatically generated by `cargo dev generate-rules-table`. --> <!-- Sections automatically generated by `cargo dev generate-rules-table`. -->
<!-- Begin auto-generated sections. --> <!-- Begin auto-generated sections. -->
### Pyflakes ### Pyflakes (F)
For more, see [Pyflakes](https://pypi.org/project/pyflakes/2.5.0/) on PyPI. For more, see [Pyflakes](https://pypi.org/project/pyflakes/2.5.0/) on PyPI.
@ -445,7 +445,7 @@ For more, see [Pyflakes](https://pypi.org/project/pyflakes/2.5.0/) on PyPI.
| F841 | UnusedVariable | Local variable `...` is assigned to but never used | | | F841 | UnusedVariable | Local variable `...` is assigned to but never used | |
| F901 | RaiseNotImplemented | `raise NotImplemented` should be `raise NotImplementedError` | 🛠 | | F901 | RaiseNotImplemented | `raise NotImplemented` should be `raise NotImplementedError` | 🛠 |
### pycodestyle ### pycodestyle (E, W)
For more, see [pycodestyle](https://pypi.org/project/pycodestyle/2.9.1/) on PyPI. For more, see [pycodestyle](https://pypi.org/project/pycodestyle/2.9.1/) on PyPI.
@ -468,7 +468,7 @@ For more, see [pycodestyle](https://pypi.org/project/pycodestyle/2.9.1/) on PyPI
| W292 | NoNewLineAtEndOfFile | No newline at end of file | | | W292 | NoNewLineAtEndOfFile | No newline at end of file | |
| W605 | InvalidEscapeSequence | Invalid escape sequence: '\c' | | | W605 | InvalidEscapeSequence | Invalid escape sequence: '\c' | |
### mccabe ### mccabe (C90)
For more, see [mccabe](https://pypi.org/project/mccabe/0.7.0/) on PyPI. For more, see [mccabe](https://pypi.org/project/mccabe/0.7.0/) on PyPI.
@ -476,7 +476,7 @@ For more, see [mccabe](https://pypi.org/project/mccabe/0.7.0/) on PyPI.
| ---- | ---- | ------- | --- | | ---- | ---- | ------- | --- |
| C901 | FunctionIsTooComplex | `...` is too complex (10) | | | C901 | FunctionIsTooComplex | `...` is too complex (10) | |
### isort ### isort (I00)
For more, see [isort](https://pypi.org/project/isort/5.10.1/) on PyPI. For more, see [isort](https://pypi.org/project/isort/5.10.1/) on PyPI.
@ -484,7 +484,7 @@ For more, see [isort](https://pypi.org/project/isort/5.10.1/) on PyPI.
| ---- | ---- | ------- | --- | | ---- | ---- | ------- | --- |
| I001 | UnsortedImports | Import block is un-sorted or un-formatted | 🛠 | | I001 | UnsortedImports | Import block is un-sorted or un-formatted | 🛠 |
### pydocstyle ### pydocstyle (D)
For more, see [pydocstyle](https://pypi.org/project/pydocstyle/6.1.1/) on PyPI. For more, see [pydocstyle](https://pypi.org/project/pydocstyle/6.1.1/) on PyPI.
@ -535,7 +535,7 @@ For more, see [pydocstyle](https://pypi.org/project/pydocstyle/6.1.1/) on PyPI.
| D418 | SkipDocstring | Function decorated with `@overload` shouldn't contain a docstring | | | D418 | SkipDocstring | Function decorated with `@overload` shouldn't contain a docstring | |
| D419 | NonEmpty | Docstring is empty | | | D419 | NonEmpty | Docstring is empty | |
### pyupgrade ### pyupgrade (UP)
For more, see [pyupgrade](https://pypi.org/project/pyupgrade/3.2.0/) on PyPI. For more, see [pyupgrade](https://pypi.org/project/pyupgrade/3.2.0/) on PyPI.
@ -556,7 +556,7 @@ For more, see [pyupgrade](https://pypi.org/project/pyupgrade/3.2.0/) on PyPI.
| UP014 | ConvertNamedTupleFunctionalToClass | Convert `...` from `NamedTuple` functional to class syntax | 🛠 | | UP014 | ConvertNamedTupleFunctionalToClass | Convert `...` from `NamedTuple` functional to class syntax | 🛠 |
| UP015 | RedundantOpenModes | Unnecessary open mode parameters | 🛠 | | UP015 | RedundantOpenModes | Unnecessary open mode parameters | 🛠 |
### pep8-naming ### pep8-naming (N)
For more, see [pep8-naming](https://pypi.org/project/pep8-naming/0.13.2/) on PyPI. For more, see [pep8-naming](https://pypi.org/project/pep8-naming/0.13.2/) on PyPI.
@ -578,7 +578,7 @@ For more, see [pep8-naming](https://pypi.org/project/pep8-naming/0.13.2/) on PyP
| N817 | CamelcaseImportedAsAcronym | Camelcase `...` imported as acronym `...` | | | N817 | CamelcaseImportedAsAcronym | Camelcase `...` imported as acronym `...` | |
| N818 | ErrorSuffixOnExceptionName | Exception name `...` should be named with an Error suffix | | | N818 | ErrorSuffixOnExceptionName | Exception name `...` should be named with an Error suffix | |
### flake8-2020 ### flake8-2020 (YTT)
For more, see [flake8-2020](https://pypi.org/project/flake8-2020/1.7.0/) on PyPI. For more, see [flake8-2020](https://pypi.org/project/flake8-2020/1.7.0/) on PyPI.
@ -595,7 +595,7 @@ For more, see [flake8-2020](https://pypi.org/project/flake8-2020/1.7.0/) on PyPI
| YTT302 | SysVersionCmpStr10 | `sys.version` compared to string (python10), use `sys.version_info` | | | YTT302 | SysVersionCmpStr10 | `sys.version` compared to string (python10), use `sys.version_info` | |
| YTT303 | SysVersionSlice1Referenced | `sys.version[:1]` referenced (python10), use `sys.version_info` | | | YTT303 | SysVersionSlice1Referenced | `sys.version[:1]` referenced (python10), use `sys.version_info` | |
### flake8-annotations ### flake8-annotations (ANN)
For more, see [flake8-annotations](https://pypi.org/project/flake8-annotations/2.9.1/) on PyPI. For more, see [flake8-annotations](https://pypi.org/project/flake8-annotations/2.9.1/) on PyPI.
@ -613,7 +613,7 @@ For more, see [flake8-annotations](https://pypi.org/project/flake8-annotations/2
| ANN206 | MissingReturnTypeClassMethod | Missing return type annotation for classmethod `...` | | | ANN206 | MissingReturnTypeClassMethod | Missing return type annotation for classmethod `...` | |
| ANN401 | DynamicallyTypedExpression | Dynamically typed expressions (typing.Any) are disallowed in `...` | | | ANN401 | DynamicallyTypedExpression | Dynamically typed expressions (typing.Any) are disallowed in `...` | |
### flake8-bandit ### flake8-bandit (S)
For more, see [flake8-bandit](https://pypi.org/project/flake8-bandit/4.1.1/) on PyPI. For more, see [flake8-bandit](https://pypi.org/project/flake8-bandit/4.1.1/) on PyPI.
@ -626,7 +626,7 @@ For more, see [flake8-bandit](https://pypi.org/project/flake8-bandit/4.1.1/) on
| S106 | HardcodedPasswordFuncArg | Possible hardcoded password: `"..."` | | | S106 | HardcodedPasswordFuncArg | Possible hardcoded password: `"..."` | |
| S107 | HardcodedPasswordDefault | Possible hardcoded password: `"..."` | | | S107 | HardcodedPasswordDefault | Possible hardcoded password: `"..."` | |
### flake8-blind-except ### flake8-blind-except (BLE)
For more, see [flake8-blind-except](https://pypi.org/project/flake8-blind-except/0.2.1/) on PyPI. For more, see [flake8-blind-except](https://pypi.org/project/flake8-blind-except/0.2.1/) on PyPI.
@ -634,7 +634,7 @@ For more, see [flake8-blind-except](https://pypi.org/project/flake8-blind-except
| ---- | ---- | ------- | --- | | ---- | ---- | ------- | --- |
| BLE001 | BlindExcept | Blind except Exception: statement | | | BLE001 | BlindExcept | Blind except Exception: statement | |
### flake8-boolean-trap ### flake8-boolean-trap (FBT)
For more, see [flake8-boolean-trap](https://pypi.org/project/flake8-boolean-trap/0.1.0/) on PyPI. For more, see [flake8-boolean-trap](https://pypi.org/project/flake8-boolean-trap/0.1.0/) on PyPI.
@ -644,7 +644,7 @@ For more, see [flake8-boolean-trap](https://pypi.org/project/flake8-boolean-trap
| FBT002 | BooleanDefaultValueInFunctionDefinition | Boolean default value in function definition | | | FBT002 | BooleanDefaultValueInFunctionDefinition | Boolean default value in function definition | |
| FBT003 | BooleanPositionalValueInFunctionCall | Boolean positional value in function call | | | FBT003 | BooleanPositionalValueInFunctionCall | Boolean positional value in function call | |
### flake8-bugbear ### flake8-bugbear (B)
For more, see [flake8-bugbear](https://pypi.org/project/flake8-bugbear/22.10.27/) on PyPI. For more, see [flake8-bugbear](https://pypi.org/project/flake8-bugbear/22.10.27/) on PyPI.
@ -678,7 +678,7 @@ For more, see [flake8-bugbear](https://pypi.org/project/flake8-bugbear/22.10.27/
| B027 | EmptyMethodWithoutAbstractDecorator | `...` is an empty method in an abstract base class, but has no abstract decorator | | | B027 | EmptyMethodWithoutAbstractDecorator | `...` is an empty method in an abstract base class, but has no abstract decorator | |
| B904 | RaiseWithoutFromInsideExcept | Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling | | | B904 | RaiseWithoutFromInsideExcept | Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling | |
### flake8-builtins ### flake8-builtins (A)
For more, see [flake8-builtins](https://pypi.org/project/flake8-builtins/2.0.1/) on PyPI. For more, see [flake8-builtins](https://pypi.org/project/flake8-builtins/2.0.1/) on PyPI.
@ -688,7 +688,7 @@ For more, see [flake8-builtins](https://pypi.org/project/flake8-builtins/2.0.1/)
| A002 | BuiltinArgumentShadowing | Argument `...` is shadowing a python builtin | | | A002 | BuiltinArgumentShadowing | Argument `...` is shadowing a python builtin | |
| A003 | BuiltinAttributeShadowing | Class attribute `...` is shadowing a python builtin | | | A003 | BuiltinAttributeShadowing | Class attribute `...` is shadowing a python builtin | |
### flake8-comprehensions ### flake8-comprehensions (C4)
For more, see [flake8-comprehensions](https://pypi.org/project/flake8-comprehensions/3.10.1/) on PyPI. For more, see [flake8-comprehensions](https://pypi.org/project/flake8-comprehensions/3.10.1/) on PyPI.
@ -711,7 +711,7 @@ For more, see [flake8-comprehensions](https://pypi.org/project/flake8-comprehens
| C416 | UnnecessaryComprehension | Unnecessary `(list\|set)` comprehension (rewrite using `(list\|set)()`) | 🛠 | | C416 | UnnecessaryComprehension | Unnecessary `(list\|set)` comprehension (rewrite using `(list\|set)()`) | 🛠 |
| C417 | UnnecessaryMap | Unnecessary `map` usage (rewrite using a `(list\|set\|dict)` comprehension) | | | C417 | UnnecessaryMap | Unnecessary `map` usage (rewrite using a `(list\|set\|dict)` comprehension) | |
### flake8-debugger ### flake8-debugger (T10)
For more, see [flake8-debugger](https://pypi.org/project/flake8-debugger/4.1.2/) on PyPI. For more, see [flake8-debugger](https://pypi.org/project/flake8-debugger/4.1.2/) on PyPI.
@ -719,13 +719,13 @@ For more, see [flake8-debugger](https://pypi.org/project/flake8-debugger/4.1.2/)
| ---- | ---- | ------- | --- | | ---- | ---- | ------- | --- |
| T100 | Debugger | Import for `...` found | | | T100 | Debugger | Import for `...` found | |
### flake8-import-conventions ### flake8-import-conventions (ICN)
| Code | Name | Message | Fix | | Code | Name | Message | Fix |
| ---- | ---- | ------- | --- | | ---- | ---- | ------- | --- |
| ICN001 | ImportAliasIsNotConventional | `...` should be imported as `...` | | | ICN001 | ImportAliasIsNotConventional | `...` should be imported as `...` | |
### flake8-print ### flake8-print (T20)
For more, see [flake8-print](https://pypi.org/project/flake8-print/5.0.0/) on PyPI. For more, see [flake8-print](https://pypi.org/project/flake8-print/5.0.0/) on PyPI.
@ -734,7 +734,7 @@ For more, see [flake8-print](https://pypi.org/project/flake8-print/5.0.0/) on Py
| T201 | PrintFound | `print` found | 🛠 | | T201 | PrintFound | `print` found | 🛠 |
| T203 | PPrintFound | `pprint` found | 🛠 | | T203 | PPrintFound | `pprint` found | 🛠 |
### flake8-quotes ### flake8-quotes (Q)
For more, see [flake8-quotes](https://pypi.org/project/flake8-quotes/3.3.1/) on PyPI. For more, see [flake8-quotes](https://pypi.org/project/flake8-quotes/3.3.1/) on PyPI.
@ -745,7 +745,7 @@ For more, see [flake8-quotes](https://pypi.org/project/flake8-quotes/3.3.1/) on
| Q002 | BadQuotesDocstring | Single quote docstring found but double quotes preferred | | | Q002 | BadQuotesDocstring | Single quote docstring found but double quotes preferred | |
| Q003 | AvoidQuoteEscape | Change outer quotes to avoid escaping inner quotes | | | Q003 | AvoidQuoteEscape | Change outer quotes to avoid escaping inner quotes | |
### flake8-return ### flake8-return (RET)
For more, see [flake8-return](https://pypi.org/project/flake8-return/1.2.0/) on PyPI. For more, see [flake8-return](https://pypi.org/project/flake8-return/1.2.0/) on PyPI.
@ -760,7 +760,7 @@ For more, see [flake8-return](https://pypi.org/project/flake8-return/1.2.0/) on
| RET507 | SuperfluousElseContinue | Unnecessary `else` after `continue` statement | | | RET507 | SuperfluousElseContinue | Unnecessary `else` after `continue` statement | |
| RET508 | SuperfluousElseBreak | Unnecessary `else` after `break` statement | | | RET508 | SuperfluousElseBreak | Unnecessary `else` after `break` statement | |
### flake8-tidy-imports ### flake8-tidy-imports (I25)
For more, see [flake8-tidy-imports](https://pypi.org/project/flake8-tidy-imports/4.8.0/) on PyPI. For more, see [flake8-tidy-imports](https://pypi.org/project/flake8-tidy-imports/4.8.0/) on PyPI.
@ -768,7 +768,7 @@ For more, see [flake8-tidy-imports](https://pypi.org/project/flake8-tidy-imports
| ---- | ---- | ------- | --- | | ---- | ---- | ------- | --- |
| I252 | BannedRelativeImport | Relative imports are banned | | | I252 | BannedRelativeImport | Relative imports are banned | |
### eradicate ### eradicate (ERA)
For more, see [eradicate](https://pypi.org/project/eradicate/2.1.0/) on PyPI. For more, see [eradicate](https://pypi.org/project/eradicate/2.1.0/) on PyPI.
@ -776,7 +776,7 @@ For more, see [eradicate](https://pypi.org/project/eradicate/2.1.0/) on PyPI.
| ---- | ---- | ------- | --- | | ---- | ---- | ------- | --- |
| ERA001 | CommentedOutCode | Found commented-out code | 🛠 | | ERA001 | CommentedOutCode | Found commented-out code | 🛠 |
### pygrep-hooks ### pygrep-hooks (PGH)
For more, see [pygrep-hooks](https://github.com/pre-commit/pygrep-hooks) on GitHub. For more, see [pygrep-hooks](https://github.com/pre-commit/pygrep-hooks) on GitHub.
@ -784,7 +784,7 @@ For more, see [pygrep-hooks](https://github.com/pre-commit/pygrep-hooks) on GitH
| ---- | ---- | ------- | --- | | ---- | ---- | ------- | --- |
| PGH001 | NoEval | No builtin `eval()` allowed | | | PGH001 | NoEval | No builtin `eval()` allowed | |
### Pylint ### Pylint (PLC, PLE, PLR, PLW)
For more, see [Pylint](https://pypi.org/project/pylint/2.15.7/) on PyPI. For more, see [Pylint](https://pypi.org/project/pylint/2.15.7/) on PyPI.
@ -800,7 +800,7 @@ For more, see [Pylint](https://pypi.org/project/pylint/2.15.7/) on PyPI.
| PLR1722 | ConsiderUsingSysExit | Consider using `sys.exit()` | 🛠 | | PLR1722 | ConsiderUsingSysExit | Consider using `sys.exit()` | 🛠 |
| PLW0120 | UselessElseOnLoop | Else clause on loop without a break statement, remove the else and de-indent all the code inside it | | | PLW0120 | UselessElseOnLoop | Else clause on loop without a break statement, remove the else and de-indent all the code inside it | |
### Ruff-specific rules ### Ruff-specific rules (RUF)
| Code | Name | Message | Fix | | Code | Name | Message | Fix |
| ---- | ---- | ------- | --- | | ---- | ---- | ------- | --- |

View file

@ -76,6 +76,7 @@ pub fn main(cli: &Cli) -> Result<()> {
.new_enum("CheckCodePrefix") .new_enum("CheckCodePrefix")
.vis("pub") .vis("pub")
.derive("EnumString") .derive("EnumString")
.derive("AsRefStr")
.derive("Debug") .derive("Debug")
.derive("PartialEq") .derive("PartialEq")
.derive("Eq") .derive("Eq")
@ -170,9 +171,9 @@ pub fn main(cli: &Cli) -> Result<()> {
output.push('\n'); output.push('\n');
output.push_str("use colored::Colorize;"); output.push_str("use colored::Colorize;");
output.push('\n'); output.push('\n');
output.push_str("use serde::{{Serialize, Deserialize}};"); output.push_str("use serde::{Deserialize, Serialize};");
output.push('\n'); output.push('\n');
output.push_str("use strum_macros::EnumString;"); output.push_str("use strum_macros::{AsRefStr, EnumString};");
output.push('\n'); output.push('\n');
output.push('\n'); output.push('\n');
output.push_str("use crate::checks::CheckCode;"); output.push_str("use crate::checks::CheckCode;");

View file

@ -7,6 +7,7 @@ use std::path::PathBuf;
use anyhow::Result; use anyhow::Result;
use clap::Args; use clap::Args;
use itertools::Itertools;
use ruff::checks::{CheckCategory, CheckCode}; use ruff::checks::{CheckCategory, CheckCode};
use strum::IntoEnumIterator; use strum::IntoEnumIterator;
@ -24,7 +25,11 @@ pub fn main(cli: &Cli) -> Result<()> {
// Generate the table string. // Generate the table string.
let mut output = String::new(); let mut output = String::new();
for check_category in CheckCategory::iter() { for check_category in CheckCategory::iter() {
output.push_str(&format!("### {}", check_category.title())); output.push_str(&format!(
"### {} ({})",
check_category.title(),
check_category.codes().iter().map(AsRef::as_ref).join(", ")
));
output.push('\n'); output.push('\n');
output.push('\n'); output.push('\n');

View file

@ -10,6 +10,7 @@ use strum_macros::{AsRefStr, Display, EnumIter, EnumString};
use crate::ast::types::Range; use crate::ast::types::Range;
use crate::autofix::Fix; use crate::autofix::Fix;
use crate::checks_gen::CheckCodePrefix;
use crate::flake8_debugger::types::DebuggerUsingType; use crate::flake8_debugger::types::DebuggerUsingType;
use crate::flake8_quotes::settings::Quote; use crate::flake8_quotes::settings::Quote;
use crate::flake8_tidy_imports::settings::Strictness; use crate::flake8_tidy_imports::settings::Strictness;
@ -375,6 +376,41 @@ impl CheckCategory {
} }
} }
pub fn codes(&self) -> Vec<CheckCodePrefix> {
match self {
CheckCategory::Eradicate => vec![CheckCodePrefix::ERA],
CheckCategory::Flake82020 => vec![CheckCodePrefix::YTT],
CheckCategory::Flake8Annotations => vec![CheckCodePrefix::ANN],
CheckCategory::Flake8Bandit => vec![CheckCodePrefix::S],
CheckCategory::Flake8BlindExcept => vec![CheckCodePrefix::BLE],
CheckCategory::Flake8BooleanTrap => vec![CheckCodePrefix::FBT],
CheckCategory::Flake8Bugbear => vec![CheckCodePrefix::B],
CheckCategory::Flake8Builtins => vec![CheckCodePrefix::A],
CheckCategory::Flake8Comprehensions => vec![CheckCodePrefix::C4],
CheckCategory::Flake8Debugger => vec![CheckCodePrefix::T10],
CheckCategory::Flake8Print => vec![CheckCodePrefix::T20],
CheckCategory::Flake8Quotes => vec![CheckCodePrefix::Q],
CheckCategory::Flake8Return => vec![CheckCodePrefix::RET],
CheckCategory::Flake8TidyImports => vec![CheckCodePrefix::I25],
CheckCategory::Isort => vec![CheckCodePrefix::I00],
CheckCategory::McCabe => vec![CheckCodePrefix::C90],
CheckCategory::PEP8Naming => vec![CheckCodePrefix::N],
CheckCategory::Pycodestyle => vec![CheckCodePrefix::E, CheckCodePrefix::W],
CheckCategory::Pydocstyle => vec![CheckCodePrefix::D],
CheckCategory::Pyflakes => vec![CheckCodePrefix::F],
CheckCategory::PygrepHooks => vec![CheckCodePrefix::PGH],
CheckCategory::Pylint => vec![
CheckCodePrefix::PLC,
CheckCodePrefix::PLE,
CheckCodePrefix::PLR,
CheckCodePrefix::PLW,
],
CheckCategory::Pyupgrade => vec![CheckCodePrefix::UP],
CheckCategory::Flake8ImportConventions => vec![CheckCodePrefix::ICN],
CheckCategory::Ruff => vec![CheckCodePrefix::RUF],
}
}
pub fn url(&self) -> Option<(&'static str, &'static Platform)> { pub fn url(&self) -> Option<(&'static str, &'static Platform)> {
match self { match self {
CheckCategory::Eradicate => { CheckCategory::Eradicate => {

View file

@ -2,11 +2,13 @@
use colored::Colorize; use colored::Colorize;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use strum_macros::EnumString; use strum_macros::{AsRefStr, EnumString};
use crate::checks::CheckCode; use crate::checks::CheckCode;
#[derive(EnumString, Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Serialize, Deserialize)] #[derive(
EnumString, AsRefStr, Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Serialize, Deserialize,
)]
pub enum CheckCodePrefix { pub enum CheckCodePrefix {
A, A,
A0, A0,