Index: third_party/pylint/reporters/__init__.py |
diff --git a/third_party/pylint/reporters/__init__.py b/third_party/pylint/reporters/__init__.py |
index 12d193f5d6982c5af945d63abba168947f54a119..ea3281ff7e8e9f300021b77f01f5e40ae593c223 100644 |
--- a/third_party/pylint/reporters/__init__.py |
+++ b/third_party/pylint/reporters/__init__.py |
@@ -12,12 +12,12 @@ |
# this program; if not, write to the Free Software Foundation, Inc., |
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
"""utilities methods and classes for reporters""" |
+from __future__ import print_function |
import sys |
import locale |
import os |
-from pylint.utils import MSG_TYPES |
from pylint import utils |
@@ -25,13 +25,9 @@ CMPS = ['=', '-', '+'] |
# py3k has no more cmp builtin |
if sys.version_info >= (3, 0): |
- def cmp(a, b): |
+ def cmp(a, b): # pylint: disable=redefined-builtin |
return (a > b) - (a < b) |
-if sys.version_info < (2, 6): |
- import stringformat |
- stringformat.init(True) |
- |
def diff_string(old, new): |
"""given a old and new int value, return a string representing the |
difference |
@@ -41,27 +37,6 @@ def diff_string(old, new): |
return diff_str |
-class Message(object): |
- """This class represent a message to be issued by the reporters""" |
- |
- def __init__(self, reporter, msg_id, location, msg): |
- self.msg_id = msg_id |
- self.abspath, self.module, self.obj, self.line, self.column = location |
- self.path = self.abspath.replace(reporter.path_strip_prefix, '') |
- self.msg = msg |
- self.C = msg_id[0] |
- self.category = MSG_TYPES[msg_id[0]] |
- self.symbol = reporter.linter.msgs_store.check_message_id(msg_id).symbol |
- |
- def format(self, template): |
- """Format the message according to the given template. |
- |
- The template format is the one of the format method : |
- cf. http://docs.python.org/2/library/string.html#formatstrings |
- """ |
- return template.format(**(self.__dict__)) |
- |
- |
class BaseReporter(object): |
"""base class for reporters |
@@ -82,9 +57,16 @@ class BaseReporter(object): |
# Build the path prefix to strip to get relative paths |
self.path_strip_prefix = os.getcwd() + os.sep |
+ def handle_message(self, msg): |
+ """Handle a new message triggered on the current file. |
+ |
+ Invokes the legacy add_message API by default.""" |
+ self.add_message( |
+ msg.msg_id, (msg.abspath, msg.module, msg.obj, msg.line, msg.column), |
+ msg.msg) |
+ |
def add_message(self, msg_id, location, msg): |
- """Client API to send a message""" |
- # Shall we store the message objects somewhere, do some validity checking ? |
+ """Deprecated, do not use.""" |
raise NotImplementedError |
def set_output(self, output=None): |
@@ -109,7 +91,7 @@ class BaseReporter(object): |
def writeln(self, string=''): |
"""write a line in the output buffer""" |
- print >> self.out, self.encode(string) |
+ print(self.encode(string), file=self.out) |
def display_results(self, layout): |
"""display results encapsulated in the layout tree""" |
@@ -133,6 +115,19 @@ class BaseReporter(object): |
pass |
+class CollectingReporter(BaseReporter): |
+ """collects messages""" |
+ |
+ name = 'collector' |
+ |
+ def __init__(self): |
+ BaseReporter.__init__(self) |
+ self.messages = [] |
+ |
+ def handle_message(self, msg): |
+ self.messages.append(msg) |
+ |
+ |
def initialize(linter): |
"""initialize linter with reporters in this package """ |
utils.register_plugins(linter, __path__[0]) |