Pythonファイルの冒頭に書かれるimport文ですが、表記順をどうしようか、迷ってしまうことはありませんでしょうか?そんな時に簡単に整理してくれるのが"isort" というコマンドです。Pythonのコンソール上で、 整理したいファイルのあるディレクトリに移動し、以下のコマンドを実行してみましょう。
isort .
これで、現在のディレクトリ以下にある全てのPythonファイルのimport文の順番を綺麗に整理してくれます。順番はPythonコードのコーディング規約PEP8のルールに則て整理されます。
import文 は次の順番でグループ化すべきです:
- 標準ライブラリ
- サードパーティに関連するもの
- ローカルな アプリケーション/ライブラリ に特有のもの
上のグループそれぞれの間には、1行空白を置くべきです。
さらに、isortではグループ内の順番はアルファベット順に整理されます。これでもう迷いませんね。
「コマンドが見つかりません」と表示されて実施できない場合
isortがインストールされていない環境のようです。環境管理にpipを用いている場合は、以下のコマンドを実行してみて、現在の環境にインストールされているパッケージを確認してみましょう
pip list
リストの中にisortがない場合、pipを使ってisortをインストールしましょう。下記のコマンドでインストールできます。
pip install isort
Spyderで実施したい場合
Python用の総合開発環境Spyderでも、コンソールがありますので、isortを実施する事ができます。ですが、Spyderはデフォルトでは対話式シェルIPythonで起動されるので、そのままでは実施できません。下記のコマンドで実行する必要があります。
!isort .
先頭に"!"をつけることで、システムシェルでの実行に切り替えることができます。
対象ファイルを指定したい場合
整理を行うファイルを指定したい場合には"."の代わりに、ファイル名を入力します。
isort file.py
整理されるファイルがあるか確認したい場合
オプション"-c"をつけることで、順序ルールに違反しているファイルがあるかどうかチェックを行い、表示します。
> isort -c .
ERROR: file.py Imports are incorrectly sorted or/and formatted.
このオプションでは、変更は行わず、だたルールに沿っているか確認するのみです。
スキップされたファイルが何か確認したい場合
実施してみると、以下のように表示される場合があります。
> isort .
Skipped 2 files
これは、何かのファイルがチェックされずスキップされたことを示しています。例えば、対象ディレクトリ内にgitの対象となっているディレクトリがある場合、隠しディレクトリ.gitがスキップ対象となり、このような表示がされます。しかし、これでは何のファイルがスキップされたか、確認することができません。そんな時は、オプション ”-v”をつけて、どのようなチェックが行われたか、表示させてみましょう。
> isort -b .
_ _
(_) ___ ___ _ __| |_
| |/ _/ / _ \/ '__ _/
| |\__ \/\_\/| | | |_
|_|\___/\___/\_/ \_/
isort your imports, so you don't have to.
VERSION 5.9.3
from-type place_module for setuptools returned THIRDPARTY.
.
.
.
git was skipped as it's listed in 'skip' setting, matches a glob in 'skip_glob' setting, or is in a .gitignore file with --skip-gitignore enabled.
.
.
.
参考URL
コメント
コメントを投稿