From 78c905617314fcaf04259c31120f679767c67042 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Wed, 4 Jan 2023 00:08:19 +0100 Subject: [PATCH] Add pycodestyle::settings This step is split up into a separate commit so that the following commit has a cleaner diff. --- README.md | 2 ++ flake8_to_ruff/src/converter.rs | 7 +++++++ ruff.schema.json | 15 +++++++++++++++ src/lib_wasm.rs | 3 ++- src/pycodestyle/mod.rs | 1 + src/pycodestyle/settings.rs | 26 ++++++++++++++++++++++++++ src/settings/configuration.rs | 5 ++++- src/settings/mod.rs | 9 ++++++++- src/settings/options.rs | 5 ++++- src/settings/pyproject.rs | 6 ++++++ 10 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 src/pycodestyle/settings.rs diff --git a/README.md b/README.md index c0c3f338984d1..441c2ed6f17cd 100644 --- a/README.md +++ b/README.md @@ -3035,6 +3035,8 @@ staticmethod-decorators = ["staticmethod", "stcmthd"] --- +### `pycodestyle` + ### `pydocstyle` #### [`convention`](#convention) diff --git a/flake8_to_ruff/src/converter.rs b/flake8_to_ruff/src/converter.rs index f563575d6b375..a8c3913d1224c 100644 --- a/flake8_to_ruff/src/converter.rs +++ b/flake8_to_ruff/src/converter.rs @@ -404,6 +404,7 @@ mod tests { isort: None, mccabe: None, pep8_naming: None, + pycodestyle: None, pydocstyle: None, pyupgrade: None, }); @@ -466,6 +467,7 @@ mod tests { isort: None, mccabe: None, pep8_naming: None, + pycodestyle: None, pydocstyle: None, pyupgrade: None, }); @@ -528,6 +530,7 @@ mod tests { isort: None, mccabe: None, pep8_naming: None, + pycodestyle: None, pydocstyle: None, pyupgrade: None, }); @@ -590,6 +593,7 @@ mod tests { isort: None, mccabe: None, pep8_naming: None, + pycodestyle: None, pydocstyle: None, pyupgrade: None, }); @@ -657,6 +661,7 @@ mod tests { isort: None, mccabe: None, pep8_naming: None, + pycodestyle: None, pydocstyle: None, pyupgrade: None, }); @@ -723,6 +728,7 @@ mod tests { isort: None, mccabe: None, pep8_naming: None, + pycodestyle: None, pydocstyle: Some(pydocstyle::settings::Options { convention: Some(Convention::Numpy), }), @@ -793,6 +799,7 @@ mod tests { isort: None, mccabe: None, pep8_naming: None, + pycodestyle: None, pydocstyle: None, pyupgrade: None, }); diff --git a/ruff.schema.json b/ruff.schema.json index e4ab5b8d6d19a..dad7233dc40c4 100644 --- a/ruff.schema.json +++ b/ruff.schema.json @@ -299,6 +299,17 @@ } } }, + "pycodestyle": { + "description": "Options for the `pycodestyle` plugin.", + "anyOf": [ + { + "$ref": "#/definitions/Pycodestyle" + }, + { + "type": "null" + } + ] + }, "pydocstyle": { "description": "Options for the `pydocstyle` plugin.", "anyOf": [ @@ -1497,6 +1508,10 @@ }, "additionalProperties": false }, + "Pycodestyle": { + "type": "object", + "additionalProperties": false + }, "Pydocstyle": { "type": "object", "properties": { diff --git a/src/lib_wasm.rs b/src/lib_wasm.rs index d042cbb26f440..bf9257f926714 100644 --- a/src/lib_wasm.rs +++ b/src/lib_wasm.rs @@ -18,7 +18,7 @@ use crate::source_code_style::SourceCodeStyleDetector; use crate::{ directives, flake8_annotations, flake8_bandit, flake8_bugbear, flake8_errmsg, flake8_import_conventions, flake8_pytest_style, flake8_quotes, flake8_tidy_imports, - flake8_unused_arguments, isort, mccabe, pep8_naming, pydocstyle, pyupgrade, + flake8_unused_arguments, isort, mccabe, pep8_naming, pycodestyle, pydocstyle, pyupgrade, }; const VERSION: &str = env!("CARGO_PKG_VERSION"); @@ -131,6 +131,7 @@ pub fn defaultSettings() -> Result { isort: Some(isort::settings::Settings::default().into()), mccabe: Some(mccabe::settings::Settings::default().into()), pep8_naming: Some(pep8_naming::settings::Settings::default().into()), + pycodestyle: Some(pycodestyle::settings::Settings::default().into()), pydocstyle: Some(pydocstyle::settings::Settings::default().into()), pyupgrade: Some(pyupgrade::settings::Settings::default().into()), })?) diff --git a/src/pycodestyle/mod.rs b/src/pycodestyle/mod.rs index 8027c14f3950e..36faa8b942690 100644 --- a/src/pycodestyle/mod.rs +++ b/src/pycodestyle/mod.rs @@ -1,5 +1,6 @@ pub mod checks; pub mod plugins; +pub mod settings; #[cfg(test)] mod tests { diff --git a/src/pycodestyle/settings.rs b/src/pycodestyle/settings.rs new file mode 100644 index 0000000000000..ed37731d8814d --- /dev/null +++ b/src/pycodestyle/settings.rs @@ -0,0 +1,26 @@ +//! Settings for the `pycodestyle` plugin. + +use ruff_macros::ConfigurationOptions; +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; + +#[derive( + Debug, PartialEq, Eq, Serialize, Deserialize, Default, ConfigurationOptions, JsonSchema, +)] +#[serde(deny_unknown_fields, rename_all = "kebab-case", rename = "Pycodestyle")] +pub struct Options {} + +#[derive(Debug, Default, Hash)] +pub struct Settings {} + +impl From for Settings { + fn from(options: Options) -> Self { + Self {} + } +} + +impl From for Options { + fn from(settings: Settings) -> Self { + Self {} + } +} diff --git a/src/settings/configuration.rs b/src/settings/configuration.rs index f9faa0213d58f..e6464b3a79796 100644 --- a/src/settings/configuration.rs +++ b/src/settings/configuration.rs @@ -22,7 +22,7 @@ use crate::settings::types::{ use crate::{ flake8_annotations, flake8_bandit, flake8_bugbear, flake8_errmsg, flake8_import_conventions, flake8_pytest_style, flake8_quotes, flake8_tidy_imports, flake8_unused_arguments, fs, isort, - mccabe, pep8_naming, pydocstyle, pyupgrade, + mccabe, pep8_naming, pycodestyle, pydocstyle, pyupgrade, }; #[derive(Debug, Default)] @@ -67,6 +67,7 @@ pub struct Configuration { pub isort: Option, pub mccabe: Option, pub pep8_naming: Option, + pub pycodestyle: Option, pub pydocstyle: Option, pub pyupgrade: Option, } @@ -166,6 +167,7 @@ impl Configuration { isort: options.isort, mccabe: options.mccabe, pep8_naming: options.pep8_naming, + pycodestyle: options.pycodestyle, pydocstyle: options.pydocstyle, pyupgrade: options.pyupgrade, }) @@ -232,6 +234,7 @@ impl Configuration { isort: self.isort.or(config.isort), mccabe: self.mccabe.or(config.mccabe), pep8_naming: self.pep8_naming.or(config.pep8_naming), + pycodestyle: self.pycodestyle.or(config.pycodestyle), pydocstyle: self.pydocstyle.or(config.pydocstyle), pyupgrade: self.pyupgrade.or(config.pyupgrade), } diff --git a/src/settings/mod.rs b/src/settings/mod.rs index 6e81554370b87..f44e0f4c66405 100644 --- a/src/settings/mod.rs +++ b/src/settings/mod.rs @@ -26,7 +26,7 @@ use crate::settings::types::{ use crate::{ flake8_annotations, flake8_bandit, flake8_bugbear, flake8_errmsg, flake8_import_conventions, flake8_pytest_style, flake8_quotes, flake8_tidy_imports, flake8_unused_arguments, isort, - mccabe, one_time_warning, pep8_naming, pydocstyle, pyupgrade, + mccabe, one_time_warning, pep8_naming, pycodestyle, pydocstyle, pyupgrade, }; pub mod configuration; @@ -75,6 +75,7 @@ pub struct Settings { pub isort: isort::settings::Settings, pub mccabe: mccabe::settings::Settings, pub pep8_naming: pep8_naming::settings::Settings, + pub pycodestyle: pycodestyle::settings::Settings, pub pydocstyle: pydocstyle::settings::Settings, pub pyupgrade: pyupgrade::settings::Settings, } @@ -228,6 +229,10 @@ impl Settings { .pep8_naming .map(std::convert::Into::into) .unwrap_or_default(), + pycodestyle: config + .pycodestyle + .map(std::convert::Into::into) + .unwrap_or_default(), pydocstyle: config .pydocstyle .map(std::convert::Into::into) @@ -275,6 +280,7 @@ impl Settings { isort: isort::settings::Settings::default(), mccabe: mccabe::settings::Settings::default(), pep8_naming: pep8_naming::settings::Settings::default(), + pycodestyle: pycodestyle::settings::Settings::default(), pydocstyle: pydocstyle::settings::Settings::default(), pyupgrade: pyupgrade::settings::Settings::default(), } @@ -316,6 +322,7 @@ impl Settings { isort: isort::settings::Settings::default(), mccabe: mccabe::settings::Settings::default(), pep8_naming: pep8_naming::settings::Settings::default(), + pycodestyle: pycodestyle::settings::Settings::default(), pydocstyle: pydocstyle::settings::Settings::default(), pyupgrade: pyupgrade::settings::Settings::default(), } diff --git a/src/settings/options.rs b/src/settings/options.rs index 330bbb90ae5fe..91b73f1e4d9b1 100644 --- a/src/settings/options.rs +++ b/src/settings/options.rs @@ -10,7 +10,7 @@ use crate::settings::types::{PythonVersion, SerializationFormat, Version}; use crate::{ flake8_annotations, flake8_bandit, flake8_bugbear, flake8_errmsg, flake8_import_conventions, flake8_pytest_style, flake8_quotes, flake8_tidy_imports, flake8_unused_arguments, isort, - mccabe, pep8_naming, pydocstyle, pyupgrade, + mccabe, pep8_naming, pycodestyle, pydocstyle, pyupgrade, }; #[derive( @@ -394,6 +394,9 @@ pub struct Options { /// Options for the `pep8-naming` plugin. pub pep8_naming: Option, #[option_group] + /// Options for the `pycodestyle` plugin. + pub pycodestyle: Option, + #[option_group] /// Options for the `pydocstyle` plugin. pub pydocstyle: Option, #[option_group] diff --git a/src/settings/pyproject.rs b/src/settings/pyproject.rs index cc7cfe9dc8ed7..d6c0b70a4693c 100644 --- a/src/settings/pyproject.rs +++ b/src/settings/pyproject.rs @@ -202,6 +202,7 @@ mod tests { isort: None, mccabe: None, pep8_naming: None, + pycodestyle: None, pydocstyle: None, pyupgrade: None, }) @@ -258,6 +259,7 @@ line-length = 79 isort: None, mccabe: None, pep8_naming: None, + pycodestyle: None, pydocstyle: None, pyupgrade: None, }) @@ -314,6 +316,7 @@ exclude = ["foo.py"] isort: None, mccabe: None, pep8_naming: None, + pycodestyle: None, pydocstyle: None, pyupgrade: None, }) @@ -370,6 +373,7 @@ select = ["E501"] isort: None, mccabe: None, pep8_naming: None, + pycodestyle: None, pydocstyle: None, pyupgrade: None, }) @@ -427,6 +431,7 @@ ignore = ["E501"] isort: None, mccabe: None, pep8_naming: None, + pycodestyle: None, pydocstyle: None, pyupgrade: None, }) @@ -604,6 +609,7 @@ other-attribute = 1 ]), staticmethod_decorators: Some(vec!["staticmethod".to_string()]), }), + pycodestyle: None, pydocstyle: None, pyupgrade: None, }