# See utils/checkpackagelib/readme.txt before editing this file. from checkpackagelib.base import _CheckFunction class ConsecutiveEmptyLines(_CheckFunction): def before(self): self.lastline = "non empty" def check_line(self, lineno, text): if text.strip() == "" == self.lastline.strip(): return ["{}:{}: consecutive empty lines" .format(self.filename, lineno)] self.lastline = text class EmptyLastLine(_CheckFunction): def before(self): self.lastlineno = 0 self.lastline = "non empty" def check_line(self, lineno, text): self.lastlineno = lineno self.lastline = text def after(self): if self.lastline.strip() == "": return ["{}:{}: empty line at end of file" .format(self.filename, self.lastlineno)] class NewlineAtEof(_CheckFunction): def before(self): self.lastlineno = 0 self.lastline = "\n" def check_line(self, lineno, text): self.lastlineno = lineno self.lastline = text def after(self): if self.lastline == self.lastline.rstrip("\r\n"): return ["{}:{}: missing newline at end of file" .format(self.filename, self.lastlineno), self.lastline] class TrailingSpace(_CheckFunction): def check_line(self, lineno, text): line = text.rstrip("\r\n") if line != line.rstrip(): return ["{}:{}: line contains trailing whitespace" .format(self.filename, lineno), text] class Utf8Characters(_CheckFunction): def is_ascii(self, s): try: return all(ord(c) < 128 for c in s) except TypeError: return False def check_line(self, lineno, text): if not self.is_ascii(text): return ["{}:{}: line contains UTF-8 characters" .format(self.filename, lineno), text]