diff options
author | Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com> | 2022-09-06 12:37:13 +0200 |
---|---|---|
committer | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2022-09-06 23:33:59 +0200 |
commit | 262723aaf93798560010fceb254b07fb0899ed0d (patch) | |
tree | 56f483ad13db68af4689b9c09267bc98af8eed5d | |
parent | a21af6a7971f70a8cbd5e89acce213c17c75e813 (diff) | |
download | pylint-git-262723aaf93798560010fceb254b07fb0899ed0d.tar.gz |
Make ``missing-yield/raises-doc`` respect ``no-docstring-rgx`` option
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 |