From 168db0ec2772579d2dae24f1971a84546f8675f3 Mon Sep 17 00:00:00 2001 From: cpopa Date: Mon, 18 Aug 2014 17:54:07 +0300 Subject: Order of reporting is consistent. --- ChangeLog | 2 ++ utils.py | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index cd25ca8..3572212 100644 --- a/ChangeLog +++ b/ChangeLog @@ -73,6 +73,8 @@ ChangeLog for Pylint * Emit 'catching-non-exception' for non-class nodes. Closes issue #303. + * Order of reporting is consistent. + 2014-07-26 -- 1.3.0 diff --git a/utils.py b/utils.py index b476dc1..deef486 100644 --- a/utils.py +++ b/utils.py @@ -640,6 +640,21 @@ class ReportsHandlerMixIn(object): self._reports = {} self._reports_state = {} + @property + def _sorted_reports(self): + """ Return a list of reports, sorted in the order + of their reporting priority. + """ + reports = sorted(self._reports, key=lambda x: getattr(x, 'name', '')) + try: + # Remove the current reporter and add it + # at the end of the list. + reports.pop(reports.index(self)) + except ValueError: + pass + reports.append(self) + return reports + def register_report(self, reportid, r_title, r_cb, checker): """register a report @@ -671,7 +686,7 @@ class ReportsHandlerMixIn(object): """render registered reports""" sect = Section('Report', '%s statements analysed.'% (self.stats['statement'])) - for checker in self._reports: + for checker in self._sorted_reports: for reportid, r_title, r_cb in self._reports[checker]: if not self.report_is_enabled(reportid): continue -- cgit v1.2.1