Skip to content

Commit

Permalink
Avoid enabling all EM checks at once (#1349)
Browse files Browse the repository at this point in the history
  • Loading branch information
charliermarsh committed Dec 23, 2022
1 parent bc9ed0a commit e290050
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 56 deletions.
12 changes: 3 additions & 9 deletions src/checkers/ast.rs
Expand Up @@ -1067,17 +1067,11 @@ where
}
}
if self.settings.enabled.contains(&CheckCode::EM101)
| self.settings.enabled.contains(&CheckCode::EM102)
| self.settings.enabled.contains(&CheckCode::EM103)
|| self.settings.enabled.contains(&CheckCode::EM102)
|| self.settings.enabled.contains(&CheckCode::EM103)
{
if let Some(exc) = exc {
self.add_checks(
flake8_errmsg::checks::check_string_in_exception(
exc,
self.settings.flake8_errmsg.max_string_length,
)
.into_iter(),
);
flake8_errmsg::plugins::string_in_exception(self, exc);
}
}
}
Expand Down
46 changes: 0 additions & 46 deletions src/flake8_errmsg/checks.rs

This file was deleted.

2 changes: 1 addition & 1 deletion src/flake8_errmsg/mod.rs
@@ -1,4 +1,4 @@
pub mod checks;
pub mod plugins;
pub mod settings;

#[cfg(test)]
Expand Down
52 changes: 52 additions & 0 deletions src/flake8_errmsg/plugins.rs
@@ -0,0 +1,52 @@
use rustpython_ast::{Constant, Expr, ExprKind};

use crate::ast::types::Range;
use crate::checkers::ast::Checker;
use crate::checks::{Check, CheckCode, CheckKind};

/// EM101, EM102, EM103
pub fn string_in_exception(checker: &mut Checker, exc: &Expr) {
if let ExprKind::Call { args, .. } = &exc.node {
if let Some(first) = args.first() {
match &first.node {
// Check for string literals
ExprKind::Constant {
value: Constant::Str(string),
..
} => {
if checker.settings.enabled.contains(&CheckCode::EM101) {
if string.len() > checker.settings.flake8_errmsg.max_string_length {
checker.add_check(Check::new(
CheckKind::RawStringInException,
Range::from_located(first),
));
}
}
}
// Check for f-strings
ExprKind::JoinedStr { .. } => {
if checker.settings.enabled.contains(&CheckCode::EM102) {
checker.add_check(Check::new(
CheckKind::FStringInException,
Range::from_located(first),
));
}
}
// Check for .format() calls
ExprKind::Call { func, .. } => {
if checker.settings.enabled.contains(&CheckCode::EM103) {
if let ExprKind::Attribute { value, attr, .. } = &func.node {
if attr == "format" && matches!(value.node, ExprKind::Constant { .. }) {
checker.add_check(Check::new(
CheckKind::DotFormatInException,
Range::from_located(first),
));
}
}
}
}
_ => {}
}
}
}
}

0 comments on commit e290050

Please sign in to comment.