def __init__(self, code):
self.original = code
comments = self.count_comments(code)
try:
# Avoid warning about comments if we don't knowhow to count them.
self.comment_ratio = 1. if comments is None else comments / self.count_lines(code)
except ZeroDivisionError:
raise Error("file is empty")
self.styled = self.style(code)
# Count number of differences between styled and unstyled code (average of added and removed lines).
self.diffs = sum(d[0] == "+" or d[0] == "-"
for d in difflib.ndiff(code.splitlines(True), self.styled.splitlines(True))) / 2
self.lines = self.count_lines(self.styled)
try:
self.score = 1 - self.diffs / self.lines
except ZeroDivisionError:
raise Error("file is empty")
评论列表
文章目录