diff options
Diffstat (limited to 'Tools')
-rwxr-xr-x | Tools/scripts/tabpolice.py | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/Tools/scripts/tabpolice.py b/Tools/scripts/tabpolice.py deleted file mode 100755 index ae97581..0000000 --- a/Tools/scripts/tabpolice.py +++ /dev/null @@ -1,104 +0,0 @@ -#! /usr/bin/env python - -"""The Tab Police watches for possibly inconsistent indentation.""" - -import os -import sys -import getopt -import tokenize - -verbose = 0 -quiet = 0 - -def main(): - global verbose, quiet - try: - opts, args = getopt.getopt(sys.argv[1:], "qv") - except getopt.error, msg: - print msg - return - for o, a in opts: - if o == '-v': - verbose = verbose + 1 - quiet = 0 - if o == '-q': - quiet = 1 - verbose = 0 - if not args: - print "Usage:", sys.argv[0], "file_or_directory ..." - return - for arg in args: - check(arg) - -def check(file): - if os.path.isdir(file) and not os.path.islink(file): - if verbose: - print "%s: listing directory" % `file` - names = os.listdir(file) - for name in names: - fullname = os.path.join(file, name) - if (os.path.isdir(fullname) and - not os.path.islink(fullname) or - os.path.normcase(name[-3:]) == ".py"): - check(fullname) - return - - try: - f = open(file) - except IOError, msg: - print "%s: I/O Error: %s" % (`file`, str(msg)) - return - - if verbose > 1: - print "checking", `file`, "with tabsize 8..." - tokens = [] - tokenize.tabsize = 8 - try: - tokenize.tokenize(f.readline, tokens.append) - except tokenize.TokenError, msg: - print "%s: Token Error: %s" % (`file`, str(msg)) - - if verbose > 1: - print "checking", `file`, "with tabsize 1..." - f.seek(0) - alttokens = [] - tokenize.tabsize = 1 - try: - tokenize.tokenize(f.readline, alttokens.append) - except tokenize.TokenError, msg: - print "%s: Token Error: %s" % (`file`, str(msg)) - f.close() - - if tokens == alttokens: - if verbose: - print "%s: Clean bill of health." % `file` - elif quiet: - print file - else: - badline = 0 - n, altn = len(tokens), len(alttokens) - for i in range(max(n, altn)): - if i >= n: - x = None - else: - x = tokens[i] - if i >= altn: - y = None - else: - y = alttokens[i] - if x != y: - if x: - kind, token, start, end, line = x - else: - kind, token, start, end, line = y - badline = start[0] - break - if verbose: - print "%s: *** Line %d: trouble in tab city! ***" % ( - `file`, badline) - print "offending line:", `line` - else: - print file, badline, `line` - -if __name__ == '__main__': - main() |