Какой ближайший Python эквивалентен Perl :: Tidy? - PullRequest
4 голосов
/ 25 августа 2010

Исходя из Perl, я привык нажимать C-c t , чтобы переформатировать мой код в соответствии с предопределенными правилами Perl::Tidy. Теперь, с Python, я удивлен, узнав, что нет ничего, что даже отдаленно напоминает силу Perl::Tidy. PythonTidy 1.20 выглядит почти уместно, но заточено на первую неправильно выровненную строку («неожиданный отступ»).

В частности, я ищу следующее:

  • По возможности используйте PEP-8 (следующие пункты по сути являются его производными)
  • Преобразование вкладок отступов в пробелы
  • Удалить завершающие пробелы
  • Разбить код в соответствии с заранее заданной длиной строки, насколько это возможно (метод разделения строк в стиле Eclipse и цепочки разделения)
  • Нормализация пробелов вокруг
  • (функция бонуса, опция). Переформатируйте код, включая отступ.

Прямо сейчас, я иду через чужой код и исправляю все, что скажут pep8 и pyflakes, что в основном "удалить завершающий пробел" и "вставить дополнительную пустую строку". Хотя я знаю, что повторный отступ не является тривиальным в Python (даже если это возможно сделать, просто пройдя код и запомнив отступы), другие функции кажутся достаточно простыми, и я не могу поверить, что никто не реализовывал это раньше.

Есть рекомендации?

Обновление : Я собираюсь более глубоко взглянуть на PythonTidy, так как он, кажется, идет в правильном направлении. Может быть, я смогу узнать, почему это так больно на меня.

Ответы [ 4 ]

1 голос
/ 25 августа 2010

В каталоге scripts есть сценарий reindent.py, распространяемый вместе с python.

0 голосов
/ 10 февраля 2017

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

0 голосов
/ 27 февраля 2011

Вы пытались создать оболочку вокруг pythontidy?Здесь есть один для возвышенного редактора .

Кроме того, pythontidy правильно разбивает длинные строки для вас?Когда у меня длинная строка, оканчивающаяся на кортеж, она создает новую строку для каждой записи в кортеже, вместо использования подразумеваемого продолжения строки Python в скобках, скобках и скобках, как предложено в PEP-8.

0 голосов
/ 25 августа 2010

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

...