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