From 13d7164688f28dd3e7a30281253c31e99cb72e56 Mon Sep 17 00:00:00 2001 From: Sijis Aviles Date: Wed, 19 Apr 2017 13:51:45 -0500 Subject: [PATCH 1/2] Fix missing 'UnknownMessage' exception The recent 1.7 version of pylint moved the exceptions to a different submodule and this ensures everything works as expected. --- prospector/exceptions.py | 5 ++++- prospector/tools/pylint/__init__.py | 4 ++-- prospector/tools/pylint/collector.py | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/prospector/exceptions.py b/prospector/exceptions.py index a427757f..b571e4c6 100644 --- a/prospector/exceptions.py +++ b/prospector/exceptions.py @@ -1,5 +1,8 @@ # -*- coding: utf-8 -*- - +try: + from pylint.utils import UnknownMessage as UnknownMessageError +except ImportError: + from pylint.exceptions import UnknownMessageError class FatalProspectorException(Exception): diff --git a/prospector/tools/pylint/__init__.py b/prospector/tools/pylint/__init__.py index 875e1e85..b569d466 100644 --- a/prospector/tools/pylint/__init__.py +++ b/prospector/tools/pylint/__init__.py @@ -4,7 +4,7 @@ import sys import os from pylint.config import find_pylintrc -from pylint.utils import UnknownMessage +from prospector.exceptions import UnknownMessageError from prospector.message import Message, Location from prospector.tools.base import ToolBase from prospector.tools.pylint.collector import Collector @@ -41,7 +41,7 @@ def _prospector_configure(self, prospector_config, linter): try: linter.disable(msg_id) # pylint: disable=pointless-except - except UnknownMessage: + except UnknownMessageError: # If the msg_id doesn't exist in PyLint any more, # don't worry about it. pass diff --git a/prospector/tools/pylint/collector.py b/prospector/tools/pylint/collector.py index 65c0bd41..fa3e6cc1 100644 --- a/prospector/tools/pylint/collector.py +++ b/prospector/tools/pylint/collector.py @@ -1,6 +1,6 @@ from __future__ import absolute_import from pylint.reporters import BaseReporter -from pylint.utils import UnknownMessage +from prospector.exceptions import UnknownMessageError from prospector.message import Location, Message @@ -20,7 +20,7 @@ def add_message(self, msg_id, location, msg): # more user-friendly symbol try: msg_data = self._message_store.check_message_id(msg_id) - except UnknownMessage: + except UnknownMessageError: # this shouldn't happen, as all pylint errors should be # in the message store, but just in case we'll fall back # to using the code. From 977ab4b0a32abf6195fd159170a065026452a23b Mon Sep 17 00:00:00 2001 From: Sijis Aviles Date: Wed, 19 Apr 2017 21:55:03 -0500 Subject: [PATCH 2/2] Add comments about detecting pylint exception classes --- prospector/exceptions.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/prospector/exceptions.py b/prospector/exceptions.py index b571e4c6..5b51a9ff 100644 --- a/prospector/exceptions.py +++ b/prospector/exceptions.py @@ -1,7 +1,11 @@ # -*- coding: utf-8 -*- + +# We are trying to handle pylint changes in their exception classes try: + # pylint < 1.7 from pylint.utils import UnknownMessage as UnknownMessageError except ImportError: + # pylint >= 1.7 from pylint.exceptions import UnknownMessageError class FatalProspectorException(Exception):