| Index: third_party/pylint/pylint/reporters/json.py
|
| diff --git a/third_party/pylint/pylint/reporters/json.py b/third_party/pylint/pylint/reporters/json.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7dba52b86ef8fff313dad08cf41c0563775625ed
|
| --- /dev/null
|
| +++ b/third_party/pylint/pylint/reporters/json.py
|
| @@ -0,0 +1,58 @@
|
| +# Copyright (c) 2003-2014 LOGILAB S.A. (Paris, FRANCE).
|
| +# This program is free software; you can redistribute it and/or modify it under
|
| +# the terms of the GNU General Public License as published by the Free Software
|
| +# Foundation; either version 2 of the License, or (at your option) any later
|
| +# version.
|
| +#
|
| +# This program is distributed in the hope that it will be useful, but WITHOUT
|
| +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
| +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
| +#
|
| +# You should have received a copy of the GNU General Public License along with
|
| +# this program; if not, write to the Free Software Foundation, Inc.,
|
| +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
| +"""JSON reporter"""
|
| +from __future__ import absolute_import, print_function
|
| +
|
| +import json
|
| +import sys
|
| +from cgi import escape
|
| +
|
| +from pylint.interfaces import IReporter
|
| +from pylint.reporters import BaseReporter
|
| +
|
| +
|
| +class JSONReporter(BaseReporter):
|
| + """Report messages and layouts in JSON."""
|
| +
|
| + __implements__ = IReporter
|
| + name = 'json'
|
| + extension = 'json'
|
| +
|
| + def __init__(self, output=sys.stdout):
|
| + BaseReporter.__init__(self, output)
|
| + self.messages = []
|
| +
|
| + def handle_message(self, message):
|
| + """Manage message of different type and in the context of path."""
|
| +
|
| + self.messages.append({
|
| + 'type': message.category,
|
| + 'module': message.module,
|
| + 'obj': message.obj,
|
| + 'line': message.line,
|
| + 'column': message.column,
|
| + 'path': message.path,
|
| + 'symbol': message.symbol,
|
| + 'message': escape(message.msg or ''),
|
| + })
|
| +
|
| + def _display(self, layout):
|
| + """Launch layouts display"""
|
| + if self.messages:
|
| + print(json.dumps(self.messages, indent=4), file=self.out)
|
| +
|
| +
|
| +def register(linter):
|
| + """Register the reporter classes with the linter."""
|
| + linter.register_reporter(JSONReporter)
|
|
|