summaryrefslogtreecommitdiff
path: root/utils.py
diff options
context:
space:
mode:
authorTorsten Marek <tmarek@google.com>2013-06-19 11:41:55 +0200
committerTorsten Marek <tmarek@google.com>2013-06-19 11:41:55 +0200
commitdd08b36c985aae33bf3149ec253758cbc45fa3a7 (patch)
tree708cd44e53e44cfc86c2bebe7f7d4cf7c030acc2 /utils.py
parentd15faca6172efda9baf1ad0df30f0031f1b02803 (diff)
downloadpylint-dd08b36c985aae33bf3149ec253758cbc45fa3a7.tar.gz
Refactor PyLintASTWalker to allow using symbolic names in check_messages as well.
Diffstat (limited to 'utils.py')
-rw-r--r--utils.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/utils.py b/utils.py
index ccab4d1..d9e53d9 100644
--- a/utils.py
+++ b/utils.py
@@ -595,6 +595,15 @@ class PyLintASTWalker(object):
self.leave_events = {}
self.linter = linter
+ def _is_method_enabled(self, method):
+ if not hasattr(method, 'checks_msgs'):
+ return True
+
+ for msg_desc in method.checks_msgs:
+ if self.linter.is_message_enabled(msg_desc):
+ return True
+ return False
+
def add_checker(self, checker):
"""walk to the checker's dir and collect visit and leave methods"""
# XXX : should be possible to merge needed_checkers and add_checker
@@ -602,7 +611,6 @@ class PyLintASTWalker(object):
lcids = set()
visits = self.visit_events
leaves = self.leave_events
- msgs = self.linter._msgs_state
for member in dir(checker):
cid = member[6:]
if cid == 'default':
@@ -610,11 +618,9 @@ class PyLintASTWalker(object):
if member.startswith('visit_'):
v_meth = getattr(checker, member)
# don't use visit_methods with no activated message:
- if hasattr(v_meth, 'checks_msgs'):
- if not any(msgs.get(m, True) for m in v_meth.checks_msgs):
- continue
- visits.setdefault(cid, []).append(v_meth)
- vcids.add(cid)
+ if self._is_method_enabled(v_meth):
+ visits.setdefault(cid, []).append(v_meth)
+ vcids.add(cid)
elif member.startswith('leave_'):
l_meth = getattr(checker, member)
# don't use leave_methods with no activated message: