> **Источник:** https://python-all.ru/3.3/library/tabnanny.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 31.8. [`tabnanny`](https://python-all.ru/3.3/library/tabnanny.html#module-tabnanny) – Обнаружение неоднозначных отступов

**Исходный код:** [Lib/tabnanny.py](https://python-all.ru/src/3.3/Lib/tabnanny.py)

---

В настоящее время этот модуль предназначен для запуска в качестве скрипта. Однако его можно импортировать в IDE и использовать функцию [`check()`](https://python-all.ru/3.3/library/tabnanny.html#tabnanny.check) описанную ниже.

> **Примечание**
>
> API, предоставляемый этим модулем, может измениться в будущих выпусках; такие изменения могут быть несовместимы с предыдущими версиями.

#### `tabnanny.check(file_or_dir)`

Если *file\_or\_dir* является каталогом, а не символической ссылкой, то рекурсивно обходит дерево каталогов, заданное *file\_or\_dir*, проверяя все `.py` файлы по пути. Если *file\_or\_dir* – обычный исходный файл Python, он проверяется на наличие проблем, связанных с пробельными символами. Диагностические сообщения выводятся в стандартный вывод с помощью функции [`print()`](https://python-all.ru/3.3/library/functions.html#print).

#### `tabnanny.verbose`

Флаг, указывающий, выводить ли подробные сообщения. Увеличивается с помощью опции `-v`, если модуль запускается как скрипт.

#### `tabnanny.filename_only`

Флаг, указывающий, выводить только имена файлов, содержащих проблемы, связанные с пробельными символами. Устанавливается в true опцией `-q`, если вызывается как скрипт.

#### `exception tabnanny.NannyNag`

Вызывается [`tokeneater()`](https://python-all.ru/3.3/library/tabnanny.html#tabnanny.tokeneater) при обнаружении неоднозначного отступа. Перехватывается и обрабатывается в [`check()`](https://python-all.ru/3.3/library/tabnanny.html#tabnanny.check).

#### `tabnanny.tokeneater(type, token, start, end, line)`

Эта функция используется [`check()`](https://python-all.ru/3.3/library/tabnanny.html#tabnanny.check) в качестве параметра-колбэка для функции [`tokenize.tokenize()`](https://python-all.ru/3.3/library/tokenize.html#tokenize.tokenize).

> **См. также**
>
> **Модуль [`tokenize`](https://python-all.ru/3.3/library/tokenize.html#module-tokenize)**
>
> Лексический анализатор для исходного кода Python.
