mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-03 07:04:53 +00:00
Use more consistent Option in pyproject settings (#530)
This commit is contained in:
parent
05867ef260
commit
621db96e7f
4 changed files with 71 additions and 72 deletions
|
@ -16,38 +16,40 @@ pub fn convert(config: HashMap<String, HashMap<String, Option<String>>>) -> Resu
|
||||||
// Parse each supported option.
|
// Parse each supported option.
|
||||||
let mut options: Options = Default::default();
|
let mut options: Options = Default::default();
|
||||||
for (key, value) in flake8 {
|
for (key, value) in flake8 {
|
||||||
|
if let Some(value) = value {
|
||||||
match key.as_str() {
|
match key.as_str() {
|
||||||
"line-length" | "line_length" => match value.clone().unwrap().parse::<usize>() {
|
"line-length" | "line_length" => match value.clone().parse::<usize>() {
|
||||||
Ok(line_length) => options.line_length = Some(line_length),
|
Ok(line_length) => options.line_length = Some(line_length),
|
||||||
Err(e) => eprintln!("Unable to parse '{key}' property: {e}"),
|
Err(e) => eprintln!("Unable to parse '{key}' property: {e}"),
|
||||||
},
|
},
|
||||||
"select" => {
|
"select" => {
|
||||||
options.select = Some(parser::parse_prefix_codes(value.as_ref().unwrap()));
|
options.select = Some(parser::parse_prefix_codes(value.as_ref()));
|
||||||
}
|
}
|
||||||
"extend-select" | "extend_select" => {
|
"extend-select" | "extend_select" => {
|
||||||
options.extend_select = parser::parse_prefix_codes(value.as_ref().unwrap());
|
options.extend_select = Some(parser::parse_prefix_codes(value.as_ref()));
|
||||||
}
|
}
|
||||||
"ignore" => {
|
"ignore" => {
|
||||||
options.ignore = parser::parse_prefix_codes(value.as_ref().unwrap());
|
options.ignore = Some(parser::parse_prefix_codes(value.as_ref()));
|
||||||
}
|
}
|
||||||
"extend-ignore" | "extend_ignore" => {
|
"extend-ignore" | "extend_ignore" => {
|
||||||
options.extend_ignore = parser::parse_prefix_codes(value.as_ref().unwrap());
|
options.extend_ignore = Some(parser::parse_prefix_codes(value.as_ref()));
|
||||||
}
|
}
|
||||||
"exclude" => {
|
"exclude" => {
|
||||||
options.exclude = Some(parser::parse_strings(value.as_ref().unwrap()));
|
options.exclude = Some(parser::parse_strings(value.as_ref()));
|
||||||
}
|
}
|
||||||
"extend-exclude" | "extend_exclude" => {
|
"extend-exclude" | "extend_exclude" => {
|
||||||
options.extend_exclude = parser::parse_strings(value.as_ref().unwrap());
|
options.extend_exclude = Some(parser::parse_strings(value.as_ref()));
|
||||||
}
|
}
|
||||||
"per-file-ignores" | "per_file_ignores" => {
|
"per-file-ignores" | "per_file_ignores" => {
|
||||||
match parser::parse_files_to_codes_mapping(value.as_ref().unwrap()) {
|
match parser::parse_files_to_codes_mapping(value.as_ref()) {
|
||||||
Ok(per_file_ignores) => options.per_file_ignores = per_file_ignores,
|
Ok(per_file_ignores) => options.per_file_ignores = Some(per_file_ignores),
|
||||||
Err(e) => eprintln!("Unable to parse '{key}' property: {e}"),
|
Err(e) => eprintln!("Unable to parse '{key}' property: {e}"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => eprintln!("Skipping unsupported property: {key}"),
|
_ => eprintln!("Skipping unsupported property: {key}"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Create the pyproject.toml.
|
// Create the pyproject.toml.
|
||||||
Ok(Pyproject::new(options))
|
Ok(Pyproject::new(options))
|
||||||
|
|
|
@ -80,18 +80,20 @@ impl Configuration {
|
||||||
.unwrap_or_else(|| DEFAULT_EXCLUDE.clone()),
|
.unwrap_or_else(|| DEFAULT_EXCLUDE.clone()),
|
||||||
extend_exclude: options
|
extend_exclude: options
|
||||||
.extend_exclude
|
.extend_exclude
|
||||||
|
.unwrap_or_default()
|
||||||
.iter()
|
.iter()
|
||||||
.map(|path| FilePattern::from_user(path, project_root))
|
.map(|path| FilePattern::from_user(path, project_root))
|
||||||
.collect(),
|
.collect(),
|
||||||
extend_ignore: options.extend_ignore,
|
extend_ignore: options.extend_ignore.unwrap_or_default(),
|
||||||
select: options
|
select: options
|
||||||
.select
|
.select
|
||||||
.unwrap_or_else(|| vec![CheckCodePrefix::E, CheckCodePrefix::F]),
|
.unwrap_or_else(|| vec![CheckCodePrefix::E, CheckCodePrefix::F]),
|
||||||
extend_select: options.extend_select,
|
extend_select: options.extend_select.unwrap_or_default(),
|
||||||
ignore: options.ignore,
|
ignore: options.ignore.unwrap_or_default(),
|
||||||
line_length: options.line_length.unwrap_or(88),
|
line_length: options.line_length.unwrap_or(88),
|
||||||
per_file_ignores: options
|
per_file_ignores: options
|
||||||
.per_file_ignores
|
.per_file_ignores
|
||||||
|
.unwrap_or_default()
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|pair| PerFileIgnore::new(pair, project_root))
|
.map(|pair| PerFileIgnore::new(pair, project_root))
|
||||||
.collect(),
|
.collect(),
|
||||||
|
|
|
@ -11,17 +11,12 @@ use crate::{flake8_quotes, pep8_naming};
|
||||||
pub struct Options {
|
pub struct Options {
|
||||||
pub line_length: Option<usize>,
|
pub line_length: Option<usize>,
|
||||||
pub exclude: Option<Vec<String>>,
|
pub exclude: Option<Vec<String>>,
|
||||||
#[serde(default)]
|
pub extend_exclude: Option<Vec<String>>,
|
||||||
pub extend_exclude: Vec<String>,
|
|
||||||
pub select: Option<Vec<CheckCodePrefix>>,
|
pub select: Option<Vec<CheckCodePrefix>>,
|
||||||
#[serde(default)]
|
pub extend_select: Option<Vec<CheckCodePrefix>>,
|
||||||
pub extend_select: Vec<CheckCodePrefix>,
|
pub ignore: Option<Vec<CheckCodePrefix>>,
|
||||||
#[serde(default)]
|
pub extend_ignore: Option<Vec<CheckCodePrefix>>,
|
||||||
pub ignore: Vec<CheckCodePrefix>,
|
pub per_file_ignores: Option<Vec<StrCheckCodePair>>,
|
||||||
#[serde(default)]
|
|
||||||
pub extend_ignore: Vec<CheckCodePrefix>,
|
|
||||||
#[serde(default)]
|
|
||||||
pub per_file_ignores: Vec<StrCheckCodePair>,
|
|
||||||
pub dummy_variable_rgx: Option<String>,
|
pub dummy_variable_rgx: Option<String>,
|
||||||
pub target_version: Option<PythonVersion>,
|
pub target_version: Option<PythonVersion>,
|
||||||
// Plugins
|
// Plugins
|
||||||
|
|
|
@ -134,12 +134,12 @@ mod tests {
|
||||||
ruff: Some(Options {
|
ruff: Some(Options {
|
||||||
line_length: None,
|
line_length: None,
|
||||||
exclude: None,
|
exclude: None,
|
||||||
extend_exclude: vec![],
|
extend_exclude: None,
|
||||||
select: None,
|
select: None,
|
||||||
extend_select: vec![],
|
extend_select: None,
|
||||||
ignore: vec![],
|
ignore: None,
|
||||||
extend_ignore: vec![],
|
extend_ignore: None,
|
||||||
per_file_ignores: vec![],
|
per_file_ignores: None,
|
||||||
dummy_variable_rgx: None,
|
dummy_variable_rgx: None,
|
||||||
target_version: None,
|
target_version: None,
|
||||||
flake8_quotes: None,
|
flake8_quotes: None,
|
||||||
|
@ -161,12 +161,12 @@ line-length = 79
|
||||||
ruff: Some(Options {
|
ruff: Some(Options {
|
||||||
line_length: Some(79),
|
line_length: Some(79),
|
||||||
exclude: None,
|
exclude: None,
|
||||||
extend_exclude: vec![],
|
extend_exclude: None,
|
||||||
select: None,
|
select: None,
|
||||||
extend_select: vec![],
|
extend_select: None,
|
||||||
ignore: vec![],
|
ignore: None,
|
||||||
extend_ignore: vec![],
|
extend_ignore: None,
|
||||||
per_file_ignores: vec![],
|
per_file_ignores: None,
|
||||||
dummy_variable_rgx: None,
|
dummy_variable_rgx: None,
|
||||||
target_version: None,
|
target_version: None,
|
||||||
flake8_quotes: None,
|
flake8_quotes: None,
|
||||||
|
@ -188,12 +188,12 @@ exclude = ["foo.py"]
|
||||||
ruff: Some(Options {
|
ruff: Some(Options {
|
||||||
line_length: None,
|
line_length: None,
|
||||||
exclude: Some(vec!["foo.py".to_string()]),
|
exclude: Some(vec!["foo.py".to_string()]),
|
||||||
extend_exclude: vec![],
|
extend_exclude: None,
|
||||||
select: None,
|
select: None,
|
||||||
extend_select: vec![],
|
extend_select: None,
|
||||||
ignore: vec![],
|
ignore: None,
|
||||||
extend_ignore: vec![],
|
extend_ignore: None,
|
||||||
per_file_ignores: vec![],
|
per_file_ignores: None,
|
||||||
dummy_variable_rgx: None,
|
dummy_variable_rgx: None,
|
||||||
target_version: None,
|
target_version: None,
|
||||||
flake8_quotes: None,
|
flake8_quotes: None,
|
||||||
|
@ -215,12 +215,12 @@ select = ["E501"]
|
||||||
ruff: Some(Options {
|
ruff: Some(Options {
|
||||||
line_length: None,
|
line_length: None,
|
||||||
exclude: None,
|
exclude: None,
|
||||||
extend_exclude: vec![],
|
extend_exclude: None,
|
||||||
select: Some(vec![CheckCodePrefix::E501]),
|
select: Some(vec![CheckCodePrefix::E501]),
|
||||||
extend_select: vec![],
|
extend_select: None,
|
||||||
ignore: vec![],
|
ignore: None,
|
||||||
extend_ignore: vec![],
|
extend_ignore: None,
|
||||||
per_file_ignores: vec![],
|
per_file_ignores: None,
|
||||||
dummy_variable_rgx: None,
|
dummy_variable_rgx: None,
|
||||||
target_version: None,
|
target_version: None,
|
||||||
flake8_quotes: None,
|
flake8_quotes: None,
|
||||||
|
@ -243,12 +243,12 @@ ignore = ["E501"]
|
||||||
ruff: Some(Options {
|
ruff: Some(Options {
|
||||||
line_length: None,
|
line_length: None,
|
||||||
exclude: None,
|
exclude: None,
|
||||||
extend_exclude: vec![],
|
extend_exclude: None,
|
||||||
select: None,
|
select: None,
|
||||||
extend_select: vec![CheckCodePrefix::M001],
|
extend_select: Some(vec![CheckCodePrefix::M001]),
|
||||||
ignore: vec![CheckCodePrefix::E501],
|
ignore: Some(vec![CheckCodePrefix::E501]),
|
||||||
extend_ignore: vec![],
|
extend_ignore: None,
|
||||||
per_file_ignores: vec![],
|
per_file_ignores: None,
|
||||||
dummy_variable_rgx: None,
|
dummy_variable_rgx: None,
|
||||||
target_version: None,
|
target_version: None,
|
||||||
flake8_quotes: None,
|
flake8_quotes: None,
|
||||||
|
@ -310,19 +310,19 @@ other-attribute = 1
|
||||||
Options {
|
Options {
|
||||||
line_length: Some(88),
|
line_length: Some(88),
|
||||||
exclude: None,
|
exclude: None,
|
||||||
extend_exclude: vec![
|
extend_exclude: Some(vec![
|
||||||
"excluded.py".to_string(),
|
"excluded.py".to_string(),
|
||||||
"migrations".to_string(),
|
"migrations".to_string(),
|
||||||
"directory/also_excluded.py".to_string(),
|
"directory/also_excluded.py".to_string(),
|
||||||
],
|
]),
|
||||||
select: None,
|
select: None,
|
||||||
extend_select: vec![],
|
extend_select: None,
|
||||||
ignore: vec![],
|
ignore: None,
|
||||||
extend_ignore: vec![],
|
extend_ignore: None,
|
||||||
per_file_ignores: vec![StrCheckCodePair {
|
per_file_ignores: Some(vec![StrCheckCodePair {
|
||||||
pattern: "__init__.py".to_string(),
|
pattern: "__init__.py".to_string(),
|
||||||
code: CheckCodePrefix::F401
|
code: CheckCodePrefix::F401
|
||||||
}],
|
}]),
|
||||||
dummy_variable_rgx: None,
|
dummy_variable_rgx: None,
|
||||||
target_version: None,
|
target_version: None,
|
||||||
flake8_quotes: Some(flake8_quotes::settings::Options {
|
flake8_quotes: Some(flake8_quotes::settings::Options {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue