summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>2022-09-06 12:37:13 +0200
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2022-09-06 23:33:59 +0200
commit262723aaf93798560010fceb254b07fb0899ed0d (patch)
tree56f483ad13db68af4689b9c09267bc98af8eed5d
parenta21af6a7971f70a8cbd5e89acce213c17c75e813 (diff)
downloadpylint-git-262723aaf93798560010fceb254b07fb0899ed0d.tar.gz
Make ``missing-yield/raises-doc`` respect ``no-docstring-rgx`` option
-rw-r--r--doc/whatsnew/fragments/4743.bugfix3
-rw-r--r--pylint/extensions/docparams.py10
-rw-r--r--tests/functional/ext/docparams/raise/missing_raises_doc_required.py7
-rw-r--r--tests/functional/ext/docparams/yield/missing_yield_doc_required.py8
-rw-r--r--tests/functional/ext/docparams/yield/missing_yield_doc_required.txt4
5 files changed, 29 insertions, 3 deletions
diff --git a/doc/whatsnew/fragments/4743.bugfix b/doc/whatsnew/fragments/4743.bugfix
index 20dbe071d..1f8c30f1a 100644
--- a/doc/whatsnew/fragments/4743.bugfix
+++ b/doc/whatsnew/fragments/4743.bugfix
@@ -1,3 +1,4 @@
-``missing-return-doc`` now respects the ``no-docstring-rgx`` option.
+``missing-return-doc``, ``missing-raises-doc`` and ``missing-yields-doc`` now respect
+the ``no-docstring-rgx`` option.
Closes #4743
diff --git a/pylint/extensions/docparams.py b/pylint/extensions/docparams.py
index 01e85b491..19d9cf890 100644
--- a/pylint/extensions/docparams.py
+++ b/pylint/extensions/docparams.py
@@ -278,6 +278,11 @@ class DocstringParameterChecker(BaseChecker):
if not isinstance(func_node, astroid.FunctionDef):
return
+ # skip functions that match the 'no-docstring-rgx' config option
+ no_docstring_rgx = self.linter.config.no_docstring_rgx
+ if no_docstring_rgx and re.match(no_docstring_rgx, func_node.name):
+ return
+
expected_excs = utils.possible_exc_types(node)
if not expected_excs:
@@ -355,6 +360,11 @@ class DocstringParameterChecker(BaseChecker):
if not isinstance(func_node, astroid.FunctionDef):
return
+ # skip functions that match the 'no-docstring-rgx' config option
+ no_docstring_rgx = self.linter.config.no_docstring_rgx
+ if no_docstring_rgx and re.match(no_docstring_rgx, func_node.name):
+ return
+
doc = utils.docstringify(
func_node.doc_node, self.linter.config.default_docstring_type
)
diff --git a/tests/functional/ext/docparams/raise/missing_raises_doc_required.py b/tests/functional/ext/docparams/raise/missing_raises_doc_required.py
index 860a3ecf5..96f2297a2 100644
--- a/tests/functional/ext/docparams/raise/missing_raises_doc_required.py
+++ b/tests/functional/ext/docparams/raise/missing_raises_doc_required.py
@@ -6,3 +6,10 @@
def test_warns_unknown_style(self): # [missing-raises-doc]
"""This is a docstring."""
raise RuntimeError("hi")
+
+
+# This function doesn't require a docstring, because its name starts
+# with an '_' (no-docstring-rgx):
+def _function(some_arg: int):
+ """This is a docstring."""
+ raise ValueError
diff --git a/tests/functional/ext/docparams/yield/missing_yield_doc_required.py b/tests/functional/ext/docparams/yield/missing_yield_doc_required.py
index e307063b3..bfaae4f03 100644
--- a/tests/functional/ext/docparams/yield/missing_yield_doc_required.py
+++ b/tests/functional/ext/docparams/yield/missing_yield_doc_required.py
@@ -1,7 +1,15 @@
"""Tests for missing-yield-doc and missing-yield-type-doc with accept-no-yields-doc = no"""
# pylint: disable=missing-function-docstring, unused-argument, function-redefined
+from typing import Iterator
+
# Test missing docstring
def my_func(self): # [missing-yield-doc, missing-yield-type-doc]
yield False
+
+
+# This function doesn't require a docstring, because its name starts
+# with an '_' (no-docstring-rgx):
+def _function(some_arg: int) -> Iterator[int]:
+ yield some_arg
diff --git a/tests/functional/ext/docparams/yield/missing_yield_doc_required.txt b/tests/functional/ext/docparams/yield/missing_yield_doc_required.txt
index cf39e4031..c7bd4b033 100644
--- a/tests/functional/ext/docparams/yield/missing_yield_doc_required.txt
+++ b/tests/functional/ext/docparams/yield/missing_yield_doc_required.txt
@@ -1,2 +1,2 @@
-missing-yield-doc:6:0:6:11:my_func:Missing yield documentation:HIGH
-missing-yield-type-doc:6:0:6:11:my_func:Missing yield type documentation:HIGH
+missing-yield-doc:8:0:8:11:my_func:Missing yield documentation:HIGH
+missing-yield-type-doc:8:0:8:11:my_func:Missing yield type documentation:HIGH