summaryrefslogtreecommitdiff
path: root/pylint/checkers/similar.py
diff options
context:
space:
mode:
Diffstat (limited to 'pylint/checkers/similar.py')
-rw-r--r--pylint/checkers/similar.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/pylint/checkers/similar.py b/pylint/checkers/similar.py
index 2e45ce9c6..aed489b14 100644
--- a/pylint/checkers/similar.py
+++ b/pylint/checkers/similar.py
@@ -20,6 +20,7 @@
from __future__ import print_function
import sys
from collections import defaultdict
+import itertools
from itertools import groupby
import astroid
@@ -336,7 +337,6 @@ class SimilarChecker(BaseChecker, Similar):
Similar.__init__(
self, min_lines=4, ignore_comments=True, ignore_docstrings=True
)
- self.stats = None
def set_option(self, optname, value, action=None, optdict=None):
"""method called to set an option (registered in the options list)
@@ -359,6 +359,7 @@ class SimilarChecker(BaseChecker, Similar):
self.stats = self.linter.add_stats(
nb_duplicated_lines=0, percent_duplicated_lines=0
)
+ return self.linesets
def process_module(self, node):
"""process a module
@@ -370,11 +371,12 @@ class SimilarChecker(BaseChecker, Similar):
with node.stream() as stream:
self.append_stream(self.linter.current_name, stream, node.file_encoding)
- def close(self):
+ def global_close(self, states):
"""compute and display similarities on closing (i.e. end of parsing)"""
+ self.linesets = list(itertools.chain.from_iterable(states))
total = sum(len(lineset) for lineset in self.linesets)
duplicated = 0
- stats = self.stats
+ stats = self.linter.stats
for num, couples in self._compute_sims():
msg = []
for lineset, idx in couples: