Include flake8-bugbear settings in flake8-to-ruff (#712)

This commit is contained in:
Charlie Marsh 2022-11-12 16:46:12 -05:00 committed by GitHub
parent d16c3a1186
commit 3a2e6926d4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 3 deletions

View file

@ -5,7 +5,7 @@ use ruff::checks_gen::CheckCodePrefix;
use ruff::flake8_quotes::settings::Quote; use ruff::flake8_quotes::settings::Quote;
use ruff::settings::options::Options; use ruff::settings::options::Options;
use ruff::settings::pyproject::Pyproject; use ruff::settings::pyproject::Pyproject;
use ruff::{flake8_annotations, flake8_quotes, pep8_naming}; use ruff::{flake8_annotations, flake8_bugbear, flake8_quotes, pep8_naming};
use crate::plugin::Plugin; use crate::plugin::Plugin;
use crate::{parser, plugin}; use crate::{parser, plugin};
@ -69,6 +69,7 @@ pub fn convert(
// Parse each supported option. // Parse each supported option.
let mut options: Options = Default::default(); let mut options: Options = Default::default();
let mut flake8_annotations: flake8_annotations::settings::Options = Default::default(); let mut flake8_annotations: flake8_annotations::settings::Options = Default::default();
let mut flake8_bugbear: flake8_bugbear::settings::Options = Default::default();
let mut flake8_quotes: flake8_quotes::settings::Options = Default::default(); let mut flake8_quotes: flake8_quotes::settings::Options = Default::default();
let mut pep8_naming: pep8_naming::settings::Options = Default::default(); let mut pep8_naming: pep8_naming::settings::Options = Default::default();
for (key, value) in flake8 { for (key, value) in flake8 {
@ -109,6 +110,11 @@ pub fn convert(
Err(e) => eprintln!("Unable to parse '{key}' property: {e}"), Err(e) => eprintln!("Unable to parse '{key}' property: {e}"),
} }
} }
// flake8-bugbear
"extend-immutable-calls" | "extend_immutable_calls" => {
flake8_bugbear.extend_immutable_calls =
Some(parser::parse_strings(value.as_ref()));
}
// flake8-annotations // flake8-annotations
"suppress-none-returning" | "suppress_none_returning" => { "suppress-none-returning" | "suppress_none_returning" => {
match parser::parse_bool(value.as_ref()) { match parser::parse_bool(value.as_ref()) {
@ -179,6 +185,12 @@ pub fn convert(
// Deduplicate and sort. // Deduplicate and sort.
options.select = Some(Vec::from_iter(select)); options.select = Some(Vec::from_iter(select));
options.ignore = Some(Vec::from_iter(ignore)); options.ignore = Some(Vec::from_iter(ignore));
if flake8_annotations != Default::default() {
options.flake8_annotations = Some(flake8_annotations);
}
if flake8_bugbear != Default::default() {
options.flake8_bugbear = Some(flake8_bugbear);
}
if flake8_quotes != Default::default() { if flake8_quotes != Default::default() {
options.flake8_quotes = Some(flake8_quotes); options.flake8_quotes = Some(flake8_quotes);
} }

View file

@ -269,6 +269,10 @@ pub fn infer_plugins_from_options(flake8: &HashMap<String, Option<String>>) -> V
"docstring-convention" | "docstring_convention" => { "docstring-convention" | "docstring_convention" => {
plugins.insert(Plugin::Flake8Docstrings); plugins.insert(Plugin::Flake8Docstrings);
} }
// flake8-bugbear
"extend-immutable-calls" | "extend_immutable_calls" => {
plugins.insert(Plugin::Flake8Bugbear);
}
// flake8-builtins // flake8-builtins
"builtins-ignorelist" | "builtins_ignorelist" => { "builtins-ignorelist" | "builtins_ignorelist" => {
plugins.insert(Plugin::Flake8Builtins); plugins.insert(Plugin::Flake8Builtins);

View file

@ -30,7 +30,7 @@ mod docstrings;
mod flake8_2020; mod flake8_2020;
pub mod flake8_annotations; pub mod flake8_annotations;
pub mod flake8_bandit; pub mod flake8_bandit;
mod flake8_bugbear; pub mod flake8_bugbear;
mod flake8_builtins; mod flake8_builtins;
mod flake8_comprehensions; mod flake8_comprehensions;
mod flake8_print; mod flake8_print;

View file

@ -19,7 +19,6 @@ pub struct Options {
pub fix: Option<bool>, pub fix: Option<bool>,
pub ignore: Option<Vec<CheckCodePrefix>>, pub ignore: Option<Vec<CheckCodePrefix>>,
pub line_length: Option<usize>, pub line_length: Option<usize>,
pub per_file_ignores: Option<BTreeMap<String, Vec<CheckCodePrefix>>>,
pub select: Option<Vec<CheckCodePrefix>>, pub select: Option<Vec<CheckCodePrefix>>,
pub src: Option<Vec<String>>, pub src: Option<Vec<String>>,
pub target_version: Option<PythonVersion>, pub target_version: Option<PythonVersion>,
@ -29,4 +28,6 @@ pub struct Options {
pub flake8_quotes: Option<flake8_quotes::settings::Options>, pub flake8_quotes: Option<flake8_quotes::settings::Options>,
pub isort: Option<isort::settings::Options>, pub isort: Option<isort::settings::Options>,
pub pep8_naming: Option<pep8_naming::settings::Options>, pub pep8_naming: Option<pep8_naming::settings::Options>,
// Tables are required to go last.
pub per_file_ignores: Option<BTreeMap<String, Vec<CheckCodePrefix>>>,
} }