はじめに
Jupyter Notebook で作成した一連の処理を関数化できるライブラリnbtof
を作成しました. #@~
マークを Notebook の各セルに記述するとNotebook の処理に対応した関数が取得できます. 例えば, 以下の sample.ipynb を関数化する時は
sample.ipynb
#@param
a = 1
b = 1
c = a + b
#@ignore
print(a, b, c)
#@return
c
下記を実行することで関数化された sample.py を取得することができます.
import nbtof
nbtof.nbtof_generate(
notebook_name='sample.ipynb',
func_py_name='sample.py',
)
sample.py
def sample(a, b):
c = a + b
return c
nbtof
を利用することで,
- Jupyter Notebook で処理過程を確認しながらプログラム作成
- 関数化して他のプログラムで利用
- 原因が分かりにくいエラーに遭遇したら元の Notebook で途中の処理を確認しながら原因調査
- Notebook を修正して即関数化
という手順でバグ修正を効率化できると思います.
インストール方法
PyPI から下記でインストールできます.
$ pip install nbtof
利用方法
マーク一覧
Jupyter Notebook の各セルの最初に対応する#@~
マークを付けて nbtof.nbtof_generate()
を実行すると所望の関数化された python ファイルを取得できます. #@~
マークが無いセルは関数内の処理として関数内に記述されます.
マーク | 説明 |
---|---|
#@param |
セル内の変数名は関数の引数になります. Jupyter Notebook内で割り当てられた値は無視されます. |
#@default |
セル内の変数名は関数の引数になります. Jupyter Notebook内で割り当てられた値はデフォルト値になります. |
#@args |
セル内の変数名が関数の可変長引数 *args の名前になります. Jupyter Notebook内で割り当てられた値は無視されます. |
#@kwargs |
セル内の変数名が関数の可変長引数 **kwargs の名前になります. Jupyter Notebook内で割り当てられた値は無視されます. |
#@return |
このマークの次の行が関数の戻り値になります. |
#@ignore |
このマークがついたセル内の記述は無視されます.Jupyter Notebook内だけで処理過程を確認したいときに使用してください, |
#@help |
セル内の内容は Docstring になります. |
#@advance |
セル内の記述は関数の宣言前に直接記述されます. インポート等に利用してください |
#@r_advance |
セル内の # が記述された行は関数の宣言前に # が外されて記述されます. 相対インポート等に利用してください |