tabnanny (version 6)
index
/usr/local/lib/python2.3/tabnanny.py

The Tab Nanny despises ambiguous indentation.  She knows no mercy.
 
tabnanny -- Detection of ambiguous indentation
 
For the time being this module is intended to be called as a script.
However it is possible to import it into an IDE and use the function
check() described below.
 
Warning: The API provided by this module is likely to change in future
releases; such changes may not be backward compatible.

 
Modules
       
getopt
os
sys
tokenize

 
Classes
       
exceptions.Exception
NannyNag
Whitespace

 
class NannyNag(exceptions.Exception)
    Raised by tokeneater() if detecting an ambiguous indent.
Captured and handled in check().
 
  Methods defined here:
__init__(self, lineno, msg, line)
get_line(self)
get_lineno(self)
get_msg(self)

Methods inherited from exceptions.Exception:
__getitem__(...)
__str__(...)

 
class Whitespace
     Methods defined here:
__init__(self, ws)
equal(self, other)
# return true iff indent_level(t) == other.indent_level(t)
# for all t >= 1
indent_level(self, tabsize)
less(self, other)
# Return True iff indent_level(t) < other.indent_level(t)
# for all t >= 1.
# The algorithm is due to Vincent Broman.
# Easy to prove it's correct.
# XXXpost that.
# Trivial to prove n is sharp (consider T vs ST).
# Unknown whether there's a faster general way.  I suspected so at
# first, but no longer.
# For the special (but common!) case where M and N are both of the
# form (T*)(S*), M.less(N) iff M.len() < N.len() and
# M.num_tabs() <= N.num_tabs(). Proof is easy but kinda long-winded.
# XXXwrite that up.
# Note that M is of the form (T*)(S*) iff len(M.norm[0]) <= 1.
longest_run_of_spaces(self)
# return length of longest contiguous run of spaces (whether or not
# preceding a tab)
not_equal_witness(self, other)
# return a list of tuples (ts, i1, i2) such that
# i1 == indent_level(ts) != other.indent_level(ts) == i2.
# Intended to be used after not equal(other) is known, in which
# case it will return at least one witnessing tab size.
not_less_witness(self, other)
# return a list of tuples (ts, i1, i2) such that
# i1 == indent_level(ts) >= other.indent_level(ts) == i2.
# Intended to be used after not less(other) is known, in which
# case it will return at least one witnessing tab size.

Data and other attributes defined here:
S = ' '
T = '\t'

 
Functions
       
check(file)
check(file_or_dir)
 
If file_or_dir is a directory and not a symbolic link, then recursively
descend the directory tree named by file_or_dir, checking all .py files
along the way. If file_or_dir is an ordinary Python source file, it is
checked for whitespace related problems. The diagnostic messages are
written to standard output using the print statement.
errprint(*args)
format_witnesses(w)
main()
process_tokens(tokens)

 
Data
        __all__ = ['check', 'NannyNag', 'process_tokens']
__version__ = '6'
filename_only = 0
verbose = 0