Какой ближайший 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.

Я использовал autopep8 для этой цели и нашел его удобным.

untabify.py (Tools/scripts/untabify.py из корневого каталога исходного дистрибутива Python) следует исправить вкладки, что может быть тем, что мешает Python Tidy выполнять остальную часть работы.

Другие вопросы по тегам