From 5c70f5044bca795cd2bc91333a2ac366dbe20743 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Wed, 21 Dec 2022 20:05:48 -0500 Subject: [PATCH] Improve debug logging in flake8-to-ruff (#1320) --- Cargo.lock | 2 ++ flake8_to_ruff/Cargo.toml | 2 ++ flake8_to_ruff/src/converter.rs | 16 +++++++++++---- flake8_to_ruff/src/plugin.rs | 36 +++++++++++++++++++++++++++++++-- 4 files changed, 50 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 096ebbd8a2..21deae4c48 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -735,6 +735,8 @@ dependencies = [ "rustc-hash", "serde", "serde_json", + "strum", + "strum_macros", "toml", ] diff --git a/flake8_to_ruff/Cargo.toml b/flake8_to_ruff/Cargo.toml index 5661131df4..d8992262ed 100644 --- a/flake8_to_ruff/Cargo.toml +++ b/flake8_to_ruff/Cargo.toml @@ -16,6 +16,8 @@ ruff = { path = "..", default-features = false } rustc-hash = { version = "1.1.0" } serde = { version = "1.0.147", features = ["derive"] } serde_json = { version = "1.0.87" } +strum = { version = "0.24.1", features = ["strum_macros"] } +strum_macros = { version = "0.24.3" } toml = { version = "0.5.9" } [dev-dependencies] diff --git a/flake8_to_ruff/src/converter.rs b/flake8_to_ruff/src/converter.rs index 10be35fc0e..66ab8303b3 100644 --- a/flake8_to_ruff/src/converter.rs +++ b/flake8_to_ruff/src/converter.rs @@ -61,10 +61,18 @@ pub fn convert( plugin::resolve_select( flake8, &plugins.unwrap_or_else(|| { - plugin::infer_plugins_from_options(flake8) - .into_iter() - .chain(plugin::infer_plugins_from_codes(&referenced_codes)) - .collect() + let from_options = plugin::infer_plugins_from_options(flake8); + if !from_options.is_empty() { + eprintln!("Inferred plugins from settings: {from_options:#?}"); + } + let from_codes = plugin::infer_plugins_from_codes(&referenced_codes); + if !from_codes.is_empty() { + eprintln!( + "Inferred plugins from referenced check codes: {:#?}", + from_codes + ); + } + from_options.into_iter().chain(from_codes).collect() }), ) }); diff --git a/flake8_to_ruff/src/plugin.rs b/flake8_to_ruff/src/plugin.rs index 7f814cf635..0f8bf4b56c 100644 --- a/flake8_to_ruff/src/plugin.rs +++ b/flake8_to_ruff/src/plugin.rs @@ -1,10 +1,11 @@ use std::collections::{BTreeSet, HashMap}; +use std::fmt; use std::str::FromStr; use anyhow::anyhow; use ruff::checks_gen::CheckCodePrefix; -#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq)] +#[derive(Clone, Ord, PartialOrd, Eq, PartialEq)] pub enum Plugin { Flake8Annotations, Flake8Bandit, @@ -42,7 +43,7 @@ impl FromStr for Plugin { "flake8-datetimez" => Ok(Plugin::Flake8Datetimez), "flake8-debugger" => Ok(Plugin::Flake8Debugger), "flake8-docstrings" => Ok(Plugin::Flake8Docstrings), - "flake8-eradicate" => Ok(Plugin::Flake8BlindExcept), + "flake8-eradicate" => Ok(Plugin::Flake8Eradicate), "flake8-errmsg" => Ok(Plugin::Flake8ErrMsg), "flake8-print" => Ok(Plugin::Flake8Print), "flake8-quotes" => Ok(Plugin::Flake8Quotes), @@ -58,6 +59,37 @@ impl FromStr for Plugin { } } +impl fmt::Debug for Plugin { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!( + f, + "{}", + match self { + Plugin::Flake8Annotations => "flake8-annotations", + Plugin::Flake8Bandit => "flake8-bandit", + Plugin::Flake8BlindExcept => "flake8-blind-except", + Plugin::Flake8Bugbear => "flake8-bugbear", + Plugin::Flake8Builtins => "flake8-builtins", + Plugin::Flake8Comprehensions => "flake8-comprehensions", + Plugin::Flake8Datetimez => "flake8-datetimez", + Plugin::Flake8Debugger => "flake8-debugger", + Plugin::Flake8Docstrings => "flake8-docstrings", + Plugin::Flake8Eradicate => "flake8-eradicate", + Plugin::Flake8ErrMsg => "flake8-errmsg", + Plugin::Flake8Print => "flake8-print", + Plugin::Flake8Quotes => "flake8-quotes", + Plugin::Flake8Return => "flake8-return", + Plugin::Flake8Simplify => "flake8-simplify", + Plugin::Flake8TidyImports => "flake8-tidy-imports", + Plugin::McCabe => "mccabe", + Plugin::PandasVet => "pandas-vet", + Plugin::PEP8Naming => "pep8-naming", + Plugin::Pyupgrade => "pyupgrade", + } + ) + } +} + impl Plugin { pub fn default(&self) -> CheckCodePrefix { match self {