blob: 457b3c317198bd5a798d164b6c629b621539f8cc [file] [log] [blame]
# 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]