Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Unified Diff: third_party/pylint/checkers/similar.py

Issue 753543006: pylint: upgrade to 1.4.0 (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/pylint/checkers/python3.py ('k') | third_party/pylint/checkers/spelling.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/pylint/checkers/similar.py
diff --git a/third_party/pylint/checkers/similar.py b/third_party/pylint/checkers/similar.py
index e5c930038c8f57eb1b09244f5b8b87ad3271f1ad..013f1b0f698b4cc0e4e1a3c8e7b8be7bfaa6290f 100644
--- a/third_party/pylint/checkers/similar.py
+++ b/third_party/pylint/checkers/similar.py
@@ -16,14 +16,18 @@
# 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 collections import defaultdict
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"""
@@ -58,9 +62,9 @@ class Similar(object):
def _compute_sims(self):
"""compute similarities in appended files"""
- no_duplicates = {}
+ no_duplicates = defaultdict(list)
for num, lineset1, idx1, lineset2, idx2 in self._iter_sims():
- duplicate = no_duplicates.setdefault(num, [])
+ duplicate = no_duplicates[num]
for couples in duplicate:
if (lineset1, idx1) in couples or (lineset2, idx2) in couples:
couples.add((lineset1, idx1))
@@ -69,7 +73,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 +84,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 +111,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
@@ -207,10 +211,10 @@ class LineSet(object):
def _mk_index(self):
"""create the index for this set"""
- index = {}
+ index = defaultdict(list)
for line_no, line in enumerate(self._stripped_lines):
if line:
- index.setdefault(line, []).append(line_no)
+ index[line].append(line_no)
return index
@@ -323,10 +327,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):
« no previous file with comments | « third_party/pylint/checkers/python3.py ('k') | third_party/pylint/checkers/spelling.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698