summaryrefslogtreecommitdiff
path: root/checkers/similar.py
diff options
context:
space:
mode:
authorBrett Cannon <brett@python.org>2014-08-29 15:48:24 -0400
committerBrett Cannon <brett@python.org>2014-08-29 15:48:24 -0400
commit8e23aa2b179274c9c1b128a8b3daf8d2e24cfd75 (patch)
treec234e08aa390be9bca941e66e508071e5e44a801 /checkers/similar.py
parent001469c8272a235b4f62b9b5c3ee248635168ad4 (diff)
parentc2cc31874880d7f0d5bd444c6a3b17fa817e2509 (diff)
downloadpylint-8e23aa2b179274c9c1b128a8b3daf8d2e24cfd75.tar.gz
Merge with defaultpython_6
Diffstat (limited to 'checkers/similar.py')
-rw-r--r--checkers/similar.py29
1 files changed, 16 insertions, 13 deletions
diff --git a/checkers/similar.py b/checkers/similar.py
index e5c9300..2cc2e00 100644
--- a/checkers/similar.py
+++ b/checkers/similar.py
@@ -16,14 +16,17 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
"""a similarities / code duplication command line tool and pylint checker
"""
+from __future__ import print_function
import sys
-from itertools import izip
from logilab.common.ureports import Table
from pylint.interfaces import IRawChecker
from pylint.checkers import BaseChecker, table_lines_from_stats
+import six
+from six.moves import zip
+
class Similar(object):
"""finds copy-pasted lines of code in a project"""
@@ -69,7 +72,7 @@ class Similar(object):
else:
duplicate.append(set([(lineset1, idx1), (lineset2, idx2)]))
sims = []
- for num, ensembles in no_duplicates.iteritems():
+ for num, ensembles in six.iteritems(no_duplicates):
for couples in ensembles:
sims.append((num, couples))
sims.sort()
@@ -80,19 +83,19 @@ class Similar(object):
"""display computed similarities on stdout"""
nb_lignes_dupliquees = 0
for num, couples in sims:
- print
- print num, "similar lines in", len(couples), "files"
+ print()
+ print(num, "similar lines in", len(couples), "files")
couples = sorted(couples)
for lineset, idx in couples:
- print "==%s:%s" % (lineset.name, idx)
+ print("==%s:%s" % (lineset.name, idx))
# pylint: disable=W0631
for line in lineset._real_lines[idx:idx+num]:
- print " ", line.rstrip()
+ print(" ", line.rstrip())
nb_lignes_dupliquees += num * (len(couples)-1)
nb_total_lignes = sum([len(lineset) for lineset in self.linesets])
- print "TOTAL lines=%s duplicates=%s percent=%.2f" \
+ print("TOTAL lines=%s duplicates=%s percent=%.2f" \
% (nb_total_lignes, nb_lignes_dupliquees,
- nb_lignes_dupliquees*100. / nb_total_lignes)
+ nb_lignes_dupliquees*100. / nb_total_lignes))
def _find_common(self, lineset1, lineset2):
"""find similarities in the two given linesets"""
@@ -107,7 +110,7 @@ class Similar(object):
for index2 in find(lineset1[index1]):
non_blank = 0
for num, ((_, line1), (_, line2)) in enumerate(
- izip(lines1(index1), lines2(index2))):
+ zip(lines1(index1), lines2(index2))):
if line1 != line2:
if non_blank > min_lines:
yield num, lineset1, index1, lineset2, index2
@@ -323,10 +326,10 @@ def register(linter):
def usage(status=0):
"""display command line usage information"""
- print "finds copy pasted blocks in a set of files"
- print
- print 'Usage: symilar [-d|--duplicates min_duplicated_lines] \
-[-i|--ignore-comments] [--ignore-docstrings] [--ignore-imports] file1...'
+ print("finds copy pasted blocks in a set of files")
+ print()
+ print('Usage: symilar [-d|--duplicates min_duplicated_lines] \
+[-i|--ignore-comments] [--ignore-docstrings] [--ignore-imports] file1...')
sys.exit(status)
def Run(argv=None):