From 64ab79e5721ec6fdd2182fbf9d39a26534ccca43 Mon Sep 17 00:00:00 2001 From: Auguste Lalande Date: Fri, 24 Oct 2025 17:19:30 -0400 Subject: [PATCH] Add missing docstring sections to the numpy list (#20931) ## Summary Add docstring sections which were missing from the numpy list as pointed out here #20923. For now these are only the official sections as documented [here](https://numpydoc.readthedocs.io/en/latest/format.html#sections). ## Test Plan Added a test case for DOC102 --- .../test/fixtures/pydoclint/DOC102_numpy.py | 19 +++++++++++++++++++ crates/ruff_linter/src/docstrings/google.rs | 4 ++-- crates/ruff_linter/src/docstrings/numpy.rs | 3 +++ crates/ruff_linter/src/docstrings/sections.rs | 3 +++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/crates/ruff_linter/resources/test/fixtures/pydoclint/DOC102_numpy.py b/crates/ruff_linter/resources/test/fixtures/pydoclint/DOC102_numpy.py index fb7f86b25f..ea93e16cc1 100644 --- a/crates/ruff_linter/resources/test/fixtures/pydoclint/DOC102_numpy.py +++ b/crates/ruff_linter/resources/test/fixtures/pydoclint/DOC102_numpy.py @@ -370,3 +370,22 @@ class Foo: The flag converter instance with all flags parsed. """ return + +# OK +def baz(x: int) -> int: + """ + Show a `Warnings` DOC102 false positive. + + Parameters + ---------- + x : int + + Warnings + -------- + This function demonstrates a DOC102 false positive + + Returns + ------- + int + """ + return x diff --git a/crates/ruff_linter/src/docstrings/google.rs b/crates/ruff_linter/src/docstrings/google.rs index 32d97ff10d..a6aba363cc 100644 --- a/crates/ruff_linter/src/docstrings/google.rs +++ b/crates/ruff_linter/src/docstrings/google.rs @@ -11,6 +11,8 @@ pub(crate) static GOOGLE_SECTIONS: &[SectionKind] = &[ SectionKind::References, SectionKind::Returns, SectionKind::SeeAlso, + SectionKind::Warnings, + SectionKind::Warns, SectionKind::Yields, // Google-only SectionKind::Args, @@ -32,7 +34,5 @@ pub(crate) static GOOGLE_SECTIONS: &[SectionKind] = &[ SectionKind::Tip, SectionKind::Todo, SectionKind::Warning, - SectionKind::Warnings, - SectionKind::Warns, SectionKind::Yield, ]; diff --git a/crates/ruff_linter/src/docstrings/numpy.rs b/crates/ruff_linter/src/docstrings/numpy.rs index da3fbef1ac..2c91acf197 100644 --- a/crates/ruff_linter/src/docstrings/numpy.rs +++ b/crates/ruff_linter/src/docstrings/numpy.rs @@ -11,11 +11,14 @@ pub(crate) static NUMPY_SECTIONS: &[SectionKind] = &[ SectionKind::References, SectionKind::Returns, SectionKind::SeeAlso, + SectionKind::Warnings, + SectionKind::Warns, SectionKind::Yields, // NumPy-only SectionKind::ExtendedSummary, SectionKind::OtherParams, SectionKind::OtherParameters, SectionKind::Parameters, + SectionKind::Receives, SectionKind::ShortSummary, ]; diff --git a/crates/ruff_linter/src/docstrings/sections.rs b/crates/ruff_linter/src/docstrings/sections.rs index 364836be77..a4151c67aa 100644 --- a/crates/ruff_linter/src/docstrings/sections.rs +++ b/crates/ruff_linter/src/docstrings/sections.rs @@ -36,6 +36,7 @@ pub(crate) enum SectionKind { OtherParameters, Parameters, Raises, + Receives, References, Return, Returns, @@ -76,6 +77,7 @@ impl SectionKind { "other parameters" => Some(Self::OtherParameters), "parameters" => Some(Self::Parameters), "raises" => Some(Self::Raises), + "receives" => Some(Self::Receives), "references" => Some(Self::References), "return" => Some(Self::Return), "returns" => Some(Self::Returns), @@ -117,6 +119,7 @@ impl SectionKind { Self::OtherParameters => "Other Parameters", Self::Parameters => "Parameters", Self::Raises => "Raises", + Self::Receives => "Receives", Self::References => "References", Self::Return => "Return", Self::Returns => "Returns",