Wizard Notes

音楽信号解析の技術録、作曲活動に関する雑記

removestar: Pythonでワイルドカードインポートを明示的インポートに自動で置換

pypi.org

Pythonワイルドカードインポートimport * は便利ですが、どの変数・関数を利用しているか分かりにくいです。

そんな場合、このremovestarを使うと、ワイルドカードインポートを明示的インポートに置き換えてくれます。

import文周りがスッキリするので、 リファクタリングの際にきっと役立つと思います。

利用例

サンプルコード

pyqt radiobutton - Python Tutorial から拝借

利用例1 removestar file.py

インポートするモジュールが明示されているimport文が表示されます。

$removestar pyqt_example.py
--- original/pyqt_example.py
+++ fixed/pyqt_example.py
@@ -1,4 +1,4 @@
-from PyQt5.QtWidgets import *
+from PyQt5.QtWidgets import QApplication, QGridLayout, QRadioButton, QWidget
 import sys

利用例2 removestar file.py -i

-i, もしくは --in-place オプションを付けることで、file.pyワイルドカードインポートを、利用例1のような明示的インポートに置換することができます。

from PyQt5.QtWidgets import QApplication, QGridLayout, QRadioButton, QWidget
import sys

# ...