summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2022-12-04 17:01:41 +0100
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2022-12-04 17:01:41 +0100
commit56ef83ac417e030a0124f486f6f83b0407a9770e (patch)
tree2ea2648c81b9e7d276962257bbc28c5ce3afaf9a
parent718e997d4ac422bbff27337b5b256b164bd9ea22 (diff)
downloadpylint-git-enforce-the-confidence-in-add-message.tar.gz
-rw-r--r--doc/data/messages/m/missing-pylint-confidence/details.rst1
-rw-r--r--doc/data/messages/m/missing-pylint-confidence/good.py1
-rw-r--r--pylint/extensions/pylint_confidence_missing.py37
3 files changed, 39 insertions, 0 deletions
diff --git a/doc/data/messages/m/missing-pylint-confidence/details.rst b/doc/data/messages/m/missing-pylint-confidence/details.rst
new file mode 100644
index 000000000..ab8204529
--- /dev/null
+++ b/doc/data/messages/m/missing-pylint-confidence/details.rst
@@ -0,0 +1 @@
+You can help us make the doc better `by contributing <https://github.com/PyCQA/pylint/issues/5953>`_ !
diff --git a/doc/data/messages/m/missing-pylint-confidence/good.py b/doc/data/messages/m/missing-pylint-confidence/good.py
new file mode 100644
index 000000000..c40beb573
--- /dev/null
+++ b/doc/data/messages/m/missing-pylint-confidence/good.py
@@ -0,0 +1 @@
+# This is a placeholder for correct code for this message.
diff --git a/pylint/extensions/pylint_confidence_missing.py b/pylint/extensions/pylint_confidence_missing.py
new file mode 100644
index 000000000..66777ed6c
--- /dev/null
+++ b/pylint/extensions/pylint_confidence_missing.py
@@ -0,0 +1,37 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
+"""Check for use of confidence when adding pylint message."""
+
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+from astroid import nodes
+
+from pylint.checkers import BaseChecker
+from pylint.checkers.utils import only_required_for_messages
+
+if TYPE_CHECKING:
+ from pylint.lint import PyLinter
+
+
+class PylintConfidenceChecker(BaseChecker):
+
+ name = "pylint_confidence_missing"
+ msgs = {
+ "W3000": (
+ "Missing confidence in %s",
+ "missing-pylint-confidence",
+ "Check that pylint plugins set the confidence correctly when raising a message.",
+ )
+ }
+
+ @only_required_for_messages("while-used")
+ def visit_call(self, node: nodes.While) -> None:
+ self.add_message("while-used", node=node)
+
+
+def register(linter: PyLinter) -> None:
+ linter.register_checker(PylintConfidenceChecker(linter))