\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@users.sourceforge.net}
\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.

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