4

C-c tPerl から来た私は、事前に定義されたPerl::Tidyルールに従ってコードを再フォーマットすることに慣れていました。今、Python を使って、Perl::Tidy. PythonTidy 1.20 はほぼ適切に見えますが、最初の行の位置がずれている (「予期しないインデント」) でバーフが発生します。

特に、私は次のことを探しています。

  • 可能な限り PEP-8 を使用します (以下の項目は基本的にこの項目から派生したものです)
  • インデント タブをスペースに変換する
  • 末尾のスペースを削除
  • 定義済みの行の長さに応じてコードを分割します (Eclipse スタイルの文字列分割とメソッド チェーンの分割)。
  • 周囲の空白を正規化する
  • (ボーナス機能、オプション) インデントを含むコードの再フォーマット。

現在、私は他の誰かのコードを調べてすべてを修正しpep8pyflakes教えてくれますが、それは主に「末尾のスペースを削除する」と「追加の空白行を挿入する」ことです。Python では再インデントが簡単ではないことはわかっていますが (コードを調べてインデントを覚えるだけで可能になるはずですが)、他の機能は簡単に思えて、これまで誰も実装したことがないとは思えません。

推奨事項はありますか?

更新: PythonTidy は正しい方向に進んでいるように見えるので、PythonTidy を詳しく見ていきます。たぶん、それが私に吠える理由を見つけることができるでしょう。

4

4 に答える 4

1

ディレクトリreindent.pyにpythonと一緒に配布されているスクリプトがあります。scripts

于 2010-08-25T15:30:08.407 に答える
0

pythontidy のラッパーを作成しようとしましたか? ここには崇高なエディター用の 1 つがあります。

また、pythontidy は長い行を適切に分割しますか? タプルで終わる長い行がある場合、PEP-8 で提案されているように、Python の暗黙の行継続を括弧、ブラケット、およびブレース内で使用する代わりに、タプル内のすべてのエントリに対して新しい行を作成します。

于 2011-02-27T16:49:56.623 に答える
0

untabify.py ( Tools/scripts/untabify.pyPython ソース配布のルート ディレクトリから) は、タブを修正する必要があります。これが、Python Tidy が残りの作業を実行するのを妨げている可能性があります。

于 2010-08-25T15:31:53.790 に答える