ruff/crates/ruff_linter/src/codes.rs

1199 lines
82 KiB
Rust

/// In this module we generate [`Rule`], an enum of all rules, and [`RuleCodePrefix`], an enum of
/// all rules categories. A rule category is something like pyflakes or flake8-todos. Each rule
/// category contains all rules and their common prefixes, i.e. everything you can specify in
/// `--select`. For pylint this is e.g. C0414 and E0118 but also C and E01.
use std::fmt::Formatter;
use ruff_db::diagnostic::SecondaryCode;
use serde::Serialize;
use strum_macros::EnumIter;
use crate::registry::Linter;
use crate::rule_selector::is_single_rule_selector;
use crate::rules;
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct NoqaCode(&'static str, &'static str);
impl NoqaCode {
/// Return the prefix for the [`NoqaCode`], e.g., `SIM` for `SIM101`.
pub fn prefix(&self) -> &str {
self.0
}
/// Return the suffix for the [`NoqaCode`], e.g., `101` for `SIM101`.
pub fn suffix(&self) -> &str {
self.1
}
}
impl std::fmt::Debug for NoqaCode {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
std::fmt::Display::fmt(self, f)
}
}
impl std::fmt::Display for NoqaCode {
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), std::fmt::Error> {
write!(f, "{}{}", self.0, self.1)
}
}
impl PartialEq<&str> for NoqaCode {
fn eq(&self, other: &&str) -> bool {
match other.strip_prefix(self.0) {
Some(suffix) => suffix == self.1,
None => false,
}
}
}
impl PartialEq<NoqaCode> for &str {
fn eq(&self, other: &NoqaCode) -> bool {
other.eq(self)
}
}
impl PartialEq<NoqaCode> for SecondaryCode {
fn eq(&self, other: &NoqaCode) -> bool {
&self.as_str() == other
}
}
impl PartialEq<SecondaryCode> for NoqaCode {
fn eq(&self, other: &SecondaryCode) -> bool {
other.eq(self)
}
}
impl serde::Serialize for NoqaCode {
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(&self.to_string())
}
}
#[derive(Debug, Copy, Clone, Serialize)]
pub enum RuleGroup {
/// The rule is stable since the provided Ruff version.
Stable { since: &'static str },
/// The rule has been unstable since the provided Ruff version, and preview mode must be enabled
/// for usage.
Preview { since: &'static str },
/// The rule has been deprecated since the provided Ruff version, warnings will be displayed
/// during selection in stable and errors will be raised if used with preview mode enabled.
Deprecated { since: &'static str },
/// The rule was removed in the provided Ruff version, and errors will be displayed on use.
Removed { since: &'static str },
}
#[ruff_macros::map_codes]
pub fn code_to_rule(linter: Linter, code: &str) -> Option<(RuleGroup, Rule)> {
#[expect(clippy::enum_glob_use)]
use Linter::*;
#[rustfmt::skip]
Some(match (linter, code) {
// pycodestyle errors
(Pycodestyle, "E101") => rules::pycodestyle::rules::MixedSpacesAndTabs,
(Pycodestyle, "E111") => rules::pycodestyle::rules::logical_lines::IndentationWithInvalidMultiple,
(Pycodestyle, "E112") => rules::pycodestyle::rules::logical_lines::NoIndentedBlock,
(Pycodestyle, "E113") => rules::pycodestyle::rules::logical_lines::UnexpectedIndentation,
(Pycodestyle, "E114") => rules::pycodestyle::rules::logical_lines::IndentationWithInvalidMultipleComment,
(Pycodestyle, "E115") => rules::pycodestyle::rules::logical_lines::NoIndentedBlockComment,
(Pycodestyle, "E116") => rules::pycodestyle::rules::logical_lines::UnexpectedIndentationComment,
(Pycodestyle, "E117") => rules::pycodestyle::rules::logical_lines::OverIndented,
(Pycodestyle, "E201") => rules::pycodestyle::rules::logical_lines::WhitespaceAfterOpenBracket,
(Pycodestyle, "E202") => rules::pycodestyle::rules::logical_lines::WhitespaceBeforeCloseBracket,
(Pycodestyle, "E203") => rules::pycodestyle::rules::logical_lines::WhitespaceBeforePunctuation,
(Pycodestyle, "E204") => rules::pycodestyle::rules::WhitespaceAfterDecorator,
(Pycodestyle, "E211") => rules::pycodestyle::rules::logical_lines::WhitespaceBeforeParameters,
(Pycodestyle, "E221") => rules::pycodestyle::rules::logical_lines::MultipleSpacesBeforeOperator,
(Pycodestyle, "E222") => rules::pycodestyle::rules::logical_lines::MultipleSpacesAfterOperator,
(Pycodestyle, "E223") => rules::pycodestyle::rules::logical_lines::TabBeforeOperator,
(Pycodestyle, "E224") => rules::pycodestyle::rules::logical_lines::TabAfterOperator,
(Pycodestyle, "E225") => rules::pycodestyle::rules::logical_lines::MissingWhitespaceAroundOperator,
(Pycodestyle, "E226") => rules::pycodestyle::rules::logical_lines::MissingWhitespaceAroundArithmeticOperator,
(Pycodestyle, "E227") => rules::pycodestyle::rules::logical_lines::MissingWhitespaceAroundBitwiseOrShiftOperator,
(Pycodestyle, "E228") => rules::pycodestyle::rules::logical_lines::MissingWhitespaceAroundModuloOperator,
(Pycodestyle, "E231") => rules::pycodestyle::rules::logical_lines::MissingWhitespace,
(Pycodestyle, "E241") => rules::pycodestyle::rules::logical_lines::MultipleSpacesAfterComma,
(Pycodestyle, "E242") => rules::pycodestyle::rules::logical_lines::TabAfterComma,
(Pycodestyle, "E251") => rules::pycodestyle::rules::logical_lines::UnexpectedSpacesAroundKeywordParameterEquals,
(Pycodestyle, "E252") => rules::pycodestyle::rules::logical_lines::MissingWhitespaceAroundParameterEquals,
(Pycodestyle, "E261") => rules::pycodestyle::rules::logical_lines::TooFewSpacesBeforeInlineComment,
(Pycodestyle, "E262") => rules::pycodestyle::rules::logical_lines::NoSpaceAfterInlineComment,
(Pycodestyle, "E265") => rules::pycodestyle::rules::logical_lines::NoSpaceAfterBlockComment,
(Pycodestyle, "E266") => rules::pycodestyle::rules::logical_lines::MultipleLeadingHashesForBlockComment,
(Pycodestyle, "E271") => rules::pycodestyle::rules::logical_lines::MultipleSpacesAfterKeyword,
(Pycodestyle, "E272") => rules::pycodestyle::rules::logical_lines::MultipleSpacesBeforeKeyword,
(Pycodestyle, "E273") => rules::pycodestyle::rules::logical_lines::TabAfterKeyword,
(Pycodestyle, "E274") => rules::pycodestyle::rules::logical_lines::TabBeforeKeyword,
(Pycodestyle, "E275") => rules::pycodestyle::rules::logical_lines::MissingWhitespaceAfterKeyword,
(Pycodestyle, "E301") => rules::pycodestyle::rules::BlankLineBetweenMethods,
(Pycodestyle, "E302") => rules::pycodestyle::rules::BlankLinesTopLevel,
(Pycodestyle, "E303") => rules::pycodestyle::rules::TooManyBlankLines,
(Pycodestyle, "E304") => rules::pycodestyle::rules::BlankLineAfterDecorator,
(Pycodestyle, "E305") => rules::pycodestyle::rules::BlankLinesAfterFunctionOrClass,
(Pycodestyle, "E306") => rules::pycodestyle::rules::BlankLinesBeforeNestedDefinition,
(Pycodestyle, "E401") => rules::pycodestyle::rules::MultipleImportsOnOneLine,
(Pycodestyle, "E402") => rules::pycodestyle::rules::ModuleImportNotAtTopOfFile,
(Pycodestyle, "E501") => rules::pycodestyle::rules::LineTooLong,
(Pycodestyle, "E502") => rules::pycodestyle::rules::logical_lines::RedundantBackslash,
(Pycodestyle, "E701") => rules::pycodestyle::rules::MultipleStatementsOnOneLineColon,
(Pycodestyle, "E702") => rules::pycodestyle::rules::MultipleStatementsOnOneLineSemicolon,
(Pycodestyle, "E703") => rules::pycodestyle::rules::UselessSemicolon,
(Pycodestyle, "E711") => rules::pycodestyle::rules::NoneComparison,
(Pycodestyle, "E712") => rules::pycodestyle::rules::TrueFalseComparison,
(Pycodestyle, "E713") => rules::pycodestyle::rules::NotInTest,
(Pycodestyle, "E714") => rules::pycodestyle::rules::NotIsTest,
(Pycodestyle, "E721") => rules::pycodestyle::rules::TypeComparison,
(Pycodestyle, "E722") => rules::pycodestyle::rules::BareExcept,
(Pycodestyle, "E731") => rules::pycodestyle::rules::LambdaAssignment,
(Pycodestyle, "E741") => rules::pycodestyle::rules::AmbiguousVariableName,
(Pycodestyle, "E742") => rules::pycodestyle::rules::AmbiguousClassName,
(Pycodestyle, "E743") => rules::pycodestyle::rules::AmbiguousFunctionName,
(Pycodestyle, "E902") => rules::pycodestyle::rules::IOError,
#[allow(deprecated)]
(Pycodestyle, "E999") => rules::pycodestyle::rules::SyntaxError,
// pycodestyle warnings
(Pycodestyle, "W191") => rules::pycodestyle::rules::TabIndentation,
(Pycodestyle, "W291") => rules::pycodestyle::rules::TrailingWhitespace,
(Pycodestyle, "W292") => rules::pycodestyle::rules::MissingNewlineAtEndOfFile,
(Pycodestyle, "W293") => rules::pycodestyle::rules::BlankLineWithWhitespace,
(Pycodestyle, "W391") => rules::pycodestyle::rules::TooManyNewlinesAtEndOfFile,
(Pycodestyle, "W505") => rules::pycodestyle::rules::DocLineTooLong,
(Pycodestyle, "W605") => rules::pycodestyle::rules::InvalidEscapeSequence,
// pyflakes
(Pyflakes, "401") => rules::pyflakes::rules::UnusedImport,
(Pyflakes, "402") => rules::pyflakes::rules::ImportShadowedByLoopVar,
(Pyflakes, "403") => rules::pyflakes::rules::UndefinedLocalWithImportStar,
(Pyflakes, "404") => rules::pyflakes::rules::LateFutureImport,
(Pyflakes, "405") => rules::pyflakes::rules::UndefinedLocalWithImportStarUsage,
(Pyflakes, "406") => rules::pyflakes::rules::UndefinedLocalWithNestedImportStarUsage,
(Pyflakes, "407") => rules::pyflakes::rules::FutureFeatureNotDefined,
(Pyflakes, "501") => rules::pyflakes::rules::PercentFormatInvalidFormat,
(Pyflakes, "502") => rules::pyflakes::rules::PercentFormatExpectedMapping,
(Pyflakes, "503") => rules::pyflakes::rules::PercentFormatExpectedSequence,
(Pyflakes, "504") => rules::pyflakes::rules::PercentFormatExtraNamedArguments,
(Pyflakes, "505") => rules::pyflakes::rules::PercentFormatMissingArgument,
(Pyflakes, "506") => rules::pyflakes::rules::PercentFormatMixedPositionalAndNamed,
(Pyflakes, "507") => rules::pyflakes::rules::PercentFormatPositionalCountMismatch,
(Pyflakes, "508") => rules::pyflakes::rules::PercentFormatStarRequiresSequence,
(Pyflakes, "509") => rules::pyflakes::rules::PercentFormatUnsupportedFormatCharacter,
(Pyflakes, "521") => rules::pyflakes::rules::StringDotFormatInvalidFormat,
(Pyflakes, "522") => rules::pyflakes::rules::StringDotFormatExtraNamedArguments,
(Pyflakes, "523") => rules::pyflakes::rules::StringDotFormatExtraPositionalArguments,
(Pyflakes, "524") => rules::pyflakes::rules::StringDotFormatMissingArguments,
(Pyflakes, "525") => rules::pyflakes::rules::StringDotFormatMixingAutomatic,
(Pyflakes, "541") => rules::pyflakes::rules::FStringMissingPlaceholders,
(Pyflakes, "601") => rules::pyflakes::rules::MultiValueRepeatedKeyLiteral,
(Pyflakes, "602") => rules::pyflakes::rules::MultiValueRepeatedKeyVariable,
(Pyflakes, "621") => rules::pyflakes::rules::ExpressionsInStarAssignment,
(Pyflakes, "622") => rules::pyflakes::rules::MultipleStarredExpressions,
(Pyflakes, "631") => rules::pyflakes::rules::AssertTuple,
(Pyflakes, "632") => rules::pyflakes::rules::IsLiteral,
(Pyflakes, "633") => rules::pyflakes::rules::InvalidPrintSyntax,
(Pyflakes, "634") => rules::pyflakes::rules::IfTuple,
(Pyflakes, "701") => rules::pyflakes::rules::BreakOutsideLoop,
(Pyflakes, "702") => rules::pyflakes::rules::ContinueOutsideLoop,
(Pyflakes, "704") => rules::pyflakes::rules::YieldOutsideFunction,
(Pyflakes, "706") => rules::pyflakes::rules::ReturnOutsideFunction,
(Pyflakes, "707") => rules::pyflakes::rules::DefaultExceptNotLast,
(Pyflakes, "722") => rules::pyflakes::rules::ForwardAnnotationSyntaxError,
(Pyflakes, "811") => rules::pyflakes::rules::RedefinedWhileUnused,
(Pyflakes, "821") => rules::pyflakes::rules::UndefinedName,
(Pyflakes, "822") => rules::pyflakes::rules::UndefinedExport,
(Pyflakes, "823") => rules::pyflakes::rules::UndefinedLocal,
(Pyflakes, "841") => rules::pyflakes::rules::UnusedVariable,
(Pyflakes, "842") => rules::pyflakes::rules::UnusedAnnotation,
(Pyflakes, "901") => rules::pyflakes::rules::RaiseNotImplemented,
// pylint
(Pylint, "C0105") => rules::pylint::rules::TypeNameIncorrectVariance,
(Pylint, "C0131") => rules::pylint::rules::TypeBivariance,
(Pylint, "C0132") => rules::pylint::rules::TypeParamNameMismatch,
(Pylint, "C0205") => rules::pylint::rules::SingleStringSlots,
(Pylint, "C0206") => rules::pylint::rules::DictIndexMissingItems,
(Pylint, "C0207") => rules::pylint::rules::MissingMaxsplitArg,
(Pylint, "C0208") => rules::pylint::rules::IterationOverSet,
(Pylint, "C0414") => rules::pylint::rules::UselessImportAlias,
(Pylint, "C0415") => rules::pylint::rules::ImportOutsideTopLevel,
(Pylint, "C1802") => rules::pylint::rules::LenTest,
(Pylint, "C1901") => rules::pylint::rules::CompareToEmptyString,
(Pylint, "C2401") => rules::pylint::rules::NonAsciiName,
(Pylint, "C2403") => rules::pylint::rules::NonAsciiImportName,
(Pylint, "C2701") => rules::pylint::rules::ImportPrivateName,
(Pylint, "C2801") => rules::pylint::rules::UnnecessaryDunderCall,
(Pylint, "C3002") => rules::pylint::rules::UnnecessaryDirectLambdaCall,
(Pylint, "E0100") => rules::pylint::rules::YieldInInit,
(Pylint, "E0101") => rules::pylint::rules::ReturnInInit,
(Pylint, "E0115") => rules::pylint::rules::NonlocalAndGlobal,
(Pylint, "E0116") => rules::pylint::rules::ContinueInFinally,
(Pylint, "E0117") => rules::pylint::rules::NonlocalWithoutBinding,
(Pylint, "E0118") => rules::pylint::rules::LoadBeforeGlobalDeclaration,
(Pylint, "E0237") => rules::pylint::rules::NonSlotAssignment,
(Pylint, "E0241") => rules::pylint::rules::DuplicateBases,
(Pylint, "E0302") => rules::pylint::rules::UnexpectedSpecialMethodSignature,
(Pylint, "E0303") => rules::pylint::rules::InvalidLengthReturnType,
(Pylint, "E0304") => rules::pylint::rules::InvalidBoolReturnType,
(Pylint, "E0305") => rules::pylint::rules::InvalidIndexReturnType,
(Pylint, "E0307") => rules::pylint::rules::InvalidStrReturnType,
(Pylint, "E0308") => rules::pylint::rules::InvalidBytesReturnType,
(Pylint, "E0309") => rules::pylint::rules::InvalidHashReturnType,
(Pylint, "E0604") => rules::pylint::rules::InvalidAllObject,
(Pylint, "E0605") => rules::pylint::rules::InvalidAllFormat,
(Pylint, "E0643") => rules::pylint::rules::PotentialIndexError,
(Pylint, "E0704") => rules::pylint::rules::MisplacedBareRaise,
(Pylint, "E1132") => rules::pylint::rules::RepeatedKeywordArgument,
(Pylint, "E1141") => rules::pylint::rules::DictIterMissingItems,
(Pylint, "E1142") => rules::pylint::rules::AwaitOutsideAsync,
(Pylint, "E1205") => rules::pylint::rules::LoggingTooManyArgs,
(Pylint, "E1206") => rules::pylint::rules::LoggingTooFewArgs,
(Pylint, "E1300") => rules::pylint::rules::BadStringFormatCharacter,
(Pylint, "E1307") => rules::pylint::rules::BadStringFormatType,
(Pylint, "E1310") => rules::pylint::rules::BadStrStripCall,
(Pylint, "E1507") => rules::pylint::rules::InvalidEnvvarValue,
(Pylint, "E1519") => rules::pylint::rules::SingledispatchMethod,
(Pylint, "E1520") => rules::pylint::rules::SingledispatchmethodFunction,
(Pylint, "E1700") => rules::pylint::rules::YieldFromInAsyncFunction,
(Pylint, "E2502") => rules::pylint::rules::BidirectionalUnicode,
(Pylint, "E2510") => rules::pylint::rules::InvalidCharacterBackspace,
(Pylint, "E2512") => rules::pylint::rules::InvalidCharacterSub,
(Pylint, "E2513") => rules::pylint::rules::InvalidCharacterEsc,
(Pylint, "E2514") => rules::pylint::rules::InvalidCharacterNul,
(Pylint, "E2515") => rules::pylint::rules::InvalidCharacterZeroWidthSpace,
(Pylint, "E4703") => rules::pylint::rules::ModifiedIteratingSet,
(Pylint, "R0124") => rules::pylint::rules::ComparisonWithItself,
(Pylint, "R0133") => rules::pylint::rules::ComparisonOfConstant,
(Pylint, "R0202") => rules::pylint::rules::NoClassmethodDecorator,
(Pylint, "R0203") => rules::pylint::rules::NoStaticmethodDecorator,
(Pylint, "R0206") => rules::pylint::rules::PropertyWithParameters,
(Pylint, "R0402") => rules::pylint::rules::ManualFromImport,
(Pylint, "R0904") => rules::pylint::rules::TooManyPublicMethods,
(Pylint, "R0911") => rules::pylint::rules::TooManyReturnStatements,
(Pylint, "R0912") => rules::pylint::rules::TooManyBranches,
(Pylint, "R0913") => rules::pylint::rules::TooManyArguments,
(Pylint, "R0914") => rules::pylint::rules::TooManyLocals,
(Pylint, "R0915") => rules::pylint::rules::TooManyStatements,
(Pylint, "R0916") => rules::pylint::rules::TooManyBooleanExpressions,
(Pylint, "R0917") => rules::pylint::rules::TooManyPositionalArguments,
(Pylint, "R1701") => rules::pylint::rules::RepeatedIsinstanceCalls,
(Pylint, "R1702") => rules::pylint::rules::TooManyNestedBlocks,
(Pylint, "R1704") => rules::pylint::rules::RedefinedArgumentFromLocal,
(Pylint, "R1706") => rules::pylint::rules::AndOrTernary,
(Pylint, "R1711") => rules::pylint::rules::UselessReturn,
(Pylint, "R1714") => rules::pylint::rules::RepeatedEqualityComparison,
(Pylint, "R1722") => rules::pylint::rules::SysExitAlias,
(Pylint, "R1730") => rules::pylint::rules::IfStmtMinMax,
(Pylint, "R1716") => rules::pylint::rules::BooleanChainedComparison,
(Pylint, "R1733") => rules::pylint::rules::UnnecessaryDictIndexLookup,
(Pylint, "R1736") => rules::pylint::rules::UnnecessaryListIndexLookup,
(Pylint, "R2004") => rules::pylint::rules::MagicValueComparison,
(Pylint, "R2044") => rules::pylint::rules::EmptyComment,
(Pylint, "R5501") => rules::pylint::rules::CollapsibleElseIf,
(Pylint, "R6104") => rules::pylint::rules::NonAugmentedAssignment,
(Pylint, "R6201") => rules::pylint::rules::LiteralMembership,
(Pylint, "R6301") => rules::pylint::rules::NoSelfUse,
#[cfg(any(feature = "test-rules", test))]
(Pylint, "W0101") => rules::pylint::rules::UnreachableCode,
(Pylint, "W0108") => rules::pylint::rules::UnnecessaryLambda,
(Pylint, "W0177") => rules::pylint::rules::NanComparison,
(Pylint, "W0120") => rules::pylint::rules::UselessElseOnLoop,
(Pylint, "W0127") => rules::pylint::rules::SelfAssigningVariable,
(Pylint, "W0128") => rules::pylint::rules::RedeclaredAssignedName,
(Pylint, "W0129") => rules::pylint::rules::AssertOnStringLiteral,
(Pylint, "W0131") => rules::pylint::rules::NamedExprWithoutContext,
(Pylint, "W0133") => rules::pylint::rules::UselessExceptionStatement,
(Pylint, "W0211") => rules::pylint::rules::BadStaticmethodArgument,
(Pylint, "W0244") => rules::pylint::rules::RedefinedSlotsInSubclass,
(Pylint, "W0245") => rules::pylint::rules::SuperWithoutBrackets,
(Pylint, "W0406") => rules::pylint::rules::ImportSelf,
(Pylint, "W0602") => rules::pylint::rules::GlobalVariableNotAssigned,
(Pylint, "W0603") => rules::pylint::rules::GlobalStatement,
(Pylint, "W0604") => rules::pylint::rules::GlobalAtModuleLevel,
(Pylint, "W0642") => rules::pylint::rules::SelfOrClsAssignment,
(Pylint, "W0711") => rules::pylint::rules::BinaryOpException,
(Pylint, "W1501") => rules::pylint::rules::BadOpenMode,
(Pylint, "W1507") => rules::pylint::rules::ShallowCopyEnviron,
(Pylint, "W1508") => rules::pylint::rules::InvalidEnvvarDefault,
(Pylint, "W1509") => rules::pylint::rules::SubprocessPopenPreexecFn,
(Pylint, "W1510") => rules::pylint::rules::SubprocessRunWithoutCheck,
(Pylint, "W1514") => rules::pylint::rules::UnspecifiedEncoding,
(Pylint, "W1641") => rules::pylint::rules::EqWithoutHash,
(Pylint, "W2101") => rules::pylint::rules::UselessWithLock,
(Pylint, "W2901") => rules::pylint::rules::RedefinedLoopName,
(Pylint, "W3201") => rules::pylint::rules::BadDunderMethodName,
(Pylint, "W3301") => rules::pylint::rules::NestedMinMax,
// flake8-async
(Flake8Async, "100") => rules::flake8_async::rules::CancelScopeNoCheckpoint,
(Flake8Async, "105") => rules::flake8_async::rules::TrioSyncCall,
(Flake8Async, "109") => rules::flake8_async::rules::AsyncFunctionWithTimeout,
(Flake8Async, "110") => rules::flake8_async::rules::AsyncBusyWait,
(Flake8Async, "115") => rules::flake8_async::rules::AsyncZeroSleep,
(Flake8Async, "116") => rules::flake8_async::rules::LongSleepNotForever,
(Flake8Async, "210") => rules::flake8_async::rules::BlockingHttpCallInAsyncFunction,
(Flake8Async, "212") => rules::flake8_async::rules::BlockingHttpCallHttpxInAsyncFunction,
(Flake8Async, "220") => rules::flake8_async::rules::CreateSubprocessInAsyncFunction,
(Flake8Async, "221") => rules::flake8_async::rules::RunProcessInAsyncFunction,
(Flake8Async, "222") => rules::flake8_async::rules::WaitForProcessInAsyncFunction,
(Flake8Async, "230") => rules::flake8_async::rules::BlockingOpenCallInAsyncFunction,
(Flake8Async, "240") => rules::flake8_async::rules::BlockingPathMethodInAsyncFunction,
(Flake8Async, "250") => rules::flake8_async::rules::BlockingInputInAsyncFunction,
(Flake8Async, "251") => rules::flake8_async::rules::BlockingSleepInAsyncFunction,
// flake8-builtins
(Flake8Builtins, "001") => rules::flake8_builtins::rules::BuiltinVariableShadowing,
(Flake8Builtins, "002") => rules::flake8_builtins::rules::BuiltinArgumentShadowing,
(Flake8Builtins, "003") => rules::flake8_builtins::rules::BuiltinAttributeShadowing,
(Flake8Builtins, "004") => rules::flake8_builtins::rules::BuiltinImportShadowing,
(Flake8Builtins, "005") => rules::flake8_builtins::rules::StdlibModuleShadowing,
(Flake8Builtins, "006") => rules::flake8_builtins::rules::BuiltinLambdaArgumentShadowing,
// flake8-bugbear
(Flake8Bugbear, "002") => rules::flake8_bugbear::rules::UnaryPrefixIncrementDecrement,
(Flake8Bugbear, "003") => rules::flake8_bugbear::rules::AssignmentToOsEnviron,
(Flake8Bugbear, "004") => rules::flake8_bugbear::rules::UnreliableCallableCheck,
(Flake8Bugbear, "005") => rules::flake8_bugbear::rules::StripWithMultiCharacters,
(Flake8Bugbear, "006") => rules::flake8_bugbear::rules::MutableArgumentDefault,
(Flake8Bugbear, "007") => rules::flake8_bugbear::rules::UnusedLoopControlVariable,
(Flake8Bugbear, "008") => rules::flake8_bugbear::rules::FunctionCallInDefaultArgument,
(Flake8Bugbear, "009") => rules::flake8_bugbear::rules::GetAttrWithConstant,
(Flake8Bugbear, "010") => rules::flake8_bugbear::rules::SetAttrWithConstant,
(Flake8Bugbear, "011") => rules::flake8_bugbear::rules::AssertFalse,
(Flake8Bugbear, "012") => rules::flake8_bugbear::rules::JumpStatementInFinally,
(Flake8Bugbear, "013") => rules::flake8_bugbear::rules::RedundantTupleInExceptionHandler,
(Flake8Bugbear, "014") => rules::flake8_bugbear::rules::DuplicateHandlerException,
(Flake8Bugbear, "015") => rules::flake8_bugbear::rules::UselessComparison,
(Flake8Bugbear, "016") => rules::flake8_bugbear::rules::RaiseLiteral,
(Flake8Bugbear, "017") => rules::flake8_bugbear::rules::AssertRaisesException,
(Flake8Bugbear, "018") => rules::flake8_bugbear::rules::UselessExpression,
(Flake8Bugbear, "019") => rules::flake8_bugbear::rules::CachedInstanceMethod,
(Flake8Bugbear, "020") => rules::flake8_bugbear::rules::LoopVariableOverridesIterator,
(Flake8Bugbear, "021") => rules::flake8_bugbear::rules::FStringDocstring,
(Flake8Bugbear, "022") => rules::flake8_bugbear::rules::UselessContextlibSuppress,
(Flake8Bugbear, "023") => rules::flake8_bugbear::rules::FunctionUsesLoopVariable,
(Flake8Bugbear, "024") => rules::flake8_bugbear::rules::AbstractBaseClassWithoutAbstractMethod,
(Flake8Bugbear, "025") => rules::flake8_bugbear::rules::DuplicateTryBlockException,
(Flake8Bugbear, "026") => rules::flake8_bugbear::rules::StarArgUnpackingAfterKeywordArg,
(Flake8Bugbear, "027") => rules::flake8_bugbear::rules::EmptyMethodWithoutAbstractDecorator,
(Flake8Bugbear, "028") => rules::flake8_bugbear::rules::NoExplicitStacklevel,
(Flake8Bugbear, "029") => rules::flake8_bugbear::rules::ExceptWithEmptyTuple,
(Flake8Bugbear, "030") => rules::flake8_bugbear::rules::ExceptWithNonExceptionClasses,
(Flake8Bugbear, "031") => rules::flake8_bugbear::rules::ReuseOfGroupbyGenerator,
(Flake8Bugbear, "032") => rules::flake8_bugbear::rules::UnintentionalTypeAnnotation,
(Flake8Bugbear, "033") => rules::flake8_bugbear::rules::DuplicateValue,
(Flake8Bugbear, "034") => rules::flake8_bugbear::rules::ReSubPositionalArgs,
(Flake8Bugbear, "035") => rules::flake8_bugbear::rules::StaticKeyDictComprehension,
(Flake8Bugbear, "039") => rules::flake8_bugbear::rules::MutableContextvarDefault,
(Flake8Bugbear, "901") => rules::flake8_bugbear::rules::ReturnInGenerator,
(Flake8Bugbear, "903") => rules::flake8_bugbear::rules::ClassAsDataStructure,
(Flake8Bugbear, "904") => rules::flake8_bugbear::rules::RaiseWithoutFromInsideExcept,
(Flake8Bugbear, "905") => rules::flake8_bugbear::rules::ZipWithoutExplicitStrict,
(Flake8Bugbear, "909") => rules::flake8_bugbear::rules::LoopIteratorMutation,
(Flake8Bugbear, "911") => rules::flake8_bugbear::rules::BatchedWithoutExplicitStrict,
(Flake8Bugbear, "912") => rules::flake8_bugbear::rules::MapWithoutExplicitStrict,
// flake8-blind-except
(Flake8BlindExcept, "001") => rules::flake8_blind_except::rules::BlindExcept,
// flake8-comprehensions
(Flake8Comprehensions, "00") => rules::flake8_comprehensions::rules::UnnecessaryGeneratorList,
(Flake8Comprehensions, "01") => rules::flake8_comprehensions::rules::UnnecessaryGeneratorSet,
(Flake8Comprehensions, "02") => rules::flake8_comprehensions::rules::UnnecessaryGeneratorDict,
(Flake8Comprehensions, "03") => rules::flake8_comprehensions::rules::UnnecessaryListComprehensionSet,
(Flake8Comprehensions, "04") => rules::flake8_comprehensions::rules::UnnecessaryListComprehensionDict,
(Flake8Comprehensions, "05") => rules::flake8_comprehensions::rules::UnnecessaryLiteralSet,
(Flake8Comprehensions, "06") => rules::flake8_comprehensions::rules::UnnecessaryLiteralDict,
(Flake8Comprehensions, "08") => rules::flake8_comprehensions::rules::UnnecessaryCollectionCall,
(Flake8Comprehensions, "09") => rules::flake8_comprehensions::rules::UnnecessaryLiteralWithinTupleCall,
(Flake8Comprehensions, "10") => rules::flake8_comprehensions::rules::UnnecessaryLiteralWithinListCall,
(Flake8Comprehensions, "11") => rules::flake8_comprehensions::rules::UnnecessaryListCall,
(Flake8Comprehensions, "13") => rules::flake8_comprehensions::rules::UnnecessaryCallAroundSorted,
(Flake8Comprehensions, "14") => rules::flake8_comprehensions::rules::UnnecessaryDoubleCastOrProcess,
(Flake8Comprehensions, "15") => rules::flake8_comprehensions::rules::UnnecessarySubscriptReversal,
(Flake8Comprehensions, "16") => rules::flake8_comprehensions::rules::UnnecessaryComprehension,
(Flake8Comprehensions, "17") => rules::flake8_comprehensions::rules::UnnecessaryMap,
(Flake8Comprehensions, "18") => rules::flake8_comprehensions::rules::UnnecessaryLiteralWithinDictCall,
(Flake8Comprehensions, "19") => rules::flake8_comprehensions::rules::UnnecessaryComprehensionInCall,
(Flake8Comprehensions, "20") => rules::flake8_comprehensions::rules::UnnecessaryDictComprehensionForIterable,
// flake8-debugger
(Flake8Debugger, "0") => rules::flake8_debugger::rules::Debugger,
// mccabe
(McCabe, "1") => rules::mccabe::rules::ComplexStructure,
// flake8-tidy-imports
(Flake8TidyImports, "251") => rules::flake8_tidy_imports::rules::BannedApi,
(Flake8TidyImports, "252") => rules::flake8_tidy_imports::rules::RelativeImports,
(Flake8TidyImports, "253") => rules::flake8_tidy_imports::rules::BannedModuleLevelImports,
// flake8-return
(Flake8Return, "501") => rules::flake8_return::rules::UnnecessaryReturnNone,
(Flake8Return, "502") => rules::flake8_return::rules::ImplicitReturnValue,
(Flake8Return, "503") => rules::flake8_return::rules::ImplicitReturn,
(Flake8Return, "504") => rules::flake8_return::rules::UnnecessaryAssign,
(Flake8Return, "505") => rules::flake8_return::rules::SuperfluousElseReturn,
(Flake8Return, "506") => rules::flake8_return::rules::SuperfluousElseRaise,
(Flake8Return, "507") => rules::flake8_return::rules::SuperfluousElseContinue,
(Flake8Return, "508") => rules::flake8_return::rules::SuperfluousElseBreak,
// flake8-gettext
(Flake8GetText, "001") => rules::flake8_gettext::rules::FStringInGetTextFuncCall,
(Flake8GetText, "002") => rules::flake8_gettext::rules::FormatInGetTextFuncCall,
(Flake8GetText, "003") => rules::flake8_gettext::rules::PrintfInGetTextFuncCall,
// flake8-implicit-str-concat
(Flake8ImplicitStrConcat, "001") => rules::flake8_implicit_str_concat::rules::SingleLineImplicitStringConcatenation,
(Flake8ImplicitStrConcat, "002") => rules::flake8_implicit_str_concat::rules::MultiLineImplicitStringConcatenation,
(Flake8ImplicitStrConcat, "003") => rules::flake8_implicit_str_concat::rules::ExplicitStringConcatenation,
// flake8-print
(Flake8Print, "1") => rules::flake8_print::rules::Print,
(Flake8Print, "3") => rules::flake8_print::rules::PPrint,
// flake8-quotes
(Flake8Quotes, "000") => rules::flake8_quotes::rules::BadQuotesInlineString,
(Flake8Quotes, "001") => rules::flake8_quotes::rules::BadQuotesMultilineString,
(Flake8Quotes, "002") => rules::flake8_quotes::rules::BadQuotesDocstring,
(Flake8Quotes, "003") => rules::flake8_quotes::rules::AvoidableEscapedQuote,
(Flake8Quotes, "004") => rules::flake8_quotes::rules::UnnecessaryEscapedQuote,
// flake8-annotations
(Flake8Annotations, "001") => rules::flake8_annotations::rules::MissingTypeFunctionArgument,
(Flake8Annotations, "002") => rules::flake8_annotations::rules::MissingTypeArgs,
(Flake8Annotations, "003") => rules::flake8_annotations::rules::MissingTypeKwargs,
#[allow(deprecated)]
(Flake8Annotations, "101") => rules::flake8_annotations::rules::MissingTypeSelf,
#[allow(deprecated)]
(Flake8Annotations, "102") => rules::flake8_annotations::rules::MissingTypeCls,
(Flake8Annotations, "201") => rules::flake8_annotations::rules::MissingReturnTypeUndocumentedPublicFunction,
(Flake8Annotations, "202") => rules::flake8_annotations::rules::MissingReturnTypePrivateFunction,
(Flake8Annotations, "204") => rules::flake8_annotations::rules::MissingReturnTypeSpecialMethod,
(Flake8Annotations, "205") => rules::flake8_annotations::rules::MissingReturnTypeStaticMethod,
(Flake8Annotations, "206") => rules::flake8_annotations::rules::MissingReturnTypeClassMethod,
(Flake8Annotations, "401") => rules::flake8_annotations::rules::AnyType,
// flake8-future-annotations
(Flake8FutureAnnotations, "100") => rules::flake8_future_annotations::rules::FutureRewritableTypeAnnotation,
(Flake8FutureAnnotations, "102") => rules::flake8_future_annotations::rules::FutureRequiredTypeAnnotation,
// flake8-2020
(Flake82020, "101") => rules::flake8_2020::rules::SysVersionSlice3,
(Flake82020, "102") => rules::flake8_2020::rules::SysVersion2,
(Flake82020, "103") => rules::flake8_2020::rules::SysVersionCmpStr3,
(Flake82020, "201") => rules::flake8_2020::rules::SysVersionInfo0Eq3,
(Flake82020, "202") => rules::flake8_2020::rules::SixPY3,
(Flake82020, "203") => rules::flake8_2020::rules::SysVersionInfo1CmpInt,
(Flake82020, "204") => rules::flake8_2020::rules::SysVersionInfoMinorCmpInt,
(Flake82020, "301") => rules::flake8_2020::rules::SysVersion0,
(Flake82020, "302") => rules::flake8_2020::rules::SysVersionCmpStr10,
(Flake82020, "303") => rules::flake8_2020::rules::SysVersionSlice1,
// flake8-simplify
(Flake8Simplify, "101") => rules::flake8_simplify::rules::DuplicateIsinstanceCall,
(Flake8Simplify, "102") => rules::flake8_simplify::rules::CollapsibleIf,
(Flake8Simplify, "103") => rules::flake8_simplify::rules::NeedlessBool,
(Flake8Simplify, "105") => rules::flake8_simplify::rules::SuppressibleException,
(Flake8Simplify, "107") => rules::flake8_simplify::rules::ReturnInTryExceptFinally,
(Flake8Simplify, "108") => rules::flake8_simplify::rules::IfElseBlockInsteadOfIfExp,
(Flake8Simplify, "109") => rules::flake8_simplify::rules::CompareWithTuple,
(Flake8Simplify, "110") => rules::flake8_simplify::rules::ReimplementedBuiltin,
(Flake8Simplify, "112") => rules::flake8_simplify::rules::UncapitalizedEnvironmentVariables,
(Flake8Simplify, "113") => rules::flake8_simplify::rules::EnumerateForLoop,
(Flake8Simplify, "114") => rules::flake8_simplify::rules::IfWithSameArms,
(Flake8Simplify, "115") => rules::flake8_simplify::rules::OpenFileWithContextHandler,
(Flake8Simplify, "116") => rules::flake8_simplify::rules::IfElseBlockInsteadOfDictLookup,
(Flake8Simplify, "117") => rules::flake8_simplify::rules::MultipleWithStatements,
(Flake8Simplify, "118") => rules::flake8_simplify::rules::InDictKeys,
(Flake8Simplify, "201") => rules::flake8_simplify::rules::NegateEqualOp,
(Flake8Simplify, "202") => rules::flake8_simplify::rules::NegateNotEqualOp,
(Flake8Simplify, "208") => rules::flake8_simplify::rules::DoubleNegation,
(Flake8Simplify, "210") => rules::flake8_simplify::rules::IfExprWithTrueFalse,
(Flake8Simplify, "211") => rules::flake8_simplify::rules::IfExprWithFalseTrue,
(Flake8Simplify, "212") => rules::flake8_simplify::rules::IfExprWithTwistedArms,
(Flake8Simplify, "220") => rules::flake8_simplify::rules::ExprAndNotExpr,
(Flake8Simplify, "221") => rules::flake8_simplify::rules::ExprOrNotExpr,
(Flake8Simplify, "222") => rules::flake8_simplify::rules::ExprOrTrue,
(Flake8Simplify, "223") => rules::flake8_simplify::rules::ExprAndFalse,
(Flake8Simplify, "300") => rules::flake8_simplify::rules::YodaConditions,
(Flake8Simplify, "401") => rules::flake8_simplify::rules::IfElseBlockInsteadOfDictGet,
(Flake8Simplify, "905") => rules::flake8_simplify::rules::SplitStaticString,
(Flake8Simplify, "910") => rules::flake8_simplify::rules::DictGetWithNoneDefault,
(Flake8Simplify, "911") => rules::flake8_simplify::rules::ZipDictKeysAndValues,
// flake8-copyright
(Flake8Copyright, "001") => rules::flake8_copyright::rules::MissingCopyrightNotice,
// pyupgrade
(Pyupgrade, "001") => rules::pyupgrade::rules::UselessMetaclassType,
(Pyupgrade, "003") => rules::pyupgrade::rules::TypeOfPrimitive,
(Pyupgrade, "004") => rules::pyupgrade::rules::UselessObjectInheritance,
(Pyupgrade, "005") => rules::pyupgrade::rules::DeprecatedUnittestAlias,
(Pyupgrade, "006") => rules::pyupgrade::rules::NonPEP585Annotation,
(Pyupgrade, "007") => rules::pyupgrade::rules::NonPEP604AnnotationUnion,
(Pyupgrade, "008") => rules::pyupgrade::rules::SuperCallWithParameters,
(Pyupgrade, "009") => rules::pyupgrade::rules::UTF8EncodingDeclaration,
(Pyupgrade, "010") => rules::pyupgrade::rules::UnnecessaryFutureImport,
(Pyupgrade, "011") => rules::pyupgrade::rules::LRUCacheWithoutParameters,
(Pyupgrade, "012") => rules::pyupgrade::rules::UnnecessaryEncodeUTF8,
(Pyupgrade, "013") => rules::pyupgrade::rules::ConvertTypedDictFunctionalToClass,
(Pyupgrade, "014") => rules::pyupgrade::rules::ConvertNamedTupleFunctionalToClass,
(Pyupgrade, "015") => rules::pyupgrade::rules::RedundantOpenModes,
(Pyupgrade, "017") => rules::pyupgrade::rules::DatetimeTimezoneUTC,
(Pyupgrade, "018") => rules::pyupgrade::rules::NativeLiterals,
(Pyupgrade, "019") => rules::pyupgrade::rules::TypingTextStrAlias,
(Pyupgrade, "020") => rules::pyupgrade::rules::OpenAlias,
(Pyupgrade, "021") => rules::pyupgrade::rules::ReplaceUniversalNewlines,
(Pyupgrade, "022") => rules::pyupgrade::rules::ReplaceStdoutStderr,
(Pyupgrade, "023") => rules::pyupgrade::rules::DeprecatedCElementTree,
(Pyupgrade, "024") => rules::pyupgrade::rules::OSErrorAlias,
(Pyupgrade, "025") => rules::pyupgrade::rules::UnicodeKindPrefix,
(Pyupgrade, "026") => rules::pyupgrade::rules::DeprecatedMockImport,
(Pyupgrade, "027") => rules::pyupgrade::rules::UnpackedListComprehension,
(Pyupgrade, "028") => rules::pyupgrade::rules::YieldInForLoop,
(Pyupgrade, "029") => rules::pyupgrade::rules::UnnecessaryBuiltinImport,
(Pyupgrade, "030") => rules::pyupgrade::rules::FormatLiterals,
(Pyupgrade, "031") => rules::pyupgrade::rules::PrintfStringFormatting,
(Pyupgrade, "032") => rules::pyupgrade::rules::FString,
(Pyupgrade, "033") => rules::pyupgrade::rules::LRUCacheWithMaxsizeNone,
(Pyupgrade, "034") => rules::pyupgrade::rules::ExtraneousParentheses,
(Pyupgrade, "035") => rules::pyupgrade::rules::DeprecatedImport,
(Pyupgrade, "036") => rules::pyupgrade::rules::OutdatedVersionBlock,
(Pyupgrade, "037") => rules::pyupgrade::rules::QuotedAnnotation,
(Pyupgrade, "038") => rules::pyupgrade::rules::NonPEP604Isinstance,
(Pyupgrade, "039") => rules::pyupgrade::rules::UnnecessaryClassParentheses,
(Pyupgrade, "040") => rules::pyupgrade::rules::NonPEP695TypeAlias,
(Pyupgrade, "041") => rules::pyupgrade::rules::TimeoutErrorAlias,
(Pyupgrade, "042") => rules::pyupgrade::rules::ReplaceStrEnum,
(Pyupgrade, "043") => rules::pyupgrade::rules::UnnecessaryDefaultTypeArgs,
(Pyupgrade, "044") => rules::pyupgrade::rules::NonPEP646Unpack,
(Pyupgrade, "045") => rules::pyupgrade::rules::NonPEP604AnnotationOptional,
(Pyupgrade, "046") => rules::pyupgrade::rules::NonPEP695GenericClass,
(Pyupgrade, "047") => rules::pyupgrade::rules::NonPEP695GenericFunction,
(Pyupgrade, "049") => rules::pyupgrade::rules::PrivateTypeParameter,
(Pyupgrade, "050") => rules::pyupgrade::rules::UselessClassMetaclassType,
// pydocstyle
(Pydocstyle, "100") => rules::pydocstyle::rules::UndocumentedPublicModule,
(Pydocstyle, "101") => rules::pydocstyle::rules::UndocumentedPublicClass,
(Pydocstyle, "102") => rules::pydocstyle::rules::UndocumentedPublicMethod,
(Pydocstyle, "103") => rules::pydocstyle::rules::UndocumentedPublicFunction,
(Pydocstyle, "104") => rules::pydocstyle::rules::UndocumentedPublicPackage,
(Pydocstyle, "105") => rules::pydocstyle::rules::UndocumentedMagicMethod,
(Pydocstyle, "106") => rules::pydocstyle::rules::UndocumentedPublicNestedClass,
(Pydocstyle, "107") => rules::pydocstyle::rules::UndocumentedPublicInit,
(Pydocstyle, "200") => rules::pydocstyle::rules::UnnecessaryMultilineDocstring,
(Pydocstyle, "201") => rules::pydocstyle::rules::BlankLineBeforeFunction,
(Pydocstyle, "202") => rules::pydocstyle::rules::BlankLineAfterFunction,
(Pydocstyle, "203") => rules::pydocstyle::rules::IncorrectBlankLineBeforeClass,
(Pydocstyle, "204") => rules::pydocstyle::rules::IncorrectBlankLineAfterClass,
(Pydocstyle, "205") => rules::pydocstyle::rules::MissingBlankLineAfterSummary,
(Pydocstyle, "206") => rules::pydocstyle::rules::DocstringTabIndentation,
(Pydocstyle, "207") => rules::pydocstyle::rules::UnderIndentation,
(Pydocstyle, "208") => rules::pydocstyle::rules::OverIndentation,
(Pydocstyle, "209") => rules::pydocstyle::rules::NewLineAfterLastParagraph,
(Pydocstyle, "210") => rules::pydocstyle::rules::SurroundingWhitespace,
(Pydocstyle, "211") => rules::pydocstyle::rules::BlankLineBeforeClass,
(Pydocstyle, "212") => rules::pydocstyle::rules::MultiLineSummaryFirstLine,
(Pydocstyle, "213") => rules::pydocstyle::rules::MultiLineSummarySecondLine,
(Pydocstyle, "214") => rules::pydocstyle::rules::OverindentedSection,
(Pydocstyle, "215") => rules::pydocstyle::rules::OverindentedSectionUnderline,
(Pydocstyle, "300") => rules::pydocstyle::rules::TripleSingleQuotes,
(Pydocstyle, "301") => rules::pydocstyle::rules::EscapeSequenceInDocstring,
(Pydocstyle, "400") => rules::pydocstyle::rules::MissingTrailingPeriod,
(Pydocstyle, "401") => rules::pydocstyle::rules::NonImperativeMood,
(Pydocstyle, "402") => rules::pydocstyle::rules::SignatureInDocstring,
(Pydocstyle, "403") => rules::pydocstyle::rules::FirstWordUncapitalized,
(Pydocstyle, "404") => rules::pydocstyle::rules::DocstringStartsWithThis,
(Pydocstyle, "405") => rules::pydocstyle::rules::NonCapitalizedSectionName,
(Pydocstyle, "406") => rules::pydocstyle::rules::MissingNewLineAfterSectionName,
(Pydocstyle, "407") => rules::pydocstyle::rules::MissingDashedUnderlineAfterSection,
(Pydocstyle, "408") => rules::pydocstyle::rules::MissingSectionUnderlineAfterName,
(Pydocstyle, "409") => rules::pydocstyle::rules::MismatchedSectionUnderlineLength,
(Pydocstyle, "410") => rules::pydocstyle::rules::NoBlankLineAfterSection,
(Pydocstyle, "411") => rules::pydocstyle::rules::NoBlankLineBeforeSection,
(Pydocstyle, "412") => rules::pydocstyle::rules::BlankLinesBetweenHeaderAndContent,
(Pydocstyle, "413") => rules::pydocstyle::rules::MissingBlankLineAfterLastSection,
(Pydocstyle, "414") => rules::pydocstyle::rules::EmptyDocstringSection,
(Pydocstyle, "415") => rules::pydocstyle::rules::MissingTerminalPunctuation,
(Pydocstyle, "416") => rules::pydocstyle::rules::MissingSectionNameColon,
(Pydocstyle, "417") => rules::pydocstyle::rules::UndocumentedParam,
(Pydocstyle, "418") => rules::pydocstyle::rules::OverloadWithDocstring,
(Pydocstyle, "419") => rules::pydocstyle::rules::EmptyDocstring,
// pep8-naming
(PEP8Naming, "801") => rules::pep8_naming::rules::InvalidClassName,
(PEP8Naming, "802") => rules::pep8_naming::rules::InvalidFunctionName,
(PEP8Naming, "803") => rules::pep8_naming::rules::InvalidArgumentName,
(PEP8Naming, "804") => rules::pep8_naming::rules::InvalidFirstArgumentNameForClassMethod,
(PEP8Naming, "805") => rules::pep8_naming::rules::InvalidFirstArgumentNameForMethod,
(PEP8Naming, "806") => rules::pep8_naming::rules::NonLowercaseVariableInFunction,
(PEP8Naming, "807") => rules::pep8_naming::rules::DunderFunctionName,
(PEP8Naming, "811") => rules::pep8_naming::rules::ConstantImportedAsNonConstant,
(PEP8Naming, "812") => rules::pep8_naming::rules::LowercaseImportedAsNonLowercase,
(PEP8Naming, "813") => rules::pep8_naming::rules::CamelcaseImportedAsLowercase,
(PEP8Naming, "814") => rules::pep8_naming::rules::CamelcaseImportedAsConstant,
(PEP8Naming, "815") => rules::pep8_naming::rules::MixedCaseVariableInClassScope,
(PEP8Naming, "816") => rules::pep8_naming::rules::MixedCaseVariableInGlobalScope,
(PEP8Naming, "817") => rules::pep8_naming::rules::CamelcaseImportedAsAcronym,
(PEP8Naming, "818") => rules::pep8_naming::rules::ErrorSuffixOnExceptionName,
(PEP8Naming, "999") => rules::pep8_naming::rules::InvalidModuleName,
// isort
(Isort, "001") => rules::isort::rules::UnsortedImports,
(Isort, "002") => rules::isort::rules::MissingRequiredImport,
// eradicate
(Eradicate, "001") => rules::eradicate::rules::CommentedOutCode,
// flake8-bandit
(Flake8Bandit, "101") => rules::flake8_bandit::rules::Assert,
(Flake8Bandit, "102") => rules::flake8_bandit::rules::ExecBuiltin,
(Flake8Bandit, "103") => rules::flake8_bandit::rules::BadFilePermissions,
(Flake8Bandit, "104") => rules::flake8_bandit::rules::HardcodedBindAllInterfaces,
(Flake8Bandit, "105") => rules::flake8_bandit::rules::HardcodedPasswordString,
(Flake8Bandit, "106") => rules::flake8_bandit::rules::HardcodedPasswordFuncArg,
(Flake8Bandit, "107") => rules::flake8_bandit::rules::HardcodedPasswordDefault,
(Flake8Bandit, "108") => rules::flake8_bandit::rules::HardcodedTempFile,
(Flake8Bandit, "110") => rules::flake8_bandit::rules::TryExceptPass,
(Flake8Bandit, "112") => rules::flake8_bandit::rules::TryExceptContinue,
(Flake8Bandit, "113") => rules::flake8_bandit::rules::RequestWithoutTimeout,
(Flake8Bandit, "201") => rules::flake8_bandit::rules::FlaskDebugTrue,
(Flake8Bandit, "202") => rules::flake8_bandit::rules::TarfileUnsafeMembers,
(Flake8Bandit, "301") => rules::flake8_bandit::rules::SuspiciousPickleUsage,
(Flake8Bandit, "302") => rules::flake8_bandit::rules::SuspiciousMarshalUsage,
(Flake8Bandit, "303") => rules::flake8_bandit::rules::SuspiciousInsecureHashUsage,
(Flake8Bandit, "304") => rules::flake8_bandit::rules::SuspiciousInsecureCipherUsage,
(Flake8Bandit, "305") => rules::flake8_bandit::rules::SuspiciousInsecureCipherModeUsage,
(Flake8Bandit, "306") => rules::flake8_bandit::rules::SuspiciousMktempUsage,
(Flake8Bandit, "307") => rules::flake8_bandit::rules::SuspiciousEvalUsage,
(Flake8Bandit, "308") => rules::flake8_bandit::rules::SuspiciousMarkSafeUsage,
(Flake8Bandit, "310") => rules::flake8_bandit::rules::SuspiciousURLOpenUsage,
(Flake8Bandit, "311") => rules::flake8_bandit::rules::SuspiciousNonCryptographicRandomUsage,
(Flake8Bandit, "312") => rules::flake8_bandit::rules::SuspiciousTelnetUsage,
(Flake8Bandit, "313") => rules::flake8_bandit::rules::SuspiciousXMLCElementTreeUsage,
(Flake8Bandit, "314") => rules::flake8_bandit::rules::SuspiciousXMLElementTreeUsage,
(Flake8Bandit, "315") => rules::flake8_bandit::rules::SuspiciousXMLExpatReaderUsage,
(Flake8Bandit, "316") => rules::flake8_bandit::rules::SuspiciousXMLExpatBuilderUsage,
(Flake8Bandit, "317") => rules::flake8_bandit::rules::SuspiciousXMLSaxUsage,
(Flake8Bandit, "318") => rules::flake8_bandit::rules::SuspiciousXMLMiniDOMUsage,
(Flake8Bandit, "319") => rules::flake8_bandit::rules::SuspiciousXMLPullDOMUsage,
(Flake8Bandit, "320") => rules::flake8_bandit::rules::SuspiciousXMLETreeUsage,
(Flake8Bandit, "321") => rules::flake8_bandit::rules::SuspiciousFTPLibUsage,
(Flake8Bandit, "323") => rules::flake8_bandit::rules::SuspiciousUnverifiedContextUsage,
(Flake8Bandit, "324") => rules::flake8_bandit::rules::HashlibInsecureHashFunction,
(Flake8Bandit, "401") => rules::flake8_bandit::rules::SuspiciousTelnetlibImport,
(Flake8Bandit, "402") => rules::flake8_bandit::rules::SuspiciousFtplibImport,
(Flake8Bandit, "403") => rules::flake8_bandit::rules::SuspiciousPickleImport,
(Flake8Bandit, "404") => rules::flake8_bandit::rules::SuspiciousSubprocessImport,
(Flake8Bandit, "405") => rules::flake8_bandit::rules::SuspiciousXmlEtreeImport,
(Flake8Bandit, "406") => rules::flake8_bandit::rules::SuspiciousXmlSaxImport,
(Flake8Bandit, "407") => rules::flake8_bandit::rules::SuspiciousXmlExpatImport,
(Flake8Bandit, "408") => rules::flake8_bandit::rules::SuspiciousXmlMinidomImport,
(Flake8Bandit, "409") => rules::flake8_bandit::rules::SuspiciousXmlPulldomImport,
(Flake8Bandit, "410") => rules::flake8_bandit::rules::SuspiciousLxmlImport,
(Flake8Bandit, "411") => rules::flake8_bandit::rules::SuspiciousXmlrpcImport,
(Flake8Bandit, "412") => rules::flake8_bandit::rules::SuspiciousHttpoxyImport,
(Flake8Bandit, "413") => rules::flake8_bandit::rules::SuspiciousPycryptoImport,
(Flake8Bandit, "415") => rules::flake8_bandit::rules::SuspiciousPyghmiImport,
(Flake8Bandit, "501") => rules::flake8_bandit::rules::RequestWithNoCertValidation,
(Flake8Bandit, "502") => rules::flake8_bandit::rules::SslInsecureVersion,
(Flake8Bandit, "503") => rules::flake8_bandit::rules::SslWithBadDefaults,
(Flake8Bandit, "504") => rules::flake8_bandit::rules::SslWithNoVersion,
(Flake8Bandit, "505") => rules::flake8_bandit::rules::WeakCryptographicKey,
(Flake8Bandit, "506") => rules::flake8_bandit::rules::UnsafeYAMLLoad,
(Flake8Bandit, "507") => rules::flake8_bandit::rules::SSHNoHostKeyVerification,
(Flake8Bandit, "508") => rules::flake8_bandit::rules::SnmpInsecureVersion,
(Flake8Bandit, "509") => rules::flake8_bandit::rules::SnmpWeakCryptography,
(Flake8Bandit, "601") => rules::flake8_bandit::rules::ParamikoCall,
(Flake8Bandit, "602") => rules::flake8_bandit::rules::SubprocessPopenWithShellEqualsTrue,
(Flake8Bandit, "603") => rules::flake8_bandit::rules::SubprocessWithoutShellEqualsTrue,
(Flake8Bandit, "604") => rules::flake8_bandit::rules::CallWithShellEqualsTrue,
(Flake8Bandit, "605") => rules::flake8_bandit::rules::StartProcessWithAShell,
(Flake8Bandit, "606") => rules::flake8_bandit::rules::StartProcessWithNoShell,
(Flake8Bandit, "607") => rules::flake8_bandit::rules::StartProcessWithPartialPath,
(Flake8Bandit, "608") => rules::flake8_bandit::rules::HardcodedSQLExpression,
(Flake8Bandit, "609") => rules::flake8_bandit::rules::UnixCommandWildcardInjection,
(Flake8Bandit, "610") => rules::flake8_bandit::rules::DjangoExtra,
(Flake8Bandit, "611") => rules::flake8_bandit::rules::DjangoRawSql,
(Flake8Bandit, "612") => rules::flake8_bandit::rules::LoggingConfigInsecureListen,
(Flake8Bandit, "701") => rules::flake8_bandit::rules::Jinja2AutoescapeFalse,
(Flake8Bandit, "702") => rules::flake8_bandit::rules::MakoTemplates,
(Flake8Bandit, "704") => rules::flake8_bandit::rules::UnsafeMarkupUse,
// flake8-boolean-trap
(Flake8BooleanTrap, "001") => rules::flake8_boolean_trap::rules::BooleanTypeHintPositionalArgument,
(Flake8BooleanTrap, "002") => rules::flake8_boolean_trap::rules::BooleanDefaultValuePositionalArgument,
(Flake8BooleanTrap, "003") => rules::flake8_boolean_trap::rules::BooleanPositionalValueInCall,
// flake8-unused-arguments
(Flake8UnusedArguments, "001") => rules::flake8_unused_arguments::rules::UnusedFunctionArgument,
(Flake8UnusedArguments, "002") => rules::flake8_unused_arguments::rules::UnusedMethodArgument,
(Flake8UnusedArguments, "003") => rules::flake8_unused_arguments::rules::UnusedClassMethodArgument,
(Flake8UnusedArguments, "004") => rules::flake8_unused_arguments::rules::UnusedStaticMethodArgument,
(Flake8UnusedArguments, "005") => rules::flake8_unused_arguments::rules::UnusedLambdaArgument,
// flake8-import-conventions
(Flake8ImportConventions, "001") => rules::flake8_import_conventions::rules::UnconventionalImportAlias,
(Flake8ImportConventions, "002") => rules::flake8_import_conventions::rules::BannedImportAlias,
(Flake8ImportConventions, "003") => rules::flake8_import_conventions::rules::BannedImportFrom,
// flake8-datetimez
(Flake8Datetimez, "001") => rules::flake8_datetimez::rules::CallDatetimeWithoutTzinfo,
(Flake8Datetimez, "002") => rules::flake8_datetimez::rules::CallDatetimeToday,
(Flake8Datetimez, "003") => rules::flake8_datetimez::rules::CallDatetimeUtcnow,
(Flake8Datetimez, "004") => rules::flake8_datetimez::rules::CallDatetimeUtcfromtimestamp,
(Flake8Datetimez, "005") => rules::flake8_datetimez::rules::CallDatetimeNowWithoutTzinfo,
(Flake8Datetimez, "006") => rules::flake8_datetimez::rules::CallDatetimeFromtimestamp,
(Flake8Datetimez, "007") => rules::flake8_datetimez::rules::CallDatetimeStrptimeWithoutZone,
(Flake8Datetimez, "011") => rules::flake8_datetimez::rules::CallDateToday,
(Flake8Datetimez, "012") => rules::flake8_datetimez::rules::CallDateFromtimestamp,
(Flake8Datetimez, "901") => rules::flake8_datetimez::rules::DatetimeMinMax,
// pygrep-hooks
(PygrepHooks, "001") => rules::pygrep_hooks::rules::Eval,
(PygrepHooks, "002") => rules::pygrep_hooks::rules::DeprecatedLogWarn,
(PygrepHooks, "003") => rules::pygrep_hooks::rules::BlanketTypeIgnore,
(PygrepHooks, "004") => rules::pygrep_hooks::rules::BlanketNOQA,
(PygrepHooks, "005") => rules::pygrep_hooks::rules::InvalidMockAccess,
// pandas-vet
(PandasVet, "002") => rules::pandas_vet::rules::PandasUseOfInplaceArgument,
(PandasVet, "003") => rules::pandas_vet::rules::PandasUseOfDotIsNull,
(PandasVet, "004") => rules::pandas_vet::rules::PandasUseOfDotNotNull,
(PandasVet, "007") => rules::pandas_vet::rules::PandasUseOfDotIx,
(PandasVet, "008") => rules::pandas_vet::rules::PandasUseOfDotAt,
(PandasVet, "009") => rules::pandas_vet::rules::PandasUseOfDotIat,
(PandasVet, "010") => rules::pandas_vet::rules::PandasUseOfDotPivotOrUnstack,
(PandasVet, "011") => rules::pandas_vet::rules::PandasUseOfDotValues,
(PandasVet, "012") => rules::pandas_vet::rules::PandasUseOfDotReadTable,
(PandasVet, "013") => rules::pandas_vet::rules::PandasUseOfDotStack,
(PandasVet, "015") => rules::pandas_vet::rules::PandasUseOfPdMerge,
(PandasVet, "101") => rules::pandas_vet::rules::PandasNuniqueConstantSeriesCheck,
(PandasVet, "901") => rules::pandas_vet::rules::PandasDfVariableName,
// flake8-errmsg
(Flake8ErrMsg, "101") => rules::flake8_errmsg::rules::RawStringInException,
(Flake8ErrMsg, "102") => rules::flake8_errmsg::rules::FStringInException,
(Flake8ErrMsg, "103") => rules::flake8_errmsg::rules::DotFormatInException,
// flake8-pyi
(Flake8Pyi, "001") => rules::flake8_pyi::rules::UnprefixedTypeParam,
(Flake8Pyi, "002") => rules::flake8_pyi::rules::ComplexIfStatementInStub,
(Flake8Pyi, "003") => rules::flake8_pyi::rules::UnrecognizedVersionInfoCheck,
(Flake8Pyi, "004") => rules::flake8_pyi::rules::PatchVersionComparison,
(Flake8Pyi, "005") => rules::flake8_pyi::rules::WrongTupleLengthVersionComparison,
(Flake8Pyi, "006") => rules::flake8_pyi::rules::BadVersionInfoComparison,
(Flake8Pyi, "007") => rules::flake8_pyi::rules::UnrecognizedPlatformCheck,
(Flake8Pyi, "008") => rules::flake8_pyi::rules::UnrecognizedPlatformName,
(Flake8Pyi, "009") => rules::flake8_pyi::rules::PassStatementStubBody,
(Flake8Pyi, "010") => rules::flake8_pyi::rules::NonEmptyStubBody,
(Flake8Pyi, "011") => rules::flake8_pyi::rules::TypedArgumentDefaultInStub,
(Flake8Pyi, "012") => rules::flake8_pyi::rules::PassInClassBody,
(Flake8Pyi, "013") => rules::flake8_pyi::rules::EllipsisInNonEmptyClassBody,
(Flake8Pyi, "014") => rules::flake8_pyi::rules::ArgumentDefaultInStub,
(Flake8Pyi, "015") => rules::flake8_pyi::rules::AssignmentDefaultInStub,
(Flake8Pyi, "016") => rules::flake8_pyi::rules::DuplicateUnionMember,
(Flake8Pyi, "017") => rules::flake8_pyi::rules::ComplexAssignmentInStub,
(Flake8Pyi, "018") => rules::flake8_pyi::rules::UnusedPrivateTypeVar,
(Flake8Pyi, "019") => rules::flake8_pyi::rules::CustomTypeVarForSelf,
(Flake8Pyi, "020") => rules::flake8_pyi::rules::QuotedAnnotationInStub,
(Flake8Pyi, "021") => rules::flake8_pyi::rules::DocstringInStub,
(Flake8Pyi, "024") => rules::flake8_pyi::rules::CollectionsNamedTuple,
(Flake8Pyi, "025") => rules::flake8_pyi::rules::UnaliasedCollectionsAbcSetImport,
(Flake8Pyi, "026") => rules::flake8_pyi::rules::TypeAliasWithoutAnnotation,
(Flake8Pyi, "029") => rules::flake8_pyi::rules::StrOrReprDefinedInStub,
(Flake8Pyi, "030") => rules::flake8_pyi::rules::UnnecessaryLiteralUnion,
(Flake8Pyi, "032") => rules::flake8_pyi::rules::AnyEqNeAnnotation,
(Flake8Pyi, "033") => rules::flake8_pyi::rules::TypeCommentInStub,
(Flake8Pyi, "034") => rules::flake8_pyi::rules::NonSelfReturnType,
(Flake8Pyi, "035") => rules::flake8_pyi::rules::UnassignedSpecialVariableInStub,
(Flake8Pyi, "036") => rules::flake8_pyi::rules::BadExitAnnotation,
(Flake8Pyi, "041") => rules::flake8_pyi::rules::RedundantNumericUnion,
(Flake8Pyi, "042") => rules::flake8_pyi::rules::SnakeCaseTypeAlias,
(Flake8Pyi, "043") => rules::flake8_pyi::rules::TSuffixedTypeAlias,
(Flake8Pyi, "044") => rules::flake8_pyi::rules::FutureAnnotationsInStub,
(Flake8Pyi, "045") => rules::flake8_pyi::rules::IterMethodReturnIterable,
(Flake8Pyi, "046") => rules::flake8_pyi::rules::UnusedPrivateProtocol,
(Flake8Pyi, "047") => rules::flake8_pyi::rules::UnusedPrivateTypeAlias,
(Flake8Pyi, "048") => rules::flake8_pyi::rules::StubBodyMultipleStatements,
(Flake8Pyi, "049") => rules::flake8_pyi::rules::UnusedPrivateTypedDict,
(Flake8Pyi, "050") => rules::flake8_pyi::rules::NoReturnArgumentAnnotationInStub,
(Flake8Pyi, "051") => rules::flake8_pyi::rules::RedundantLiteralUnion,
(Flake8Pyi, "052") => rules::flake8_pyi::rules::UnannotatedAssignmentInStub,
(Flake8Pyi, "054") => rules::flake8_pyi::rules::NumericLiteralTooLong,
(Flake8Pyi, "053") => rules::flake8_pyi::rules::StringOrBytesTooLong,
(Flake8Pyi, "055") => rules::flake8_pyi::rules::UnnecessaryTypeUnion,
(Flake8Pyi, "056") => rules::flake8_pyi::rules::UnsupportedMethodCallOnAll,
(Flake8Pyi, "058") => rules::flake8_pyi::rules::GeneratorReturnFromIterMethod,
(Flake8Pyi, "057") => rules::flake8_pyi::rules::ByteStringUsage,
(Flake8Pyi, "059") => rules::flake8_pyi::rules::GenericNotLastBaseClass,
(Flake8Pyi, "061") => rules::flake8_pyi::rules::RedundantNoneLiteral,
(Flake8Pyi, "062") => rules::flake8_pyi::rules::DuplicateLiteralMember,
(Flake8Pyi, "063") => rules::flake8_pyi::rules::Pep484StylePositionalOnlyParameter,
(Flake8Pyi, "064") => rules::flake8_pyi::rules::RedundantFinalLiteral,
(Flake8Pyi, "066") => rules::flake8_pyi::rules::BadVersionInfoOrder,
// flake8-pytest-style
(Flake8PytestStyle, "001") => rules::flake8_pytest_style::rules::PytestFixtureIncorrectParenthesesStyle,
(Flake8PytestStyle, "002") => rules::flake8_pytest_style::rules::PytestFixturePositionalArgs,
(Flake8PytestStyle, "003") => rules::flake8_pytest_style::rules::PytestExtraneousScopeFunction,
#[allow(deprecated)]
(Flake8PytestStyle, "004") => rules::flake8_pytest_style::rules::PytestMissingFixtureNameUnderscore,
#[allow(deprecated)]
(Flake8PytestStyle, "005") => rules::flake8_pytest_style::rules::PytestIncorrectFixtureNameUnderscore,
(Flake8PytestStyle, "006") => rules::flake8_pytest_style::rules::PytestParametrizeNamesWrongType,
(Flake8PytestStyle, "007") => rules::flake8_pytest_style::rules::PytestParametrizeValuesWrongType,
(Flake8PytestStyle, "008") => rules::flake8_pytest_style::rules::PytestPatchWithLambda,
(Flake8PytestStyle, "009") => rules::flake8_pytest_style::rules::PytestUnittestAssertion,
(Flake8PytestStyle, "010") => rules::flake8_pytest_style::rules::PytestRaisesWithoutException,
(Flake8PytestStyle, "011") => rules::flake8_pytest_style::rules::PytestRaisesTooBroad,
(Flake8PytestStyle, "012") => rules::flake8_pytest_style::rules::PytestRaisesWithMultipleStatements,
(Flake8PytestStyle, "013") => rules::flake8_pytest_style::rules::PytestIncorrectPytestImport,
(Flake8PytestStyle, "014") => rules::flake8_pytest_style::rules::PytestDuplicateParametrizeTestCases,
(Flake8PytestStyle, "015") => rules::flake8_pytest_style::rules::PytestAssertAlwaysFalse,
(Flake8PytestStyle, "016") => rules::flake8_pytest_style::rules::PytestFailWithoutMessage,
(Flake8PytestStyle, "017") => rules::flake8_pytest_style::rules::PytestAssertInExcept,
(Flake8PytestStyle, "018") => rules::flake8_pytest_style::rules::PytestCompositeAssertion,
(Flake8PytestStyle, "019") => rules::flake8_pytest_style::rules::PytestFixtureParamWithoutValue,
(Flake8PytestStyle, "020") => rules::flake8_pytest_style::rules::PytestDeprecatedYieldFixture,
(Flake8PytestStyle, "021") => rules::flake8_pytest_style::rules::PytestFixtureFinalizerCallback,
(Flake8PytestStyle, "022") => rules::flake8_pytest_style::rules::PytestUselessYieldFixture,
(Flake8PytestStyle, "023") => rules::flake8_pytest_style::rules::PytestIncorrectMarkParenthesesStyle,
(Flake8PytestStyle, "024") => rules::flake8_pytest_style::rules::PytestUnnecessaryAsyncioMarkOnFixture,
(Flake8PytestStyle, "025") => rules::flake8_pytest_style::rules::PytestErroneousUseFixturesOnFixture,
(Flake8PytestStyle, "026") => rules::flake8_pytest_style::rules::PytestUseFixturesWithoutParameters,
(Flake8PytestStyle, "027") => rules::flake8_pytest_style::rules::PytestUnittestRaisesAssertion,
(Flake8PytestStyle, "028") => rules::flake8_pytest_style::rules::PytestParameterWithDefaultArgument,
(Flake8PytestStyle, "029") => rules::flake8_pytest_style::rules::PytestWarnsWithoutWarning,
(Flake8PytestStyle, "030") => rules::flake8_pytest_style::rules::PytestWarnsTooBroad,
(Flake8PytestStyle, "031") => rules::flake8_pytest_style::rules::PytestWarnsWithMultipleStatements,
// flake8-pie
(Flake8Pie, "790") => rules::flake8_pie::rules::UnnecessaryPlaceholder,
(Flake8Pie, "794") => rules::flake8_pie::rules::DuplicateClassFieldDefinition,
(Flake8Pie, "796") => rules::flake8_pie::rules::NonUniqueEnums,
(Flake8Pie, "800") => rules::flake8_pie::rules::UnnecessarySpread,
(Flake8Pie, "804") => rules::flake8_pie::rules::UnnecessaryDictKwargs,
(Flake8Pie, "807") => rules::flake8_pie::rules::ReimplementedContainerBuiltin,
(Flake8Pie, "808") => rules::flake8_pie::rules::UnnecessaryRangeStart,
(Flake8Pie, "810") => rules::flake8_pie::rules::MultipleStartsEndsWith,
// flake8-commas
(Flake8Commas, "812") => rules::flake8_commas::rules::MissingTrailingComma,
(Flake8Commas, "818") => rules::flake8_commas::rules::TrailingCommaOnBareTuple,
(Flake8Commas, "819") => rules::flake8_commas::rules::ProhibitedTrailingComma,
// flake8-no-pep420
(Flake8NoPep420, "001") => rules::flake8_no_pep420::rules::ImplicitNamespacePackage,
// flake8-executable
(Flake8Executable, "001") => rules::flake8_executable::rules::ShebangNotExecutable,
(Flake8Executable, "002") => rules::flake8_executable::rules::ShebangMissingExecutableFile,
(Flake8Executable, "003") => rules::flake8_executable::rules::ShebangMissingPython,
(Flake8Executable, "004") => rules::flake8_executable::rules::ShebangLeadingWhitespace,
(Flake8Executable, "005") => rules::flake8_executable::rules::ShebangNotFirstLine,
// flake8-type-checking
(Flake8TypeChecking, "001") => rules::flake8_type_checking::rules::TypingOnlyFirstPartyImport,
(Flake8TypeChecking, "002") => rules::flake8_type_checking::rules::TypingOnlyThirdPartyImport,
(Flake8TypeChecking, "003") => rules::flake8_type_checking::rules::TypingOnlyStandardLibraryImport,
(Flake8TypeChecking, "004") => rules::flake8_type_checking::rules::RuntimeImportInTypeCheckingBlock,
(Flake8TypeChecking, "005") => rules::flake8_type_checking::rules::EmptyTypeCheckingBlock,
(Flake8TypeChecking, "006") => rules::flake8_type_checking::rules::RuntimeCastValue,
(Flake8TypeChecking, "007") => rules::flake8_type_checking::rules::UnquotedTypeAlias,
(Flake8TypeChecking, "008") => rules::flake8_type_checking::rules::QuotedTypeAlias,
(Flake8TypeChecking, "010") => rules::flake8_type_checking::rules::RuntimeStringUnion,
// tryceratops
(Tryceratops, "002") => rules::tryceratops::rules::RaiseVanillaClass,
(Tryceratops, "003") => rules::tryceratops::rules::RaiseVanillaArgs,
(Tryceratops, "004") => rules::tryceratops::rules::TypeCheckWithoutTypeError,
(Tryceratops, "200") => rules::tryceratops::rules::ReraiseNoCause,
(Tryceratops, "201") => rules::tryceratops::rules::VerboseRaise,
(Tryceratops, "203") => rules::tryceratops::rules::UselessTryExcept,
(Tryceratops, "300") => rules::tryceratops::rules::TryConsiderElse,
(Tryceratops, "301") => rules::tryceratops::rules::RaiseWithinTry,
(Tryceratops, "400") => rules::tryceratops::rules::ErrorInsteadOfException,
(Tryceratops, "401") => rules::tryceratops::rules::VerboseLogMessage,
// flake8-use-pathlib
(Flake8UsePathlib, "100") => rules::flake8_use_pathlib::rules::OsPathAbspath,
(Flake8UsePathlib, "101") => rules::flake8_use_pathlib::rules::OsChmod,
(Flake8UsePathlib, "102") => rules::flake8_use_pathlib::rules::OsMkdir,
(Flake8UsePathlib, "103") => rules::flake8_use_pathlib::rules::OsMakedirs,
(Flake8UsePathlib, "104") => rules::flake8_use_pathlib::rules::OsRename,
(Flake8UsePathlib, "105") => rules::flake8_use_pathlib::rules::OsReplace,
(Flake8UsePathlib, "106") => rules::flake8_use_pathlib::rules::OsRmdir,
(Flake8UsePathlib, "107") => rules::flake8_use_pathlib::rules::OsRemove,
(Flake8UsePathlib, "108") => rules::flake8_use_pathlib::rules::OsUnlink,
(Flake8UsePathlib, "109") => rules::flake8_use_pathlib::rules::OsGetcwd,
(Flake8UsePathlib, "110") => rules::flake8_use_pathlib::rules::OsPathExists,
(Flake8UsePathlib, "111") => rules::flake8_use_pathlib::rules::OsPathExpanduser,
(Flake8UsePathlib, "112") => rules::flake8_use_pathlib::rules::OsPathIsdir,
(Flake8UsePathlib, "113") => rules::flake8_use_pathlib::rules::OsPathIsfile,
(Flake8UsePathlib, "114") => rules::flake8_use_pathlib::rules::OsPathIslink,
(Flake8UsePathlib, "115") => rules::flake8_use_pathlib::rules::OsReadlink,
(Flake8UsePathlib, "116") => rules::flake8_use_pathlib::violations::OsStat,
(Flake8UsePathlib, "117") => rules::flake8_use_pathlib::rules::OsPathIsabs,
(Flake8UsePathlib, "118") => rules::flake8_use_pathlib::violations::OsPathJoin,
(Flake8UsePathlib, "119") => rules::flake8_use_pathlib::rules::OsPathBasename,
(Flake8UsePathlib, "120") => rules::flake8_use_pathlib::rules::OsPathDirname,
(Flake8UsePathlib, "121") => rules::flake8_use_pathlib::rules::OsPathSamefile,
(Flake8UsePathlib, "122") => rules::flake8_use_pathlib::violations::OsPathSplitext,
(Flake8UsePathlib, "123") => rules::flake8_use_pathlib::rules::BuiltinOpen,
(Flake8UsePathlib, "124") => rules::flake8_use_pathlib::violations::PyPath,
(Flake8UsePathlib, "201") => rules::flake8_use_pathlib::rules::PathConstructorCurrentDirectory,
(Flake8UsePathlib, "202") => rules::flake8_use_pathlib::rules::OsPathGetsize,
(Flake8UsePathlib, "202") => rules::flake8_use_pathlib::rules::OsPathGetsize,
(Flake8UsePathlib, "203") => rules::flake8_use_pathlib::rules::OsPathGetatime,
(Flake8UsePathlib, "204") => rules::flake8_use_pathlib::rules::OsPathGetmtime,
(Flake8UsePathlib, "205") => rules::flake8_use_pathlib::rules::OsPathGetctime,
(Flake8UsePathlib, "206") => rules::flake8_use_pathlib::rules::OsSepSplit,
(Flake8UsePathlib, "207") => rules::flake8_use_pathlib::rules::Glob,
(Flake8UsePathlib, "208") => rules::flake8_use_pathlib::violations::OsListdir,
(Flake8UsePathlib, "210") => rules::flake8_use_pathlib::rules::InvalidPathlibWithSuffix,
(Flake8UsePathlib, "211") => rules::flake8_use_pathlib::rules::OsSymlink,
// flake8-logging-format
(Flake8LoggingFormat, "001") => rules::flake8_logging_format::violations::LoggingStringFormat,
(Flake8LoggingFormat, "002") => rules::flake8_logging_format::violations::LoggingPercentFormat,
(Flake8LoggingFormat, "003") => rules::flake8_logging_format::violations::LoggingStringConcat,
(Flake8LoggingFormat, "004") => rules::flake8_logging_format::violations::LoggingFString,
(Flake8LoggingFormat, "010") => rules::flake8_logging_format::violations::LoggingWarn,
(Flake8LoggingFormat, "101") => rules::flake8_logging_format::violations::LoggingExtraAttrClash,
(Flake8LoggingFormat, "201") => rules::flake8_logging_format::violations::LoggingExcInfo,
(Flake8LoggingFormat, "202") => rules::flake8_logging_format::violations::LoggingRedundantExcInfo,
// flake8-raise
(Flake8Raise, "102") => rules::flake8_raise::rules::UnnecessaryParenOnRaiseException,
// flake8-self
(Flake8Self, "001") => rules::flake8_self::rules::PrivateMemberAccess,
// numpy
(Numpy, "001") => rules::numpy::rules::NumpyDeprecatedTypeAlias,
(Numpy, "002") => rules::numpy::rules::NumpyLegacyRandom,
(Numpy, "003") => rules::numpy::rules::NumpyDeprecatedFunction,
(Numpy, "201") => rules::numpy::rules::Numpy2Deprecation,
// fastapi
(FastApi, "001") => rules::fastapi::rules::FastApiRedundantResponseModel,
(FastApi, "002") => rules::fastapi::rules::FastApiNonAnnotatedDependency,
(FastApi, "003") => rules::fastapi::rules::FastApiUnusedPathParameter,
// pydoclint
(Pydoclint, "102") => rules::pydoclint::rules::DocstringExtraneousParameter,
(Pydoclint, "201") => rules::pydoclint::rules::DocstringMissingReturns,
(Pydoclint, "202") => rules::pydoclint::rules::DocstringExtraneousReturns,
(Pydoclint, "402") => rules::pydoclint::rules::DocstringMissingYields,
(Pydoclint, "403") => rules::pydoclint::rules::DocstringExtraneousYields,
(Pydoclint, "501") => rules::pydoclint::rules::DocstringMissingException,
(Pydoclint, "502") => rules::pydoclint::rules::DocstringExtraneousException,
// ruff
(Ruff, "001") => rules::ruff::rules::AmbiguousUnicodeCharacterString,
(Ruff, "002") => rules::ruff::rules::AmbiguousUnicodeCharacterDocstring,
(Ruff, "003") => rules::ruff::rules::AmbiguousUnicodeCharacterComment,
(Ruff, "005") => rules::ruff::rules::CollectionLiteralConcatenation,
(Ruff, "006") => rules::ruff::rules::AsyncioDanglingTask,
(Ruff, "007") => rules::ruff::rules::ZipInsteadOfPairwise,
(Ruff, "008") => rules::ruff::rules::MutableDataclassDefault,
(Ruff, "009") => rules::ruff::rules::FunctionCallInDataclassDefaultArgument,
(Ruff, "010") => rules::ruff::rules::ExplicitFStringTypeConversion,
(Ruff, "011") => rules::ruff::rules::RuffStaticKeyDictComprehension,
(Ruff, "012") => rules::ruff::rules::MutableClassDefault,
(Ruff, "013") => rules::ruff::rules::ImplicitOptional,
(Ruff, "015") => rules::ruff::rules::UnnecessaryIterableAllocationForFirstElement,
(Ruff, "016") => rules::ruff::rules::InvalidIndexType,
(Ruff, "017") => rules::ruff::rules::QuadraticListSummation,
(Ruff, "018") => rules::ruff::rules::AssignmentInAssert,
(Ruff, "019") => rules::ruff::rules::UnnecessaryKeyCheck,
(Ruff, "020") => rules::ruff::rules::NeverUnion,
(Ruff, "021") => rules::ruff::rules::ParenthesizeChainedOperators,
(Ruff, "022") => rules::ruff::rules::UnsortedDunderAll,
(Ruff, "023") => rules::ruff::rules::UnsortedDunderSlots,
(Ruff, "024") => rules::ruff::rules::MutableFromkeysValue,
(Ruff, "026") => rules::ruff::rules::DefaultFactoryKwarg,
(Ruff, "027") => rules::ruff::rules::MissingFStringSyntax,
(Ruff, "028") => rules::ruff::rules::InvalidFormatterSuppressionComment,
(Ruff, "029") => rules::ruff::rules::UnusedAsync,
(Ruff, "030") => rules::ruff::rules::AssertWithPrintMessage,
(Ruff, "031") => rules::ruff::rules::IncorrectlyParenthesizedTupleInSubscript,
(Ruff, "032") => rules::ruff::rules::DecimalFromFloatLiteral,
(Ruff, "033") => rules::ruff::rules::PostInitDefault,
(Ruff, "034") => rules::ruff::rules::UselessIfElse,
(Ruff, "035") => rules::ruff::rules::RuffUnsafeMarkupUse,
(Ruff, "036") => rules::ruff::rules::NoneNotAtEndOfUnion,
(Ruff, "037") => rules::ruff::rules::UnnecessaryEmptyIterableWithinDequeCall,
(Ruff, "038") => rules::ruff::rules::RedundantBoolLiteral,
(Ruff, "039") => rules::ruff::rules::UnrawRePattern,
(Ruff, "040") => rules::ruff::rules::InvalidAssertMessageLiteralArgument,
(Ruff, "041") => rules::ruff::rules::UnnecessaryNestedLiteral,
(Ruff, "043") => rules::ruff::rules::PytestRaisesAmbiguousPattern,
(Ruff, "045") => rules::ruff::rules::ImplicitClassVarInDataclass,
(Ruff, "046") => rules::ruff::rules::UnnecessaryCastToInt,
(Ruff, "047") => rules::ruff::rules::NeedlessElse,
(Ruff, "048") => rules::ruff::rules::MapIntVersionParsing,
(Ruff, "049") => rules::ruff::rules::DataclassEnum,
(Ruff, "051") => rules::ruff::rules::IfKeyInDictDel,
(Ruff, "052") => rules::ruff::rules::UsedDummyVariable,
(Ruff, "053") => rules::ruff::rules::ClassWithMixedTypeVars,
(Ruff, "054") => rules::ruff::rules::IndentedFormFeed,
(Ruff, "055") => rules::ruff::rules::UnnecessaryRegularExpression,
(Ruff, "056") => rules::ruff::rules::FalsyDictGetFallback,
(Ruff, "057") => rules::ruff::rules::UnnecessaryRound,
(Ruff, "058") => rules::ruff::rules::StarmapZip,
(Ruff, "059") => rules::ruff::rules::UnusedUnpackedVariable,
(Ruff, "060") => rules::ruff::rules::InEmptyCollection,
(Ruff, "061") => rules::ruff::rules::LegacyFormPytestRaises,
(Ruff, "063") => rules::ruff::rules::AccessAnnotationsFromClassDict,
(Ruff, "064") => rules::ruff::rules::NonOctalPermissions,
(Ruff, "065") => rules::ruff::rules::LoggingEagerConversion,
(Ruff, "100") => rules::ruff::rules::UnusedNOQA,
(Ruff, "101") => rules::ruff::rules::RedirectedNOQA,
(Ruff, "102") => rules::ruff::rules::InvalidRuleCode,
(Ruff, "200") => rules::ruff::rules::InvalidPyprojectToml,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "900") => rules::ruff::rules::StableTestRule,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "901") => rules::ruff::rules::StableTestRuleSafeFix,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "902") => rules::ruff::rules::StableTestRuleUnsafeFix,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "903") => rules::ruff::rules::StableTestRuleDisplayOnlyFix,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "911") => rules::ruff::rules::PreviewTestRule,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "920") => rules::ruff::rules::DeprecatedTestRule,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "921") => rules::ruff::rules::AnotherDeprecatedTestRule,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "930") => rules::ruff::rules::RemovedTestRule,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "931") => rules::ruff::rules::AnotherRemovedTestRule,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "940") => rules::ruff::rules::RedirectedFromTestRule,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "950") => rules::ruff::rules::RedirectedToTestRule,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "960") => rules::ruff::rules::RedirectedFromPrefixTestRule,
#[cfg(any(feature = "test-rules", test))]
(Ruff, "990") => rules::ruff::rules::PanicyTestRule,
// flake8-django
(Flake8Django, "001") => rules::flake8_django::rules::DjangoNullableModelStringField,
(Flake8Django, "003") => rules::flake8_django::rules::DjangoLocalsInRenderFunction,
(Flake8Django, "006") => rules::flake8_django::rules::DjangoExcludeWithModelForm,
(Flake8Django, "007") => rules::flake8_django::rules::DjangoAllWithModelForm,
(Flake8Django, "008") => rules::flake8_django::rules::DjangoModelWithoutDunderStr,
(Flake8Django, "012") => rules::flake8_django::rules::DjangoUnorderedBodyContentInModel,
(Flake8Django, "013") => rules::flake8_django::rules::DjangoNonLeadingReceiverDecorator,
// flynt
// Reserved: (Flynt, "001") => Rule: :StringConcatenationToFString,
(Flynt, "002") => rules::flynt::rules::StaticJoinToFString,
// flake8-todos
(Flake8Todos, "001") => rules::flake8_todos::rules::InvalidTodoTag,
(Flake8Todos, "002") => rules::flake8_todos::rules::MissingTodoAuthor,
(Flake8Todos, "003") => rules::flake8_todos::rules::MissingTodoLink,
(Flake8Todos, "004") => rules::flake8_todos::rules::MissingTodoColon,
(Flake8Todos, "005") => rules::flake8_todos::rules::MissingTodoDescription,
(Flake8Todos, "006") => rules::flake8_todos::rules::InvalidTodoCapitalization,
(Flake8Todos, "007") => rules::flake8_todos::rules::MissingSpaceAfterTodoColon,
// airflow
(Airflow, "001") => rules::airflow::rules::AirflowVariableNameTaskIdMismatch,
(Airflow, "002") => rules::airflow::rules::AirflowDagNoScheduleArgument,
(Airflow, "301") => rules::airflow::rules::Airflow3Removal,
(Airflow, "302") => rules::airflow::rules::Airflow3MovedToProvider,
(Airflow, "311") => rules::airflow::rules::Airflow3SuggestedUpdate,
(Airflow, "312") => rules::airflow::rules::Airflow3SuggestedToMoveToProvider,
// perflint
(Perflint, "101") => rules::perflint::rules::UnnecessaryListCast,
(Perflint, "102") => rules::perflint::rules::IncorrectDictIterator,
(Perflint, "203") => rules::perflint::rules::TryExceptInLoop,
(Perflint, "401") => rules::perflint::rules::ManualListComprehension,
(Perflint, "402") => rules::perflint::rules::ManualListCopy,
(Perflint, "403") => rules::perflint::rules::ManualDictComprehension,
// flake8-fixme
(Flake8Fixme, "001") => rules::flake8_fixme::rules::LineContainsFixme,
(Flake8Fixme, "002") => rules::flake8_fixme::rules::LineContainsTodo,
(Flake8Fixme, "003") => rules::flake8_fixme::rules::LineContainsXxx,
(Flake8Fixme, "004") => rules::flake8_fixme::rules::LineContainsHack,
// flake8-slots
(Flake8Slots, "000") => rules::flake8_slots::rules::NoSlotsInStrSubclass,
(Flake8Slots, "001") => rules::flake8_slots::rules::NoSlotsInTupleSubclass,
(Flake8Slots, "002") => rules::flake8_slots::rules::NoSlotsInNamedtupleSubclass,
// refurb
(Refurb, "101") => rules::refurb::rules::ReadWholeFile,
(Refurb, "103") => rules::refurb::rules::WriteWholeFile,
(Refurb, "105") => rules::refurb::rules::PrintEmptyString,
(Refurb, "110") => rules::refurb::rules::IfExpInsteadOfOrOperator,
(Refurb, "113") => rules::refurb::rules::RepeatedAppend,
(Refurb, "116") => rules::refurb::rules::FStringNumberFormat,
(Refurb, "118") => rules::refurb::rules::ReimplementedOperator,
(Refurb, "122") => rules::refurb::rules::ForLoopWrites,
(Refurb, "129") => rules::refurb::rules::ReadlinesInFor,
(Refurb, "131") => rules::refurb::rules::DeleteFullSlice,
(Refurb, "132") => rules::refurb::rules::CheckAndRemoveFromSet,
(Refurb, "136") => rules::refurb::rules::IfExprMinMax,
(Refurb, "140") => rules::refurb::rules::ReimplementedStarmap,
(Refurb, "142") => rules::refurb::rules::ForLoopSetMutations,
(Refurb, "145") => rules::refurb::rules::SliceCopy,
(Refurb, "148") => rules::refurb::rules::UnnecessaryEnumerate,
(Refurb, "152") => rules::refurb::rules::MathConstant,
(Refurb, "154") => rules::refurb::rules::RepeatedGlobal,
(Refurb, "156") => rules::refurb::rules::HardcodedStringCharset,
(Refurb, "157") => rules::refurb::rules::VerboseDecimalConstructor,
(Refurb, "161") => rules::refurb::rules::BitCount,
(Refurb, "162") => rules::refurb::rules::FromisoformatReplaceZ,
(Refurb, "163") => rules::refurb::rules::RedundantLogBase,
(Refurb, "164") => rules::refurb::rules::UnnecessaryFromFloat,
(Refurb, "166") => rules::refurb::rules::IntOnSlicedStr,
(Refurb, "167") => rules::refurb::rules::RegexFlagAlias,
(Refurb, "168") => rules::refurb::rules::IsinstanceTypeNone,
(Refurb, "169") => rules::refurb::rules::TypeNoneComparison,
(Refurb, "171") => rules::refurb::rules::SingleItemMembershipTest,
(Refurb, "177") => rules::refurb::rules::ImplicitCwd,
(Refurb, "180") => rules::refurb::rules::MetaClassABCMeta,
(Refurb, "181") => rules::refurb::rules::HashlibDigestHex,
(Refurb, "187") => rules::refurb::rules::ListReverseCopy,
(Refurb, "188") => rules::refurb::rules::SliceToRemovePrefixOrSuffix,
(Refurb, "189") => rules::refurb::rules::SubclassBuiltin,
(Refurb, "192") => rules::refurb::rules::SortedMinMax,
// flake8-logging
(Flake8Logging, "001") => rules::flake8_logging::rules::DirectLoggerInstantiation,
(Flake8Logging, "002") => rules::flake8_logging::rules::InvalidGetLoggerArgument,
(Flake8Logging, "004") => rules::flake8_logging::rules::LogExceptionOutsideExceptHandler,
(Flake8Logging, "007") => rules::flake8_logging::rules::ExceptionWithoutExcInfo,
(Flake8Logging, "009") => rules::flake8_logging::rules::UndocumentedWarn,
(Flake8Logging, "014") => rules::flake8_logging::rules::ExcInfoOutsideExceptHandler,
(Flake8Logging, "015") => rules::flake8_logging::rules::RootLoggerCall,
_ => return None,
})
}
impl std::fmt::Display for Rule {
fn fmt(&self, f: &mut Formatter) -> std::fmt::Result {
f.write_str(self.into())
}
}