about summary refs log tree commit diff
diff options
context:
space:
mode:
authorKevin Yap <me@kevinyap.ca>2015-01-22 17:54:49 -0800
committerKevin Yap <me@kevinyap.ca>2015-01-22 23:04:07 -0800
commitfc5bbdf70f8a9b0bfd7e377cc7df732b119bdac7 (patch)
tree6cef992c84a0a17dee7fbc4c4d33344b0c73baff
parentd8d5e4d2178097fbe92b26e57d0e18dc1eedbe5e (diff)
downloadrust-fc5bbdf70f8a9b0bfd7e377cc7df732b119bdac7.tar.gz
rust-fc5bbdf70f8a9b0bfd7e377cc7df732b119bdac7.zip
Make `make tidy` Python scripts more idiomatic
Also makes errorck.py and tidy.py compatible with Python 3.
-rw-r--r--src/etc/errorck.py39
-rw-r--r--src/etc/licenseck.py12
-rw-r--r--src/etc/tidy.py2
3 files changed, 21 insertions, 32 deletions
diff --git a/src/etc/errorck.py b/src/etc/errorck.py
index 17659309d3b..952e299265d 100644
--- a/src/etc/errorck.py
+++ b/src/etc/errorck.py
@@ -14,11 +14,10 @@
 import sys, os, re
 
 src_dir = sys.argv[1]
-
-errcode_map = { }
+errcode_map = {}
+error_re = re.compile("(E\d\d\d\d)")
 
 for (dirpath, dirnames, filenames) in os.walk(src_dir):
-
     if "src/test" in dirpath or "src/llvm" in dirpath:
         # Short circuit for fast
         continue
@@ -28,15 +27,12 @@ for (dirpath, dirnames, filenames) in os.walk(src_dir):
             continue
 
         path = os.path.join(dirpath, filename)
-        line_num = 1
-        with open(path, 'r') as f:
-            for line in f:
-
-                p = re.compile("(E\d\d\d\d)")
-                m = p.search(line)
-                if not m is None:
-                    errcode = m.group(1)
 
+        with open(path, 'r') as f:
+            for line_num, line in enumerate(f, start=1):
+                match = error_re.search(line)
+                if match:
+                    errcode = match.group(1)
                     new_record = [(errcode, path, line_num, line)]
                     existing = errcode_map.get(errcode)
                     if existing is not None:
@@ -45,26 +41,19 @@ for (dirpath, dirnames, filenames) in os.walk(src_dir):
                     else:
                         errcode_map[errcode] = new_record
 
-                line_num += 1
-
 errors = False
 all_errors = []
-for errcode in errcode_map:
-    entries = errcode_map[errcode]
-    all_errors += [entries[0][0]]
+
+for errcode, entries in errcode_map.items():
+    all_errors.append(entries[0][0])
     if len(entries) > 1:
-        print "error: duplicate error code " + errcode
+        print("error: duplicate error code " + errcode)
         for entry in entries:
-            print entry[1] + ": " + str(entry[2])
-            print entry[3]
+            print("{1}: {2}\n{3}".format(*entry))
         errors = True
 
-print str(len(errcode_map)) + " error codes"
-
-all_errors.sort()
-all_errors.reverse()
-
-print "highest error code: " + all_errors[0]
+print("{0} error codes".format(len(errcode_map)))
+print("highest error code: " + max(all_errors))
 
 if errors:
     sys.exit(1)
diff --git a/src/etc/licenseck.py b/src/etc/licenseck.py
index 9ac0acc38a7..44a50efcd09 100644
--- a/src/etc/licenseck.py
+++ b/src/etc/licenseck.py
@@ -57,18 +57,18 @@ exceptions = [
 
 def check_license(name, contents):
     # Whitelist check
-    for exception in exceptions:
-        if name.endswith(exception):
-            return True
+    if any(name.endswith(e) for e in exceptions):
+        return True
 
     # Xfail check
     firstlineish = contents[:100]
-    if firstlineish.find("ignore-license") != -1:
+    if "ignore-license" in firstlineish:
         return True
 
     # License check
     boilerplate = contents[:500]
-    if (boilerplate.find(license1) == -1 or boilerplate.find(license2) == -1) and \
-       (boilerplate.find(license3) == -1 or boilerplate.find(license4) == -1):
+    if (license1 not in boilerplate or license2 not in boilerplate) and \
+       (license3 not in boilerplate or license4 not in boilerplate):
         return False
+
     return True
diff --git a/src/etc/tidy.py b/src/etc/tidy.py
index 536ab7f30b9..c65b762e517 100644
--- a/src/etc/tidy.py
+++ b/src/etc/tidy.py
@@ -113,7 +113,7 @@ try:
     if current_name != "":
         do_license_check(current_name, current_contents)
 
-except UnicodeDecodeError, e:
+except UnicodeDecodeError as e:
     report_err("UTF-8 decoding error " + str(e))