summaryrefslogtreecommitdiff
path: root/utils.py
diff options
context:
space:
mode:
authorTorsten Marek <shlomme@gmail.com>2014-04-09 00:19:18 +0200
committerTorsten Marek <shlomme@gmail.com>2014-04-09 00:19:18 +0200
commit5a6ee7e00b58de14a38aade53d938f72c8c1f712 (patch)
tree16ea474c6c0ad59889a9524b758c5e2e4347d4a3 /utils.py
parent1019cfc1911bd02695e0deb9b8e4d988df289a48 (diff)
downloadpylint-git-5a6ee7e00b58de14a38aade53d938f72c8c1f712.tar.gz
Do not crash when disable or enable in the RC file contain invalid message IDs or names.
Closes #170
Diffstat (limited to 'utils.py')
-rw-r--r--utils.py26
1 files changed, 20 insertions, 6 deletions
diff --git a/utils.py b/utils.py
index ff579055b..ce4fbd434 100644
--- a/utils.py
+++ b/utils.py
@@ -247,7 +247,7 @@ class MessagesHandlerMixIn(object):
self._alternative_names[old_symbol] = msg
self._msgs_by_category.setdefault(msg.msgid[0], []).append(msg.msgid)
- def disable(self, msgid, scope='package', line=None):
+ def disable(self, msgid, scope='package', line=None, ignore_unknown=False):
"""don't output message of the given id"""
assert scope in ('package', 'module')
# handle disable=all by disabling all categories
@@ -272,8 +272,15 @@ class MessagesHandlerMixIn(object):
if msgid.lower().startswith('rp'):
self.disable_report(msgid)
return
- # msgid is a symbolic or numeric msgid.
- msg = self.check_message_id(msgid)
+
+ try:
+ # msgid is a symbolic or numeric msgid.
+ msg = self.check_message_id(msgid)
+ except UnknownMessage:
+ if ignore_unknown:
+ return
+ raise
+
if scope == 'module':
assert line > 0
try:
@@ -290,7 +297,7 @@ class MessagesHandlerMixIn(object):
self.config.disable_msg = [mid for mid, val in msgs.iteritems()
if not val]
- def enable(self, msgid, scope='package', line=None):
+ def enable(self, msgid, scope='package', line=None, ignore_unknown=False):
"""reenable message of the given id"""
assert scope in ('package', 'module')
catid = category_id(msgid)
@@ -309,8 +316,15 @@ class MessagesHandlerMixIn(object):
if msgid.lower().startswith('rp'):
self.enable_report(msgid)
return
- # msgid is a symbolic or numeric msgid.
- msg = self.check_message_id(msgid)
+
+ try:
+ # msgid is a symbolic or numeric msgid.
+ msg = self.check_message_id(msgid)
+ except UnknownMessage:
+ if ignore_unknown:
+ return
+ raise
+
if scope == 'module':
assert line > 0
try: