summaryrefslogtreecommitdiffstats
path: root/Tools/scripts/findnocoding.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/scripts/findnocoding.py')
-rwxr-xr-xTools/scripts/findnocoding.py91
1 files changed, 45 insertions, 46 deletions
diff --git a/Tools/scripts/findnocoding.py b/Tools/scripts/findnocoding.py
index 6c16b1c..79ea7e5 100755
--- a/Tools/scripts/findnocoding.py
+++ b/Tools/scripts/findnocoding.py
@@ -1,8 +1,8 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
"""List all those Python files that require a coding directive
-Usage: findnocoding.py dir1 [dir2...]
+Usage: nocoding.py dir1 [dir2...]
"""
__author__ = "Oleg Broytmann, Georg Brandl"
@@ -28,12 +28,12 @@ except ImportError:
pysource = pysource()
- print("The pysource module is not available; "
- "no sophisticated Python source file search will be done.", file=sys.stderr)
+ print >>sys.stderr, ("The pysource module is not available; "
+ "no sophisticated Python source file search will be done.")
-decl_re = re.compile(rb'^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)')
-blank_re = re.compile(rb'^[ \t\f]*(?:[#\r\n]|$)')
+decl_re = re.compile(r'^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)')
+blank_re = re.compile(r'^[ \t\f]*(?:[#\r\n]|$)')
def get_declaration(line):
match = decl_re.match(line)
@@ -43,7 +43,7 @@ def get_declaration(line):
def has_correct_encoding(text, codec):
try:
- str(text, codec)
+ unicode(text, codec)
except UnicodeDecodeError:
return False
else:
@@ -51,23 +51,24 @@ def has_correct_encoding(text, codec):
def needs_declaration(fullpath):
try:
- infile = open(fullpath, 'rb')
+ infile = open(fullpath, 'rU')
except IOError: # Oops, the file was removed - ignore it
return None
- with infile:
- line1 = infile.readline()
- line2 = infile.readline()
+ line1 = infile.readline()
+ line2 = infile.readline()
- if (get_declaration(line1) or
- blank_re.match(line1) and get_declaration(line2)):
- # the file does have an encoding declaration, so trust it
- return False
+ if (get_declaration(line1) or
+ blank_re.match(line1) and get_declaration(line2)):
+ # the file does have an encoding declaration, so trust it
+ infile.close()
+ return False
- # check the whole file for non utf-8 characters
- rest = infile.read()
+ # check the whole file for non-ASCII characters
+ rest = infile.read()
+ infile.close()
- if has_correct_encoding(line1+line2+rest, "utf-8"):
+ if has_correct_encoding(line1+line2+rest, "ascii"):
return False
return True
@@ -77,31 +78,29 @@ usage = """Usage: %s [-cd] paths...
-c: recognize Python source files trying to compile them
-d: debug output""" % sys.argv[0]
-if __name__ == '__main__':
-
- try:
- opts, args = getopt.getopt(sys.argv[1:], 'cd')
- except getopt.error as msg:
- print(msg, file=sys.stderr)
- print(usage, file=sys.stderr)
- sys.exit(1)
-
- is_python = pysource.looks_like_python
- debug = False
-
- for o, a in opts:
- if o == '-c':
- is_python = pysource.can_be_compiled
- elif o == '-d':
- debug = True
-
- if not args:
- print(usage, file=sys.stderr)
- sys.exit(1)
-
- for fullpath in pysource.walk_python_files(args, is_python):
- if debug:
- print("Testing for coding: %s" % fullpath)
- result = needs_declaration(fullpath)
- if result:
- print(fullpath)
+try:
+ opts, args = getopt.getopt(sys.argv[1:], 'cd')
+except getopt.error, msg:
+ print >>sys.stderr, msg
+ print >>sys.stderr, usage
+ sys.exit(1)
+
+is_python = pysource.looks_like_python
+debug = False
+
+for o, a in opts:
+ if o == '-c':
+ is_python = pysource.can_be_compiled
+ elif o == '-d':
+ debug = True
+
+if not args:
+ print >>sys.stderr, usage
+ sys.exit(1)
+
+for fullpath in pysource.walk_python_files(args, is_python):
+ if debug:
+ print "Testing for coding: %s" % fullpath
+ result = needs_declaration(fullpath)
+ if result:
+ print fullpath