1:mod:`tabnanny` --- Detection of ambiguous indentation
2======================================================
3
4.. module:: tabnanny
5   :synopsis: Tool for detecting white space related problems in Python
6              source files in a directory tree.
7
8.. moduleauthor:: Tim Peters <tim_one@users.sourceforge.net>
9.. sectionauthor:: Peter Funk <pf@artcom-gmbh.de>
10
11.. rudimentary documentation based on module comments
12
13**Source code:** :source:`Lib/tabnanny.py`
14
15--------------
16
17For the time being this module is intended to be called as a script. However it
18is possible to import it into an IDE and use the function :func:`check`
19described below.
20
21.. note::
22
23   The API provided by this module is likely to change in future releases; such
24   changes may not be backward compatible.
25
26
27.. function:: check(file_or_dir)
28
29   If *file_or_dir* is a directory and not a symbolic link, then recursively
30   descend the directory tree named by *file_or_dir*, checking all :file:`.py`
31   files along the way.  If *file_or_dir* is an ordinary Python source file, it
32   is checked for whitespace related problems.  The diagnostic messages are
33   written to standard output using the :func:`print` function.
34
35
36.. data:: verbose
37
38   Flag indicating whether to print verbose messages. This is incremented by the
39   ``-v`` option if called as a script.
40
41
42.. data:: filename_only
43
44   Flag indicating whether to print only the filenames of files containing
45   whitespace related problems.  This is set to true by the ``-q`` option if called
46   as a script.
47
48
49.. exception:: NannyNag
50
51   Raised by :func:`process_tokens` if detecting an ambiguous indent. Captured and
52   handled in :func:`check`.
53
54
55.. function:: process_tokens(tokens)
56
57   This function is used by :func:`check` to process tokens generated by the
58   :mod:`tokenize` module.
59
60.. XXX document errprint, format_witnesses, Whitespace, check_equal, indents,
61   reset_globals
62
63
64.. seealso::
65
66   Module :mod:`tokenize`
67      Lexical scanner for Python source code.
68