Yapf — Доработка Кода Python С Помощью Автокорректора

В эпоху растущей популярности различных js и css линтеров неудивительно, что появился удобный линтер с автокоррекцией для Python. Привет, Япф — готовое решение для превращения путаницы строк в полностью читаемый код. И поверьте, оно вам понадобится.



Yapf — доработка кода Python с помощью автокорректора

Большинство современных линтеров для Python, таких как autopep8 и pep8ify, созданы для удаления ошибок в коде.

Это имеет некоторые очевидные ограничения.

Например, код, соответствующий PEP8, невозможно переформатировать.

Но это не значит, что код выглядит хорошо.

YAPF придерживается другого подхода.

Он основан на "clang-формат" , разработанный Дэниелом Джаспером.

По сути, алгоритм берет код и переформатирует его в формат, соответствующий руководству по стилю, даже если исходный код не нарушает руководство по стилю.

Идея также аналогична инструменту gofmt для языка программирования Go: конец всем священным войнам форматирования — если вся кодовая база проекта просто прокачивается через YAPF при каждом внесении изменений, стиль остается единообразным во всем проекте, и есть нет смысла спорить о стиле в каждом обзоре кода.

Конечная цель состоит в том, чтобы код YAPF на Python писался так же хорошо, как код, который мог бы написать программист, если бы он следовал руководству по стилю.

Это избавляет от тяжелой работы по поддержанию кода.

Теперь перейдем к практической части: YAPF можно использовать либо из командной строки, либо как плагин текстового редактора.

В настоящее время существуют плагины для Emacs, VIM и Sublime Text. В основном я использую Sublime Text, поэтому покажу вам, как настроить его для использования YAPF. Плагин для Sublime Text — github.com/jason-kane/PyYapf 1. Установка.

   

pip install yapf

Установите Sublime Package Control, следуя инструкциям здесь (если вы еще этого не сделали).

Ctrl-Shift-P (Mac: Cmd-Shift-P) и выберите «Управление пакетами: Установить пакет».

Найдите в списке «PyYapf Python Formatter».

2. Настройка.

После установки у вас в меню настроек появится PyYapf.

Yapf — доработка кода Python с помощью автокорректора

Чтобы все работало, вам нужно указать, где у вас находится файл Yapf (в моем случае он находился в папке Python) Откройте настройки PyYapf — Настройки по умолчанию, скопируйте их.

Затем откройте PyYapf — Настройки пользователя, вставьте скопированные правила и укажите путь к файлу Yapf.

Yapf — доработка кода Python с помощью автокорректора

После этого вы уже можете использовать YAPF для форматирования кода.

Нажмите Ctrl-Alt-F, и код будет преобразован.

Настройки по умолчанию — PEP8. Пример до и после.



Yapf — доработка кода Python с помощью автокорректора

В нем можно настроить множество правил.

YAPF позволяет гибко настраивать различные параметры, подробнее здесь - https://github.com/google/yapf#id8 Надеюсь, YAPF поможет вам написать красивый и чистый код, соответствующий многочисленным стандартам.

Теги: #python #codestyle #linter #pep8 #python #дизайн и рефакторинг

Вместе с данным постом часто просматривают: