Python-future: 将来化されたコードから__future__ / futureインポートを削除するための修正プログラム

作成日 2019年05月28日  ·  5コメント  ·  ソース: PythonCharmers/python-future

この機能を探していましたが、ドキュメントに表示されなかったため、機能リクエストを開いています。

Python 2/3互換のコードを取得し、Python2サポートを可能な限り削除するフィクサーが欲しいです。

これは:

  • 不要な__future__インポートを削除します(たとえば、 print_function
  • from future import standard_librarystandard_library.install_aliases()行を削除します
  • from builtins import *行を削除します
  • from future.utils import python_2_unicode_compatible削除します

そのようなフィクサーがすでに存在する場合、私はそれについて知りたいです。

私のクライアントの多くは、 futureを使用してコードをPython 3にアップグレードし、その後すぐにPython 2のサポートを終了しています。このような修正プログラムは、非常に役立ちます。

futurize script help wanted unscheduled wontfix / cantfix

最も参考になるコメント

私は自分でいくつかの変換を行い、それらをスクリプトにバンドルしました。 現在、ここで入手できます: https

全てのコメント5件

存在する場合、それは十分に文書化されていません。 手動ですべてを削除する必要がありました。 -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を閉じることはできますか?

このページは役に立ちましたか?
0 / 5 - 0 評価