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

% rudimentary documentation based on module comments, by Peter Funk
% <pf@artcom-gmbh.de>

\declaremodule{standard}{tabnanny}
\modulesynopsis{Tool for detecting white space related problems
                in Python source files in a directory tree.}
\moduleauthor{Tim Peters}{tim_one@email.msn.com}
\sectionauthor{Peter Funk}{pf@artcom-gmbh.de}

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.

\strong{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 set to true 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}
