Commits

Kevin Qiu committed 1fdcfb0 Draft

JsonReporter

  • Participants
  • Parent commits e36b7e5
  • Branches json-reporter

Comments (0)

Files changed (1)

File reporters/json.py

+from __future__ import absolute_import
+
 import sys
+import json
 
 from collections import defaultdict
 
 from pylint.reporters import BaseReporter
 from pylint.interfaces import IReporter
 
+
 class JsonReporter(BaseReporter):
     """Renders the report output as a json stream
     """
     extension = 'json'
 
     def __init__(self, output=sys.stdout):
-        TextReporter.__init__(self, output)
+        BaseReporter.__init__(self, output)
         self._data = defaultdict(list)
 
     def add_message(self, msg_id, location, msg):
         path, module, obj, line, col_offset = location
-        self._data[path].append(
-            (line, col_offset), module, obj, (msg_id, msg)
-        )
+        if self.include_ids:
+            message = {'id': msg_id, 'body': msg}
+        else:
+            message = {'body': msg}
+
+        self._data[path].append(dict(
+            line=line,
+            col=col_offset,
+            module=module,
+            object=obj,
+            message=message
+        ))
 
     def display_results(self, layout):
-        pass
+        self.writeln(json.dumps(
+            self._data,
+            indent=4
+        ))