diff options
Diffstat (limited to 'parabola_repolint/linter.py')
-rw-r--r-- | parabola_repolint/linter.py | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/parabola_repolint/linter.py b/parabola_repolint/linter.py index 3bc4bed..4cd418f 100644 --- a/parabola_repolint/linter.py +++ b/parabola_repolint/linter.py @@ -39,6 +39,14 @@ class LinterCheckBase(metaclass=LinterCheckMeta): res.append(' ' + issue[0] % issue[1:]) return "\n".join(sorted(res)) + def fixhook_base(self, issue): + ''' produce the default fixhook base path ''' + return issue[1] + + def fixhook_args(self, issue): + ''' produce the default fixhook arguments ''' + return issue[2:] + def __repr__(self): ''' produce a string representation of the check ''' return str(type(self)) @@ -163,6 +171,11 @@ class Linter(): except LinterIssue as i: check.issues.append(i.args) + @property + def triggered_checks(self): + ''' produce a list of all checks with issues ''' + return [ check for check in self._enabled_checks if check.issues ] + def format(self): ''' return a formatted string of the linter issues ''' now = self._end_time.strftime("%Y-%m-%d %H:%M:%S") @@ -173,11 +186,10 @@ Generated by parabola-repolint on %s at %s ============================================================================== ''' % (socket.gethostname(), now) - for check in self._enabled_checks: - if check.issues: - header = '%s:\n%s' % (check.header, '-' * (len(check.header) + 1)) - out += '\n\n\n%s\n%s\nissues:\n' % (header, check.__doc__) - out += check.format() + for check in self.triggered_checks: + header = '%s:\n%s' % (check.header, '-' * (len(check.header) + 1)) + out += '\n\n\n%s\n%s\nissues:\n' % (header, check.__doc__) + out += check.format() return out def short_format(self): @@ -185,9 +197,8 @@ Generated by parabola-repolint on %s at %s now = self._end_time.strftime("%Y-%m-%d %H:%M:%S") out = 'repolint digest at %s' % now - for check in self._enabled_checks: - if check.issues: - out += '\n %s: %i' % (check, len(check.issues)) + for check in self.triggered_checks: + out += '\n %s: %i' % (check, len(check.issues)) out += '\ntotal issues: %i' % self.total_issues return out @@ -196,7 +207,7 @@ Generated by parabola-repolint on %s at %s def total_issues(self): ''' produce the total number of found issues ''' res = 0 - for check in self._enabled_checks: + for check in self.triggered_checks: res += len(check.issues) return res |