Форматирование кода Python

Вставьте скрипт Python с отступами из табуляций или с неодинаковым числом пробелов: инструмент приведёт отступы к единым 4 пробелам на уровень, не затрагивая логическую структуру кода.

Внимание: в Python отступы являются частью синтаксиса. Этот форматировщик лишь нормализует ширину существующих отступов (как autopep8 --select=E1), он не переупорядочивает строки и выражения, как это делает полноценный инструмент вроде black.

Пример:

Как это работает

Инструмент определяет единицу отступа, используемую в вашем скрипте (например, 2 пробела, 3 пробела или табуляции, преобразованные в по 4 пробела), вычисляя наибольший общий делитель длин отступов на непустых строках. Затем каждая строка переписывается ровно с 4 пробелами на каждый определённый относительный уровень, без изменения её содержимого и порядка. Пустые строки и пробелы в конце строк очищаются.

Может ли поведение скрипта измениться после форматирования?

Нет, если исходные отступы были последовательными (везде использовалась одна и та же единица): меняется только визуальная ширина отступа, но не реальный уровень вложенности блоков. Если в исходном файле уже были смешаны несогласованные отступы (например, 2 пробела в одном месте и 3 в другом), автоматическое определение может ошибиться: всегда проверяйте результат перед запуском.

Поддерживаются ли табуляции?

Да: каждая табуляция в начале строки перед анализом преобразуется в 4 пробела, поэтому скрипт с отступами-табуляциями обрабатывается точно так же, как скрипт с отступами в 4 пробела.

Форматирование выполняется на 100% локально в вашем браузере: ваш код Python никогда не отправляется на сервер.