\section{\module{tabnanny} ---
        Detection of ambiguous indentation}

% rudimentary documentation based on module comments, by Peter Funk
% <[email protected]>

\declaremodule{standard}{tabnanny}
\modulesynopsis{Tool for detecting white space related problems
               in Python source files in a directory tree.}
\moduleauthor{Tim Peters}{[email protected]}
\sectionauthor{Peter Funk}{[email protected]}

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
\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.}

\begin{funcdesc}{check}{file_or_dir}
 If \var{file_or_dir} is a directory and not a symbolic link, then
 recursively descend the directory tree named by \var{file_or_dir},
 checking all \file{.py} files along the way.  If \var{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.
\end{funcdesc}


\begin{datadesc}{verbose}
 Flag indicating whether to print verbose messages.
 This is incremented by the \code{-v} option if called as a script.
\end{datadesc}


\begin{datadesc}{filename_only}
 Flag indicating whether to print only the filenames of files
 containing whitespace related problems.  This is set to true by the
 \code{-q} option if called as a script.
\end{datadesc}


\begin{excdesc}{NannyNag}
 Raised by \function{tokeneater()} if detecting an ambiguous indent.
 Captured and handled in \function{check()}.
\end{excdesc}


\begin{funcdesc}{tokeneater}{type, token, start, end, line}
 This function is used by \function{check()} as a callback parameter to
 the function \function{tokenize.tokenize()}.
\end{funcdesc}

% XXX FIXME: Document \function{errprint},
%    \function{format_witnesses} \class{Whitespace}
%    check_equal, indents
%    \function{reset_globals}

\begin{seealso}
 \seemodule{tokenize}{Lexical scanner for Python source code.}
 % XXX may be add a reference to IDLE?
\end{seealso}