[Ruff 0.5] Stabilise 11 FURB rules (#12043)

This commit is contained in:
Alex Waygood 2024-06-26 13:24:51 +01:00 committed by Micha Reiser
parent c7b2f2b788
commit bd845812c7
5 changed files with 25 additions and 32 deletions

View file

@ -1014,15 +1014,15 @@ pub fn code_to_rule(linter: Linter, code: &str) -> Option<(RuleGroup, Rule)> {
// refurb // refurb
(Refurb, "101") => (RuleGroup::Preview, rules::refurb::rules::ReadWholeFile), (Refurb, "101") => (RuleGroup::Preview, rules::refurb::rules::ReadWholeFile),
(Refurb, "103") => (RuleGroup::Preview, rules::refurb::rules::WriteWholeFile), (Refurb, "103") => (RuleGroup::Preview, rules::refurb::rules::WriteWholeFile),
(Refurb, "105") => (RuleGroup::Preview, rules::refurb::rules::PrintEmptyString), (Refurb, "105") => (RuleGroup::Stable, rules::refurb::rules::PrintEmptyString),
(Refurb, "110") => (RuleGroup::Preview, rules::refurb::rules::IfExpInsteadOfOrOperator), (Refurb, "110") => (RuleGroup::Preview, rules::refurb::rules::IfExpInsteadOfOrOperator),
(Refurb, "113") => (RuleGroup::Preview, rules::refurb::rules::RepeatedAppend), (Refurb, "113") => (RuleGroup::Preview, rules::refurb::rules::RepeatedAppend),
(Refurb, "116") => (RuleGroup::Preview, rules::refurb::rules::FStringNumberFormat), (Refurb, "116") => (RuleGroup::Preview, rules::refurb::rules::FStringNumberFormat),
(Refurb, "118") => (RuleGroup::Preview, rules::refurb::rules::ReimplementedOperator), (Refurb, "118") => (RuleGroup::Preview, rules::refurb::rules::ReimplementedOperator),
(Refurb, "129") => (RuleGroup::Preview, rules::refurb::rules::ReadlinesInFor), (Refurb, "129") => (RuleGroup::Stable, rules::refurb::rules::ReadlinesInFor),
(Refurb, "131") => (RuleGroup::Preview, rules::refurb::rules::DeleteFullSlice), (Refurb, "131") => (RuleGroup::Preview, rules::refurb::rules::DeleteFullSlice),
(Refurb, "132") => (RuleGroup::Preview, rules::refurb::rules::CheckAndRemoveFromSet), (Refurb, "132") => (RuleGroup::Preview, rules::refurb::rules::CheckAndRemoveFromSet),
(Refurb, "136") => (RuleGroup::Preview, rules::refurb::rules::IfExprMinMax), (Refurb, "136") => (RuleGroup::Stable, rules::refurb::rules::IfExprMinMax),
(Refurb, "140") => (RuleGroup::Preview, rules::refurb::rules::ReimplementedStarmap), (Refurb, "140") => (RuleGroup::Preview, rules::refurb::rules::ReimplementedStarmap),
(Refurb, "142") => (RuleGroup::Preview, rules::refurb::rules::ForLoopSetMutations), (Refurb, "142") => (RuleGroup::Preview, rules::refurb::rules::ForLoopSetMutations),
(Refurb, "145") => (RuleGroup::Preview, rules::refurb::rules::SliceCopy), (Refurb, "145") => (RuleGroup::Preview, rules::refurb::rules::SliceCopy),
@ -1030,18 +1030,18 @@ pub fn code_to_rule(linter: Linter, code: &str) -> Option<(RuleGroup, Rule)> {
(Refurb, "152") => (RuleGroup::Preview, rules::refurb::rules::MathConstant), (Refurb, "152") => (RuleGroup::Preview, rules::refurb::rules::MathConstant),
(Refurb, "154") => (RuleGroup::Preview, rules::refurb::rules::RepeatedGlobal), (Refurb, "154") => (RuleGroup::Preview, rules::refurb::rules::RepeatedGlobal),
(Refurb, "157") => (RuleGroup::Preview, rules::refurb::rules::VerboseDecimalConstructor), (Refurb, "157") => (RuleGroup::Preview, rules::refurb::rules::VerboseDecimalConstructor),
(Refurb, "161") => (RuleGroup::Preview, rules::refurb::rules::BitCount), (Refurb, "161") => (RuleGroup::Stable, rules::refurb::rules::BitCount),
(Refurb, "163") => (RuleGroup::Preview, rules::refurb::rules::RedundantLogBase), (Refurb, "163") => (RuleGroup::Stable, rules::refurb::rules::RedundantLogBase),
(Refurb, "164") => (RuleGroup::Preview, rules::refurb::rules::UnnecessaryFromFloat), (Refurb, "164") => (RuleGroup::Preview, rules::refurb::rules::UnnecessaryFromFloat),
(Refurb, "166") => (RuleGroup::Preview, rules::refurb::rules::IntOnSlicedStr), (Refurb, "166") => (RuleGroup::Preview, rules::refurb::rules::IntOnSlicedStr),
(Refurb, "167") => (RuleGroup::Preview, rules::refurb::rules::RegexFlagAlias), (Refurb, "167") => (RuleGroup::Stable, rules::refurb::rules::RegexFlagAlias),
(Refurb, "168") => (RuleGroup::Preview, rules::refurb::rules::IsinstanceTypeNone), (Refurb, "168") => (RuleGroup::Stable, rules::refurb::rules::IsinstanceTypeNone),
(Refurb, "169") => (RuleGroup::Preview, rules::refurb::rules::TypeNoneComparison), (Refurb, "169") => (RuleGroup::Stable, rules::refurb::rules::TypeNoneComparison),
(Refurb, "171") => (RuleGroup::Preview, rules::refurb::rules::SingleItemMembershipTest), (Refurb, "171") => (RuleGroup::Preview, rules::refurb::rules::SingleItemMembershipTest),
(Refurb, "177") => (RuleGroup::Preview, rules::refurb::rules::ImplicitCwd), (Refurb, "177") => (RuleGroup::Stable, rules::refurb::rules::ImplicitCwd),
(Refurb, "180") => (RuleGroup::Preview, rules::refurb::rules::MetaClassABCMeta), (Refurb, "180") => (RuleGroup::Preview, rules::refurb::rules::MetaClassABCMeta),
(Refurb, "181") => (RuleGroup::Preview, rules::refurb::rules::HashlibDigestHex), (Refurb, "181") => (RuleGroup::Stable, rules::refurb::rules::HashlibDigestHex),
(Refurb, "187") => (RuleGroup::Preview, rules::refurb::rules::ListReverseCopy), (Refurb, "187") => (RuleGroup::Stable, rules::refurb::rules::ListReverseCopy),
(Refurb, "192") => (RuleGroup::Preview, rules::refurb::rules::SortedMinMax), (Refurb, "192") => (RuleGroup::Preview, rules::refurb::rules::SortedMinMax),
// flake8-logging // flake8-logging

View file

@ -156,14 +156,16 @@ enum MinMax {
} }
impl MinMax { impl MinMax {
fn reverse(self) -> Self { #[must_use]
const fn reverse(self) -> Self {
match self { match self {
Self::Min => Self::Max, Self::Min => Self::Max,
Self::Max => Self::Min, Self::Max => Self::Min,
} }
} }
fn as_str(self) -> &'static str { #[must_use]
const fn as_str(self) -> &'static str {
match self { match self {
Self::Min => "min", Self::Min => "min",
Self::Max => "max", Self::Max => "max",

View file

@ -77,7 +77,6 @@ pub(crate) fn redundant_log_base(checker: &mut Checker, call: &ast::ExprCall) {
if !checker if !checker
.semantic() .semantic()
.resolve_qualified_name(&call.func) .resolve_qualified_name(&call.func)
.as_ref()
.is_some_and(|qualified_name| matches!(qualified_name.segments(), ["math", "log"])) .is_some_and(|qualified_name| matches!(qualified_name.segments(), ["math", "log"]))
{ {
return; return;
@ -90,7 +89,6 @@ pub(crate) fn redundant_log_base(checker: &mut Checker, call: &ast::ExprCall) {
} else if checker } else if checker
.semantic() .semantic()
.resolve_qualified_name(base) .resolve_qualified_name(base)
.as_ref()
.is_some_and(|qualified_name| matches!(qualified_name.segments(), ["math", "e"])) .is_some_and(|qualified_name| matches!(qualified_name.segments(), ["math", "e"]))
{ {
Base::E Base::E

View file

@ -34,20 +34,19 @@ use crate::importer::ImportRequest;
/// ///
#[violation] #[violation]
pub struct RegexFlagAlias { pub struct RegexFlagAlias {
alias: &'static str, flag: RegexFlag,
full_name: &'static str,
} }
impl AlwaysFixableViolation for RegexFlagAlias { impl AlwaysFixableViolation for RegexFlagAlias {
#[derive_message_formats] #[derive_message_formats]
fn message(&self) -> String { fn message(&self) -> String {
let RegexFlagAlias { alias, .. } = self; let RegexFlagAlias { flag } = self;
format!("Use of regular expression alias `re.{alias}`") format!("Use of regular expression alias `re.{}`", flag.alias())
} }
fn fix_title(&self) -> String { fn fix_title(&self) -> String {
let RegexFlagAlias { full_name, .. } = self; let RegexFlagAlias { flag } = self;
format!("Replace with `re.{full_name}`") format!("Replace with `re.{}`", flag.full_name())
} }
} }
@ -75,13 +74,7 @@ pub(crate) fn regex_flag_alias(checker: &mut Checker, expr: &Expr) {
return; return;
}; };
let mut diagnostic = Diagnostic::new( let mut diagnostic = Diagnostic::new(RegexFlagAlias { flag }, expr.range());
RegexFlagAlias {
alias: flag.alias(),
full_name: flag.full_name(),
},
expr.range(),
);
diagnostic.try_set_fix(|| { diagnostic.try_set_fix(|| {
let (edit, binding) = checker.importer().get_or_import_symbol( let (edit, binding) = checker.importer().get_or_import_symbol(
&ImportRequest::import("re", flag.full_name()), &ImportRequest::import("re", flag.full_name()),
@ -109,7 +102,8 @@ enum RegexFlag {
} }
impl RegexFlag { impl RegexFlag {
fn alias(self) -> &'static str { #[must_use]
const fn alias(self) -> &'static str {
match self { match self {
Self::Ascii => "A", Self::Ascii => "A",
Self::IgnoreCase => "I", Self::IgnoreCase => "I",
@ -122,7 +116,8 @@ impl RegexFlag {
} }
} }
fn full_name(self) -> &'static str { #[must_use]
const fn full_name(self) -> &'static str {
match self { match self {
Self::Ascii => "ASCII", Self::Ascii => "ASCII",
Self::IgnoreCase => "IGNORECASE", Self::IgnoreCase => "IGNORECASE",

View file

@ -1484,8 +1484,6 @@ mod tests {
use crate::options::PydocstyleOptions; use crate::options::PydocstyleOptions;
const PREVIEW_RULES: &[Rule] = &[ const PREVIEW_RULES: &[Rule] = &[
Rule::IsinstanceTypeNone,
Rule::IfExprMinMax,
Rule::ReimplementedStarmap, Rule::ReimplementedStarmap,
Rule::SliceCopy, Rule::SliceCopy,
Rule::TooManyPublicMethods, Rule::TooManyPublicMethods,