Method: pylint.checkers.similar.SimilarChecker.close
Calls: 1022, Exceptions: 0, Paths: 2Back
Path 1: 1014 calls (0.99)
1def close(self) -> None:
2 """Compute and display similarities on closing (i.e. end of parsing)."""
3 total = sum(len(lineset) for lineset in self.linesets)
4 duplicated = 0
5 stats = self.linter.stats
6 for num, couples in self._compute_sims():
7 msg = []
8 lineset = start_line = end_line = None
9 for lineset, start_line, end_line in couples:
10 msg.append(f"=={lineset.name}:[{start_line}:{end_line}]")
11 msg.sort()
12
13 if lineset:
14 for line in lineset.real_lines[start_line:end_line]:
15 msg.append(line.rstrip())
16
17 self.add_message("R0801", args=(len(couples), "\n".join(msg)))
18 duplicated += num * (len(couples) - 1)
19 stats.nb_duplicated_lines += int(duplicated)
20 stats.percent_duplicated_lines += float(total and duplicated * 100.0 / total)
Path 2: 8 calls (0.01)
1def close(self) -> None:
2 """Compute and display similarities on closing (i.e. end of parsing)."""
3 total = sum(len(lineset) for lineset in self.linesets)
4 duplicated = 0
5 stats = self.linter.stats
6 for num, couples in self._compute_sims():
7 msg = []
8 lineset = start_line = end_line = None
9 for lineset, start_line, end_line in couples:
10 msg.append(f"=={lineset.name}:[{start_line}:{end_line}]")
11 msg.sort()
12
13 if lineset:
14 for line in lineset.real_lines[start_line:end_line]:
15 msg.append(line.rstrip())
16
17 self.add_message("R0801", args=(len(couples), "\n".join(msg)))
18 duplicated += num * (len(couples) - 1)
19 stats.nb_duplicated_lines += int(duplicated)
20 stats.percent_duplicated_lines += float(total and duplicated * 100.0 / total)