\section{\module{tabnanny} ---
         あいまいなインデントの検出}

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

\declaremodule{standard}{tabnanny}
\modulesynopsis{ディレクトリツリー内のPythonのソースファイルで問題となる空白を検出するツール。}
\moduleauthor{Tim Peters}{tim_one@users.sourceforge.net}
\sectionauthor{Peter Funk}{pf@artcom-gmbh.de}

差し当たり、このモジュールはスクリプトとして呼び出すことを意図しています。しかし、IDE上にインポートして下で説明する関数\function{check()}を使うことができます。

\warning{このモジュールが提供するAPIを将来のリリースで変更する確率が高いです。このような変更は後方互換性がないかもしれません。}

\begin{funcdesc}{check}{file_or_dir}
  \var{file_or_dir}がディレクトリであってシンボリックリンクでないときに、\var{file_or_dir}という名前のディレクトリツリーを再帰的に下って行き、この通り道に沿ってすべての\file{.py}ファイルを変更します。\var{file_or_dir}が通常のPythonソースファイルの場合には、問題のある空白をチェックします。診断メッセージはprint文を使って標準出力に書き込まれます。
\end{funcdesc}


\begin{datadesc}{verbose}
  冗長なメッセージをプリントするかどうかを示すフラグ。スクリプトとして呼び出された場合は、\code{-v}オプションによって増加します。
\end{datadesc}


\begin{datadesc}{filename_only}
  問題のある空白を含むファイルのファイル名のみをプリントするかどうかを示すフラグ。スクリプトとして呼び出された場合は、\code{-q}オプションによって真に設定されます。
\end{datadesc}


\begin{excdesc}{NannyNag}
  あいまいなインデントを検出した場合に\function{tokeneater()}によって発生させられます。\function{check()}で捕捉され処理されます。
\end{excdesc}


\begin{funcdesc}{tokeneater}{type, token, start, end, line}
  この関数は関数\function{tokenize.tokenize()}へのコールバックパラメータとして\function{check()}によって使われます。
\end{funcdesc}

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

\begin{seealso}
  \seemodule{tokenize}{Pythonソースコードの字句解析器。}
  % XXX may be add a reference to IDLE?
\end{seealso}
