mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-04 18:58:04 +00:00
[pydoclint
] Allow ignoring one line docstrings for DOC
rules (#13302)
## Summary Add a setting to allow ignoring one line docstrings for the pydoclint rules. Resolves #13086 Part of #12434 ## Test Plan Run tests with setting enabled. --------- Co-authored-by: dylwil3 <dylwil3@gmail.com>
This commit is contained in:
parent
177bf72598
commit
e84c82424d
10 changed files with 407 additions and 3 deletions
|
@ -49,7 +49,7 @@ use crate::options::{
|
|||
Flake8QuotesOptions, Flake8SelfOptions, Flake8TidyImportsOptions, Flake8TypeCheckingOptions,
|
||||
Flake8UnusedArgumentsOptions, FormatOptions, IsortOptions, LintCommonOptions, LintOptions,
|
||||
McCabeOptions, Options, Pep8NamingOptions, PyUpgradeOptions, PycodestyleOptions,
|
||||
PydocstyleOptions, PyflakesOptions, PylintOptions, RuffOptions,
|
||||
PydoclintOptions, PydocstyleOptions, PyflakesOptions, PylintOptions, RuffOptions,
|
||||
};
|
||||
use crate::settings::{
|
||||
FileResolverSettings, FormatterSettings, LineEnding, Settings, EXCLUDE, INCLUDE,
|
||||
|
@ -404,6 +404,10 @@ impl Configuration {
|
|||
..pycodestyle::settings::Settings::default()
|
||||
}
|
||||
},
|
||||
pydoclint: lint
|
||||
.pydoclint
|
||||
.map(PydoclintOptions::into_settings)
|
||||
.unwrap_or_default(),
|
||||
pydocstyle: lint
|
||||
.pydocstyle
|
||||
.map(PydocstyleOptions::into_settings)
|
||||
|
@ -635,6 +639,7 @@ pub struct LintConfiguration {
|
|||
pub mccabe: Option<McCabeOptions>,
|
||||
pub pep8_naming: Option<Pep8NamingOptions>,
|
||||
pub pycodestyle: Option<PycodestyleOptions>,
|
||||
pub pydoclint: Option<PydoclintOptions>,
|
||||
pub pydocstyle: Option<PydocstyleOptions>,
|
||||
pub pyflakes: Option<PyflakesOptions>,
|
||||
pub pylint: Option<PylintOptions>,
|
||||
|
@ -747,6 +752,7 @@ impl LintConfiguration {
|
|||
mccabe: options.common.mccabe,
|
||||
pep8_naming: options.common.pep8_naming,
|
||||
pycodestyle: options.common.pycodestyle,
|
||||
pydoclint: options.pydoclint,
|
||||
pydocstyle: options.common.pydocstyle,
|
||||
pyflakes: options.common.pyflakes,
|
||||
pylint: options.common.pylint,
|
||||
|
@ -1141,6 +1147,7 @@ impl LintConfiguration {
|
|||
mccabe: self.mccabe.combine(config.mccabe),
|
||||
pep8_naming: self.pep8_naming.combine(config.pep8_naming),
|
||||
pycodestyle: self.pycodestyle.combine(config.pycodestyle),
|
||||
pydoclint: self.pydoclint.combine(config.pydoclint),
|
||||
pydocstyle: self.pydocstyle.combine(config.pydocstyle),
|
||||
pyflakes: self.pyflakes.combine(config.pyflakes),
|
||||
pylint: self.pylint.combine(config.pylint),
|
||||
|
|
|
@ -25,7 +25,7 @@ use ruff_linter::rules::{
|
|||
flake8_copyright, flake8_errmsg, flake8_gettext, flake8_implicit_str_concat,
|
||||
flake8_import_conventions, flake8_pytest_style, flake8_quotes, flake8_self,
|
||||
flake8_tidy_imports, flake8_type_checking, flake8_unused_arguments, isort, mccabe, pep8_naming,
|
||||
pycodestyle, pydocstyle, pyflakes, pylint, pyupgrade, ruff,
|
||||
pycodestyle, pydoclint, pydocstyle, pyflakes, pylint, pyupgrade, ruff,
|
||||
};
|
||||
use ruff_linter::settings::types::{
|
||||
IdentifierPattern, OutputFormat, PythonVersion, RequiredVersion,
|
||||
|
@ -469,6 +469,10 @@ pub struct LintOptions {
|
|||
)]
|
||||
pub exclude: Option<Vec<String>>,
|
||||
|
||||
/// Options for the `pydoclint` plugin.
|
||||
#[option_group]
|
||||
pub pydoclint: Option<PydoclintOptions>,
|
||||
|
||||
/// Options for the `ruff` plugin
|
||||
#[option_group]
|
||||
pub ruff: Option<RuffOptions>,
|
||||
|
@ -2938,6 +2942,35 @@ impl PydocstyleOptions {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Clone, Debug, PartialEq, Eq, Default, Serialize, Deserialize, OptionsMetadata, CombineOptions,
|
||||
)]
|
||||
#[serde(deny_unknown_fields, rename_all = "kebab-case")]
|
||||
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
|
||||
pub struct PydoclintOptions {
|
||||
/// Skip docstrings which fit on a single line.
|
||||
///
|
||||
/// Note: The corresponding setting in `pydoclint`
|
||||
/// is named `skip-checking-short-docstrings`.
|
||||
#[option(
|
||||
default = r#"false"#,
|
||||
value_type = "bool",
|
||||
example = r#"
|
||||
# Skip docstrings which fit on a single line.
|
||||
ignore-one-line-docstrings = true
|
||||
"#
|
||||
)]
|
||||
pub ignore_one_line_docstrings: Option<bool>,
|
||||
}
|
||||
|
||||
impl PydoclintOptions {
|
||||
pub fn into_settings(self) -> pydoclint::settings::Settings {
|
||||
pydoclint::settings::Settings {
|
||||
ignore_one_line_docstrings: self.ignore_one_line_docstrings.unwrap_or_default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Clone, Debug, PartialEq, Eq, Default, Serialize, Deserialize, OptionsMetadata, CombineOptions,
|
||||
)]
|
||||
|
@ -3646,6 +3679,7 @@ pub struct LintOptionsWire {
|
|||
extend_per_file_ignores: Option<FxHashMap<String, Vec<RuleSelector>>>,
|
||||
|
||||
exclude: Option<Vec<String>>,
|
||||
pydoclint: Option<PydoclintOptions>,
|
||||
ruff: Option<RuffOptions>,
|
||||
preview: Option<bool>,
|
||||
}
|
||||
|
@ -3699,6 +3733,7 @@ impl From<LintOptionsWire> for LintOptions {
|
|||
per_file_ignores,
|
||||
extend_per_file_ignores,
|
||||
exclude,
|
||||
pydoclint,
|
||||
ruff,
|
||||
preview,
|
||||
} = value;
|
||||
|
@ -3753,6 +3788,7 @@ impl From<LintOptionsWire> for LintOptions {
|
|||
extend_per_file_ignores,
|
||||
},
|
||||
exclude,
|
||||
pydoclint,
|
||||
ruff,
|
||||
preview,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue