哪个是最接近Perl :: Tidy的Python?

时间:2010-08-25 15:23:22

标签: python emacs code-formatting perl-tidy

来自Perl我已经习惯按 C-c t 根据预定义的Perl::Tidy规则重新格式化我的代码。现在,有了Python,我很惊讶地发现,甚至没有任何东西可以与Perl::Tidy的力量相提并论。 PythonTidy 1.20看起来几乎是合适的,但是在第一个错误对齐的行(“意外缩进”)时被禁止。

特别是,我正在寻找以下内容:

  • 尽可能使用PEP-8(以下项目基本上是对此的推导)
  • 将缩进标签转换为空格
  • 删除尾随空格
  • 根据预定义的行长度分解代码(Eclipse风格的字符串拆分和拆分方法链)
  • 规范化周围的空白
  • (奖励功能,可选)重新格式化代码,包括缩进。

现在,我正在浏览其他人的代码并更正所有内容pep8pyflakes告诉我,主要是“删除尾随空格”和“插入额外的空白行”。虽然我知道在Python中重新缩进并不是微不足道的(尽管它应该只通过代码并记住缩进),但其他功能似乎很容易让我无法相信之前没有人实现过这一点。

有什么建议吗?

更新:我将深入研究PythonTidy,因为它似乎正朝着正确的方向发展。也许我可以找出为什么它会对我发誓。

4 个答案:

答案 0 :(得分:1)

reindent.py目录中有一个scripts脚本与python一起分发。

答案 1 :(得分:0)

untabify.py(来自Python源代码发布的根目录的Tools/scripts/untabify.py)应该修复选项卡,这可能是阻止Python Tidy完成其余工作的原因。

答案 2 :(得分:0)

您是否尝试过围绕pythontidy创建包装器? sublime editor here有一个。

另外,pythontidy会为你正确分解长队吗?当我有一个以元组结尾的长行时,它会为元组中的每个条目创建一个新行,而不是像PEP-8所建议的那样在括号,括号和括号内使用Python的隐含行继续。

答案 3 :(得分:0)

我为此目的使用autopep8并发现它很方便。