summaryrefslogtreecommitdiff
path: root/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/string_format.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/lib/ansible_test/_util/controller/sanity/pylint/plugins/string_format.py')
-rw-r--r--test/lib/ansible_test/_util/controller/sanity/pylint/plugins/string_format.py41
1 files changed, 15 insertions, 26 deletions
diff --git a/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/string_format.py b/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/string_format.py
index 934a9ae7..83c27734 100644
--- a/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/string_format.py
+++ b/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/string_format.py
@@ -5,23 +5,26 @@
from __future__ import annotations
import astroid
-from pylint.interfaces import IAstroidChecker
-from pylint.checkers import BaseChecker
-from pylint.checkers import utils
-from pylint.checkers.utils import check_messages
+
+# support pylint 2.x and 3.x -- remove when supporting only 3.x
+try:
+ from pylint.interfaces import IAstroidChecker
+except ImportError:
+ class IAstroidChecker:
+ """Backwards compatibility for 2.x / 3.x support."""
+
try:
- from pylint.checkers.utils import parse_format_method_string
+ from pylint.checkers.utils import check_messages
except ImportError:
- # noinspection PyUnresolvedReferences
- from pylint.checkers.strings import parse_format_method_string
+ from pylint.checkers.utils import only_required_for_messages as check_messages
+
+from pylint.checkers import BaseChecker
+from pylint.checkers import utils
MSGS = {
- 'E9305': ("Format string contains automatic field numbering "
- "specification",
+ 'E9305': ("disabled", # kept for backwards compatibility with inline ignores, remove after 2.14 is EOL
"ansible-format-automatic-specification",
- "Used when a PEP 3101 format string contains automatic "
- "field numbering (e.g. '{}').",
- {'minversion': (2, 6)}),
+ "disabled"),
'E9390': ("bytes object has no .format attribute",
"ansible-no-format-on-bytestring",
"Used when a bytestring was used as a PEP 3101 format string "
@@ -64,20 +67,6 @@ class AnsibleStringFormatChecker(BaseChecker):
if isinstance(strnode.value, bytes):
self.add_message('ansible-no-format-on-bytestring', node=node)
return
- if not isinstance(strnode.value, str):
- return
-
- if node.starargs or node.kwargs:
- return
- try:
- num_args = parse_format_method_string(strnode.value)[1]
- except utils.IncompleteFormatString:
- return
-
- if num_args:
- self.add_message('ansible-format-automatic-specification',
- node=node)
- return
def register(linter):