【python】isortでimportするものを並び替える
isortを使用することで、PEP8(pythonのコーディング規約)に準じたimportモジュールの自動並び替えができます。
isort前のコード
code:isort.py
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")
実行
code:実行
$ isort isort.py
Fixing /path/to/isort.py
$
isort後のコード
code:isort.py
from __future__ import absolute_import
import os
import sys
from my_lib import Object, Object2, Object3
from third_party import (lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8, lib9,
lib10, lib11, lib12, lib13, lib14, lib15)
print("Hey")
print("yo")
※実行したら即書き換えられるので注意すること。
※変更がない場合は何も出力されない
また、以下のようにすれば差分表示のみで適用はしない。
code:diff
$ isort isort.py --diff
--- /path/to/isort.py:before 2022-09-04 07:43:39.978288
+++ /path/to/isort.py:after 2022-09-04 07:43:44.082672
@@ -1,20 +1,11 @@
-from my_lib import Object
+from __future__ import absolute_import
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
+from my_lib import Object, Object2, Object3
+from third_party import (lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8, lib9,
+ lib10, lib11, lib12, lib13, lib14, lib15)
print("Hey")
print("yo")
参考