この機能を探していましたが、ドキュメントに表示されなかったため、機能リクエストを開いています。
Python 2/3互換のコードを取得し、Python2サポートを可能な限り削除するフィクサーが欲しいです。
これは:
__future__
インポートを削除します(たとえば、 print_function
)from future import standard_library
とstandard_library.install_aliases()
行を削除しますfrom builtins import *
行を削除しますfrom future.utils import python_2_unicode_compatible
削除しますそのようなフィクサーがすでに存在する場合、私はそれについて知りたいです。
私のクライアントの多くは、 future
を使用してコードをPython 3にアップグレードし、その後すぐにPython 2のサポートを終了しています。このような修正プログラムは、非常に役立ちます。
存在する場合、それは十分に文書化されていません。 手動ですべてを削除する必要がありました。 -3
などのフラグを使用して自動実行されるフィクスチャを使用して、3コンプライアンスのみをリファクタリングし、python2互換性を無視することをお勧めします。
私は自分でいくつかの変換を行い、それらをスクリプトにバンドルしました。 現在、ここで入手できます: https :
いくつかの重複がある関連ツール(つまり、 __future__
インポート):
asottile / pyupgrade:言語の新しいバージョンの構文を自動的にアップグレードするためのツール(およびpre-commitフック)。
その他の注目すべき点:
u
プレフィックスを削除しますclass
定義から(object)
を削除しますsuper()
呼び出しを更新しますmock
インポートを更新しますそうは言っても、 standard_library
sed
を使用することができました:
sed -i '' '/.*standard_library.*/d' **/*.py
-from future import standard_library
-standard_library.install_aliases()
import json
import logging
import urllib.parse
私は同じことをすることを計画しています:
.*python_2_unicode_compatible.*
.*implements_iterator.*
from builtins.*
私はすでにpyupgradeを知っていて、それを使用しました。 とても助かります。
pyupgrade
(およびpre-commitフック)は、この目的に最適なツールです。 代替案が利用可能であるため、このFRを閉じることはできますか?
最も参考になるコメント
私は自分でいくつかの変換を行い、それらをスクリプトにバンドルしました。 現在、ここで入手できます: https :