SessionSmithとは?
Jupyter NotebookやPythonスクリプトの変数・オブジェクトの状態をまるごと保存&復元できたら便利ですよね。SessionSmithは、たった2行で「セッション保存」「復元」ができる超軽量ツールです。データ分析系のPJTでは、データ分析からモデル精度の改善まで一つのファイルで実施するのは困難です。また、一つのファイルに責務を詰め込むのはベターとは言えないですよね。
そこで、読み込んでいるローカル変数等を全て一括でpickleファイルに書き出し、それを別のファイルで読み込むことで、継続することができるようになります。特に、 Google Colabなどではセッションの再起動で、最初からやり直しとなることがあるので、中断する時にも便利ではないでしょうか。
📦 インストール
pip install SessionSmith
🏃♂️ 使い方(基本)
from SessionSmith import save_session, load_session
a = 123
text = "Qiita最高!"
# セッション(ローカル変数など)を保存
save_session("my_session.pkl")
# カーネル再起動してもOK
# 復元すると、変数が元通り!
load_session("my_session.pkl")
print(a, text) # → 123 Qiita最高!
📝 主な機能
- 変数・関数・オブジェクトなどをpickle形式で保存/復元
- gzip/bz2圧縮対応(
.gz,.bz2拡張子自動判別) - セッション情報の確認・比較(
show_session()/diff_session()) - 自動バックアップ(ファイル名重複時)
- カスタムシリアライザー対応
- 安全のための簡易バリデーション関数付き
⚠️ セキュリティ注意
pickleファイルのロードは必ず信頼できるファイルのみを使ってください。不審なファイルはverify_session()で検証できます。
💡 便利な使い方
1. 圧縮して保存
save_session("work.pkl.gz") # gzip圧縮
save_session("work.pkl.bz2") # bz2圧縮
2. セッションの中身を確認
from SessionSmith import show_session
show_session("my_session.pkl")
3. セッションファイル同士を比較
from SessionSmith import diff_session
diff_session("ver1.pkl", "ver2.pkl")
👍 こんなとき便利
- 計算途中の変数を「まるごと」 pickle保存したい
- ノートブックやカーネル再起動を安全にしたい
- 実験や案件ごとにセッションをスナップショット化したい
- チームや複数PCで作業状態を共有したい
🚀 インストール、詳細は
ぜひ、使ってみてください!!