PythonTidy — это утилита для переформатирования исходного кода Python в соответствии с руководством по стилю Python PEP-8 . Он очищает ваш исходный код и заставляет придерживаться рекомендуемых сообществом практик.
PythonTidy не собирает и не проверяет исходный код Python — он переписывает его в соответствии с настроенными правилами PEP-8 (и другими).
PythonTidy очень полезен, если вам нужно
- очистить старые кодовые базы и заставить их охватить PEP-8
- работать с людьми, которые еще не придерживаются строгих правил программирования (это помогает преобразовать их, если вы можете заставить их использовать текстовый редактор, который выделяет ошибки на заднем плане)
Придерживаться PEP-8 также необходимо, когда вы используете текстовый редактор, который выделяет ошибки в тексте исходного кода при вводе. Если ваш исходный код полон ненужных стилевых ошибок, вы пропустите фактические ошибки линтинга среди них.
PythonTidy был создан Чаком Родом.
1. Плагин PythonTidy для Sublime Text 2
Базовый PythonTidy работает из командной строки. Тем не менее, в этом блоге я покажу, как использовать плагин PythonTidy от Andreas Zeidler в редакторе кода Sublime Text 2 с интеграцией одним нажатием клавиши. Sublime Text 2 обладает очень мощной поддержкой Python для линтинга через пакет SublimeLinterl , выделяя стиль и ошибки линтинга при вводе.
Сначала установите PythonTidy с помощью git (примечание: собственный установщик управления пакетами Sublime Text 2 не работает из-за использования подмодулей Git, это необходимо сделать из командной строки).
Ниже приведен скриншот с двумя ошибками стиля (без пробела после запятой, неправильное количество переводов строк между блоками кода основного уровня модуля).
Теперь вы просто нажимаете CONTRL + CMD + ALT + T: ваш источник исправлен:
2. Настройка PythonTidy для возвышенного текста 2
PythonTidy использует файл конфигурации ~ / .pythontidy.xml . Значение по умолчанию, которое большинство людей, вероятно, захотят изменить, — это длина строки — PythonTidy сокращает вашу строку до 76 символов по умолчанию, как рекомендовано PEP-8, и это действительно довольно мало для современных широкоэкранных экранов, тратя много места. (Я знаю, что есть некоторые сумасшедшие люди, использующие tmux + vim + некоторые другие терминальные вещи из золотых ранних 80-х и разделяющие их экран на 12 мини-квадратов, но большинство из нас этого не делают…)
Параметры конфигурации описаны в PythonTidyWrapper.py . Дополнительные примеры настроек доступны в этом Gist . Вот что я бросил в конфиге:
<config> <parm name="COL_LIMIT" value="int(1000)" /> <parm name="SHEBANG" value="" /> <parm name="PARENTHESIZE_TUPLE_DISPLAY" value="bool(False)" /> <parm name="ADD_BLANK_LINES_AROUND_COMMENTS" value="bool(False)" /> <parm name="ADD_BLANK_LINE_AFTER_DOC_STRING" value="bool(False)" /> <parm name="MAX_SEPS_FUNC_DEF" value="int(99)" /> <parm name="MAX_SEPS_FUNC_REF" value="int(99)" /> <parm name="WRAP_DOC_STRINGS" value="bool(False)" /> <parm name="NORMALIZE_DOC_STRINGS" value="bool(False)" /> </config>
Примечание. Похоже, вы не можете добавлять комментарии XML в конфигурации на данный момент.
3. Другие текстовые редакторы
Пожалуйста, оставьте комментарий, если вы знаете какие-либо другие текстовые редакторы с поддержкой PythonTidy или фоновой поддержкой PEP-8. Меня особенно интересует, как можно интегрировать это с Eclipse + PyDev.
Также больше Sublime Text 2 советов для разработчиков Python .