33from astroid .helpers import safe_infer
44from pylint .checkers import BaseChecker
55from pylint .checkers import utils as checker_utils
6- from pylint .interfaces import IAstroidChecker
76
87iterable_types = (
98 nodes .Tuple ,
@@ -52,8 +51,6 @@ class ForLoopChecker(BaseChecker):
5251 Check for poor for-loop usage.
5352 """
5453
55- __implements__ = IAstroidChecker
56-
5754 name = "for-loop-checker"
5855 priority = - 1
5956 msgs = {
@@ -69,7 +66,7 @@ class ForLoopChecker(BaseChecker):
6966 ),
7067 }
7168
72- @checker_utils .check_messages (
69+ @checker_utils .only_required_for_messages (
7370 "unnecessary-list-cast" , "incorrect-dictionary-iterator"
7471 )
7572 def visit_for (self , node : nodes .For ) -> None :
@@ -130,8 +127,6 @@ class LoopInvariantChecker(BaseChecker):
130127 Check for poor for-loop usage.
131128 """
132129
133- __implements__ = IAstroidChecker
134-
135130 name = "loop-invariant-checker"
136131 priority = - 1
137132 msgs = {
@@ -170,7 +165,7 @@ def __init__(self, linter=None):
170165 self ._loop_consts : List [List [nodes .Const ]] = []
171166 self ._ignore : List [nodes .NodeNG ] = []
172167
173- @checker_utils .check_messages ("loop-invariant-statement" )
168+ @checker_utils .only_required_for_messages ("loop-invariant-statement" )
174169 def visit_for (self , node : nodes .For ) -> None :
175170 """Visit for loop bodies."""
176171 self ._loop_level += 1
@@ -184,7 +179,7 @@ def visit_for(self, node: nodes.For) -> None:
184179 self ._loop_consts .append ([])
185180 self ._ignore .append (node .iter )
186181
187- @checker_utils .check_messages ("loop-invariant-statement" )
182+ @checker_utils .only_required_for_messages ("loop-invariant-statement" )
188183 def visit_while (self , node : nodes .While ) -> None :
189184 """Visit while loop bodies."""
190185 self ._loop_level += 1
@@ -214,11 +209,11 @@ def visit_dict(self, node: nodes.Dict) -> None:
214209 ):
215210 self ._ignore .append (node )
216211
217- @checker_utils .check_messages ("loop-invariant-statement" )
212+ @checker_utils .only_required_for_messages ("loop-invariant-statement" )
218213 def leave_for (self , node : nodes .For ) -> None :
219214 self ._leave_loop (node )
220215
221- @checker_utils .check_messages ("loop-invariant-statement" )
216+ @checker_utils .only_required_for_messages ("loop-invariant-statement" )
222217 def leave_while (self , node : nodes .While ) -> None :
223218 self ._leave_loop (node )
224219
@@ -303,7 +298,7 @@ def visit_augassign(self, node: nodes.AugAssign) -> None:
303298 if isinstance (node .target , nodes .AssignName ):
304299 self ._loop_assignments [- 1 ].add (node .target .name )
305300
306- @checker_utils .check_messages ("loop-global-usage" )
301+ @checker_utils .only_required_for_messages ("loop-global-usage" )
307302 def visit_name (self , node : nodes .Name ) -> None :
308303 """Look for global names"""
309304 if self ._loop_names :
@@ -338,12 +333,12 @@ def visit_call(self, node: nodes.Call) -> None:
338333 if isinstance (node .func .expr , nodes .Name ):
339334 self ._loop_assignments [- 1 ].add (node .func .expr .name )
340335
341- @checker_utils .check_messages ("loop-try-except-usage" )
342- def visit_tryexcept (self , node : nodes .TryExcept ) -> None :
336+ @checker_utils .only_required_for_messages ("loop-try-except-usage" )
337+ def visit_tryexcept (self , node : nodes .Try ) -> None :
343338 if self ._loop_level > 0 :
344339 self .add_message ("loop-try-except-usage" , node = node )
345340
346- @checker_utils .check_messages ("memoryview-over-bytes" )
341+ @checker_utils .only_required_for_messages ("memoryview-over-bytes" )
347342 def visit_subscript (self , node : nodes .Subscript ) -> None :
348343 if self ._loop_level == 0 :
349344 return
@@ -360,7 +355,7 @@ def visit_subscript(self, node: nodes.Subscript) -> None:
360355 ):
361356 self .add_message ("memoryview-over-bytes" , node = node )
362357
363- @checker_utils .check_messages ("dotted-import-in-loop" )
358+ @checker_utils .only_required_for_messages ("dotted-import-in-loop" )
364359 def visit_attribute (self , node : nodes .Attribute ) -> None :
365360 if self ._loop_level == 0 :
366361 return
0 commit comments