2012-02-11 4 views
18

私は、pep8準拠のスタイル/フォーマットが必要なPythonコードの大きな本体を持っています。様々なルール(例えばthis one by a coworker)があるpep8の亜種がありますが、最も困難なことは、長すぎる行を分割して変更されたコードをフォーマットすることです。プログラマティックなpythonソースフォーマッタ

私はこの上の質問を見てきました:

  1. python-formatter-tool
  2. python-source-formatter-pretty-printer

は、彼らが2009年と2010年から、私はより良いツールはそれ以来、開発されていることを期待していますされています。

私はPythonTidyについてよく知っていますが、これはかなり良いですが、多くのコードを悪化させる、IMHO。 Pylintは書式設定エラーを検出しますが、修正はしません。ビルドの一部となるツールが必要なので、Webサービスは私の要件にはあまり関係しません。

誰かが、まだカバーされていない推薦を持っていますか?ありがとう。

+0

おそらくプログラマチックではありません。 – hughdbrown

+2

投票の終わりに関しては、なぜPython書式設定ツールに関する2つの以前の質問が近い票を持たないのか知ることは役に立ちますが、この試みは有益です。 – hughdbrown

答えて

1

Googleのyapfは非常にうまく機能します。

ここにオンラインデモあります:yapf.now.sh

はあなたのワークフローに統合して、あなたのエディタやGitのプリコミットフックまたはそのような何かなどのファイルを保存するときにそれを実行することができます。

+1

時計を停止します。私たちは勝者を持っています。これは私が望むものに最も近いものです。答えを得るのにわずか6年しかかかりませんでした! – hughdbrown

7

かなりまともに見えるもう1:盲目的PEP8内のすべての規則を次のようautopep8

しかし、注目すべきは、PEP8の精神で、実際にはありません。 PEP8自体から:

しかし、最も重要なのは、いつ矛盾するかを知っている - 時には スタイルガイドは適用されません。

+0

先ほど、pep8のエラーを扱うものがありますが、長すぎる行を知的に処理するものは何も持っていないので、より一般的な解決策であるコードフォーマッタが必要であると私は信じていました。 – hughdbrown

2

PyCharm行を分割するに建てられたこの機能を持っているように思われ、現在フリーでオープンソースコミュニティ版を持っています。あなたのファイルを開いて、を押すと、Alt が表示されます。

不幸にも、関数名と変数名をPEP8の規則に自動的にリファクタリングすることはありません。PyCharmの名前変更機能を使って関数名と変数名を1つずつリファクタリングする必要があります。

関連する問題