code: def run(self, file_list):
          
          data = {'total': 0,
                  'errors': 0,
                  'scores': []}
  
          for filename in file_list:
              path, fname = os.path.split(filename)
              if os.path.splitext(filename)[1] != '.py':
                  #Don't run on non-python files.
                  continue
              with cd_ctx(path):
                  short_data = pylint_raw([fname, "--reports=n", "-f", "text"])
                  full_data = pylint_raw([fname, "--reports=y", "-f", "text"])
  
              score_regex = re.search(r"Your code has been rated at (-?\d+\.\d+)", full_data)
              if score_regex:
                  score = score_regex.groups()[0]
                  data['scores'].append((filename, float(score)))
  
              pylint_data = short_data.splitlines()
  
              #Remove the module line that is at the top of each pylint
              if len(pylint_data) > 0:
                  pylint_data.pop(0)
              data[filename] = pylint_data
              for line in pylint_data[:]:
                  if line.startswith('E'):
                      data['errors'] += 1
                  #Ignore pylint fatal errors (problem w/ pylint, not the code generally).
                  if line.startswith('F'):
                      data[filename].remove(line)
              data['total'] += len(data[filename])
  
          if len(data['scores']) > 0:
              data['average'] = (sum([score[1] for score in data['scores']]) / len(data['scores']))
          else:
              data['average'] = 9  # Default average? Comes up when all files are new.
          print("Total: %s" % data['total'])
          print("Errors: %s" % data['errors'])
          print("Average score: %f" % data['average'])
          return data
docs: Runs pylint on the list of files and return a dictionary:
           {<filename>: [list of pylint errors],
            'total': <int> - Total number of pylint messages,
            'errors': <int> - Number of pylint errors,
            'scores': (<filename>, score) - Individual score for each file.}
  
          :param file_list:
          :return: