Source

pylint / reporters / json.py

Kevin Qiu 1fdcfb0 

Kevin Qiu b35ecfa 
Kevin Qiu 1fdcfb0 
Kevin Qiu b35ecfa 
Kevin Qiu e36b7e5 

Kevin Qiu b35ecfa 


Kevin Qiu 1fdcfb0 
Kevin Qiu b35ecfa 







Kevin Qiu 1fdcfb0 
Kevin Qiu e36b7e5 
Kevin Qiu b35ecfa 


Kevin Qiu 1fdcfb0 











Kevin Qiu b35ecfa 

Kevin Qiu 1fdcfb0 


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
    """

    __implements__ = IReporter
    extension = 'json'

    def __init__(self, output=sys.stdout):
        BaseReporter.__init__(self, output)
        self._data = defaultdict(list)

    def add_message(self, msg_id, location, msg):
        path, module, obj, line, col_offset = location
        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):
        self.writeln(json.dumps(
            self._data,
            indent=4
        ))