pythonモジュールのシンボルを指定したものだけ公開したい
以下のようなモジュールを定義したとします。
# libmod.py
import os
def get_cwd():
os.getcwd()
利用者はこれをインポートしますが、IDE等の補完候補にlibmod.pyがimportしているosを表示したくないのです。
from libmod import os # <= osはlibmodの実装に使っているだけなので候補に出したくない
ドキュメントをしっかり作成しておけば問題ないと思うのですが、そうではない場合、利用者側にとってどれがこのモジュールが提供する機能なのか判断しづらいように思います。
パッと思いつくのは実装用のモジュールと、公開用のモジュールを別にする方法です。
# _libmod.py
import os
def get_cwd():
os.getcwd()
# libmod.py
from ._libmod import get_cwd
# app.py
from libmod import get_cwd
ただ、この方法だとファイル数が2倍になってしまい面倒です。何かスマートな解決方法はないでしょうか?