Какой ближайший Python эквивалентен Perl::Tidy?
Исходя из Perl, я привык нажимать Cc t, чтобы переформатировать мой код в соответствии с предопределенным Perl::Tidy
правила. Теперь, с Python я удивлен, узнав, что нет ничего, что хотя бы отдаленно напоминает силу Perl::Tidy
, PythonTidy 1.20 выглядит почти уместно, но заточено на первую неправильно выровненную строку ("неожиданный отступ").
В частности, я ищу следующее:
- По возможности используйте PEP-8 (следующие пункты по сути являются производными от этого)
- Преобразовать вкладки отступов в пробелы
- Удалить завершающие пробелы
- Разбейте код в соответствии с предопределенной длиной строки, насколько это возможно (расщепление строк в стиле Eclipse и цепочки методов разбиения)
- Нормализовать пробелы вокруг
- (бонусная функция, необязательно). Переформатируйте код, включая отступ.
Прямо сейчас я иду через чужой код и исправляю все pep8
а также pyflakes
скажите мне, что в основном означает "удалить завершающий пробел" и "вставить дополнительную пустую строку". Несмотря на то, что я знаю, что повторный отступ не является тривиальным в Python (даже если это возможно сделать, просто просматривая код и запоминая отступы), другие функции кажутся достаточно простыми, и я не могу поверить, что никто не реализовывал это раньше.
Любые рекомендации?
Обновление: я собираюсь более глубоко взглянуть на PythonTidy, так как он, кажется, идет в правильном направлении. Может быть, я смогу выяснить, почему это бьет меня.
4 ответа
E сть reindent.py
Скрипт распространяется с Python в scripts
каталог.
Вы пытались создать оболочку вокруг pythontidy? Есть один для возвышенного редактора здесь.
Кроме того, правильно ли Pythontidy разбивает длинные строки для вас? Когда у меня длинная строка, оканчивающаяся на кортеж, она создает новую строку для каждой записи в кортеже, вместо использования подразумеваемого продолжения строки Python в скобках, скобках и скобках, как предложено в PEP-8.
untabify.py (Tools/scripts/untabify.py
из корневого каталога исходного дистрибутива Python) следует исправить вкладки, что может быть тем, что мешает Python Tidy выполнять остальную часть работы.