IPython データサイエンスクックブック memo (2)

2.4 Workflow using git branch

git stash

commitしていない変更の一時退避

git stash pop

変更を戻す

2.5 High reproductivce, interactive computing

  • ファイルの命名規則ディレクトリ構造を一貫性のあるものにする。
  • 全てのソフトウェアスタックの正確なバージョンを記録する
  • dill, Joblibの利用。JoblibはNumpyにも配したメモ化パターンが存在。
  • pararell, multiprocessing, Joblibなどの並列計算ライブラリを使った並列化の検討

2.6 High quality python code

  • assert の組み込み
  • クラスはなるべく避ける
  • 関数の引数にはキーワード引数を。

2.7 Unit test using nose

%%writefile -a [file]

でファイルに追記可能。

test_xxx.py モジュールをxxx.py モジュールに付随させる

テスト開始時:setup()
終了時:teardown()
テストを始める前と終了した後で環境が変わらないようにする。

nosetests

で実行

2.8 debug with IPython

script.pyっでインポートされているextscript.pyの20行目にブレークポイントを設定し、デバッカ制御下でscript.py実行

%run -d -b extscript.py:20 script

コマンドラインPythonスクリプトとして実行されるようになっている、GUIに統合されている、等の場合は

from IPython import embed
embed()

を組み込めば、そこでIPythonデバッガが起動する。