PythonコードがPEP8に準拠しているかどうかを検証するツールがあることは知っています。例えば、オンラインサービスそしてPythonモジュール。
しかし、私はそれができるサービスやモジュールを見つけることができません変換する私の Python ファイルを自己完結型の PEP8 対応 Python ファイルに変換します。そのようなファイルがあるかどうか、誰か知っていますか?
PEP8 はコードの外観がすべてなので、実現可能だと思いますが、本当でしょうか?
ベストアンサー1
使用できますオートペップ8! コーヒーを淹れている間に、このツールは、意味コードの。
pip 経由でインストールします:
pip install autopep8
これを特定のファイルに適用します。
autopep8 py_file --in-place
またはプロジェクトに(再帰的に)詳細オプションは進捗状況のフィードバックを提供します:
autopep8 project_dir --recursive --in-place --pep8-passes 2000 --verbose
注: デフォルトの 100 回のパスでは十分でない場合があります。私は、これを 2000 に設定しました。これは、妥当な値であり、最も問題のあるファイル以外をすべてキャッチします (解決可能な pep8 違反が見つからない場合は、パスを停止します)。
この時点で、再テストしてコミットすることをお勧めします。
あなたが望むなら"満杯"PEP8 準拠: 私が使用した戦術の 1 つは、上記のように autopep8 を実行し、次に PEP8 を実行して、残りの違反 (ファイル、行番号、内容) を印刷することです。
pep8 project_dir --ignore=E501
これらを個別に手動で変更します (例: E712s - ブール値による比較)。
注: autopep8 は--aggressive
引数を提供します (これらの意味が変わる違反を容赦なく「修正」するため)。ただし、aggressive を使用する場合はデバッグが必要になる可能性があるので注意してください... (たとえば、numpy/pandas ではTrue == np.bool_(True)
そうではありませんTrue is np.bool_(True)
!)
各タイプの違反の数(前と後)を確認できます。
pep8 --quiet --statistics .
注: E501 (行が長すぎます) は特別なケースであると考えられます。コード内にこのようなケースが多数存在し、autopep8 によって修正されないことがあるためです。