最新のドキュメントを読む - GitHub コード リポジトリを参照する
インポートをソートするので、その必要はありません。
isort は、インポートをアルファベット順に並べ替え、自動的にセクションとタイプ別に分ける Python ユーティリティ/ライブラリです。すべてのインポートをすばやく並べ替えるためのコマンド ライン ユーティリティ、Python ライブラリ、およびさまざまなエディター用のプラグインが提供されます。実行するには Python 3.8 以降が必要ですが、Python 2 コードのフォーマットもサポートしています。
分離前:
from my_lib import Object
import os
from my_lib import Object3
from my_lib import Object2
import sys
from third_party import lib15 , lib1 , lib2 , lib3 , lib4 , lib5 , lib6 , lib7 , lib8 , lib9 , lib10 , lib11 , lib12 , lib13 , lib14
import sys
from __future__ import absolute_import
from third_party import lib3
print ( "Hey" )
print ( "yo" )
分離後:
from __future__ import absolute_import
import os
import sys
from third_party import ( lib1 , lib2 , lib3 , lib4 , lib5 , lib6 , lib7 , lib8 ,
lib9 , lib10 , lib11 , lib12 , lib13 , lib14 , lib15 )
from my_lib import Object , Object2 , Object3
print ( "Hey" )
print ( "yo" )
isort のインストールは次のように簡単です。
pip install isort
コマンドラインから:
特定のファイルに対して実行するには:
isort mypythonfile.py mypythonfile2.py
再帰的に適用するには:
isort .
globstar が有効な場合、 isort .
は以下と同等です:
isort ** / * .py
提案された変更を適用せずに表示するには:
isort mypythonfile.py --diff
最後に、プロジェクトに対して isort をアトミックに実行し、構文エラーが発生しない場合にのみ変更を適用します。
isort --atomic .
(注: 別のバージョンの Python を使用して作成されたコードに対して isort が実行されるのを防ぐため、これはデフォルトで無効になっています。)
Python 内から:
import isort
isort . file ( "pythonfile.py" )
または:
import isort
sorted_code = isort . code ( "import b n import a n " )
さまざまなテキスト エディタ内から isort を使用できるようにするいくつかのプラグインが作成されています。それらの完全なリストは isort wiki で見つけることができます。さらに、他のテキスト エディター用のプラグインを含むプル リクエストを積極的に受け入れ、通知されたらドキュメントを追加します。
上にある「multi_line_output」設定に注目してください。この設定は、インポートが line_length 制限を超えた場合にインポートを折り返す方法を定義し、12 個の可能な設定があります。
一定のインデントの表示方法を変更するには、次の許容される形式で indent プロパティを変更するだけです。
例えば:
" "
は4に相当します。
かっこを使用するインポート スタイルの場合、 include_trailing_comma
オプション (デフォルトはFalse
) を使用して、最後のインポートの後に末尾のコンマを含めるかどうかを制御できます。
isort 3.1.0 では、バランスの取れた複数行インポートのサポートが追加されました。これを有効にすると、isort は定義された最大インポート長を下回ったまま、最もバランスのとれたグリッドを生成する長さにインポート長を動的に変更します。
例:
from __future__ import ( absolute_import , division ,
print_function , unicode_literals )
以下の代わりに生成されます:
from __future__ import ( absolute_import , division , print_function ,
unicode_literals )
これを有効にするには、構成内でbalanced_wrapping
True
に設定するか、コマンド ライン ユーティリティに-e
オプションを渡します。
isort は、インポートをセクションに編成、順序付け、またはグループ化する方法のほぼすべての側面を変更する構成オプションを提供します。
これらすべてのオプションの概要については、ここをクリックしてください。
isort に単一のインポートを無視させるには、テキストisort:skip
含むインポート行の末尾にコメントを追加するだけです。
import module # isort:skip
または:
from xyz import ( abc , # isort:skip
yo ,
hey )
isort にファイル全体をスキップさせるには、モジュールの doc 文字列にisort:skip_file
を追加するだけです。
""" my_module.py
Best module ever
isort:skip_file
"""
import b
import a
isort を実行したり、インポートを自動的に追加/削除するように構成したりできます。
完全なガイドはこちらをご覧ください。
--check-only
オプションisort は、 -c
を指定して実行することにより、コードが正しくフォーマットされていることを確認するためにも使用できます。不適切にソートまたはフォーマットされたインポートを含むファイルはすべてstderr
に出力されます。
isort ** / * .py -c -v
SUCCESS: /home/timothy/Projects/Open_Source/isort/isort_kate_plugin.py Everything Looks Good !
ERROR: /home/timothy/Projects/Open_Source/isort/isort/isort.py Imports are incorrectly sorted.
これを使用できる優れた場所の 1 つは、@acdha による次のような、コミット前の git フックを使用することです。
https://gist.github.com/acdha/8717683
これは、プロジェクト全体を通じて一定レベルのコード品質を確保するのに役立ちます。
isort は、コミット前に Python コードをチェックするために、Git コミット前スクリプトに統合できるフック関数を提供します。
詳細については、こちらをご覧ください。
isort をインストールすると、プロジェクトによって宣言された Python ファイルをチェックするsetuptools
コマンドが有効になります。
詳細については、こちらをご覧ください。
このバッジをリポジトリの先頭に配置すると、プロジェクトで isort が使用されていることを他の人に知らせることができます。
README.md の場合:
[ ![ Imports: isort ] ( https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336 )] ( https://pycqa.github.io/isort/ )
または README.rst:
.. image :: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
:target: https://pycqa.github.io/isort/
セキュリティの脆弱性を報告するには、Tidelift のセキュリティ連絡先を使用してください。 Tidelift が修正と公開を調整します。
isort は単にインポート ソートの略です。元々は「sortImports」と呼ばれていましたが、余分な文字を入力するのにうんざりし、キャメルケースはPythonではないことに気づきました。
私が isort を書いたのは、私が以前働いていた組織で、ある日マネージャーがやって来て、すべてのコードでインポートをアルファベット順にソートする必要があると判断したからです。コードベースは巨大でした - そして彼は私たちがそれを手作業で行うことを意図していました。ただし、プログラマーである私は、関数の実行に 8 時間を何も考えずに費やすのは怠け者ですが、自動化に 16 時間を費やすのは怠け者ではありません。私はsortImportsをオープンソースにする許可を与えられました、そしてここにいます:)
Tidelift サブスクリプションで専門家によるサポートを受けることができます
isort のプロフェッショナル サポートは、Tidelift サブスクリプションの一部として利用できます。 Tidelift は、既存のツールとシームレスに統合しながら、ソフトウェア開発チームにソフトウェアの購入と保守のための単一ソースを提供し、ソフトウェアを最もよく知っている専門家によるプロレベルの保証を提供します。
ありがとうございます。isort がお役に立てば幸いです。
〜ティモシー・クロスリー