Skip to content

Latest commit

 

History

History
332 lines (239 loc) · 5.11 KB

README-JA.md

File metadata and controls

332 lines (239 loc) · 5.11 KB

nbtof


| English | 日本語 |


はじめに

Jupyter Notebook で作成した一連の処理を簡単に関数化できるライブラリnbtofを作成しました. #@~ マークを Notebook に記述するだけで対応した関数が取得できます. 例えば, 以下の sample.ipynb を関数化したいときは

sample.ipynb

#@param
a = 1
b = 1
c = a + b
#@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

インストール方法

PyPI から下記でインストールできます.

$ pip install nbtof

利用方法

マーク一覧

マーク 説明
#@param セル内の変数名は関数の引数になります. Jupyter Notebook内で割り当てられた値は無視されます.
#@default セル内の変数名は関数の引数になります. Jupyter Notebook内で割り当てられた値はデフォルト値になります.
#@args セル内の変数名が関数の可変長引数 *args の名前になります. Jupyter Notebook内で割り当てられた値は無視されます.
#@kwargs セル内の変数名が関数の可変長引数 **kwargs の名前になります. Jupyter Notebook内で割り当てられた値は無視されます.
#@return このマークの次の行が関数の戻り値になります.
#@ignore このマークがついたセル内の記述は無視されます.
#@help セル内の内容は Docstring になります.
#@advance セル内の記述は関数の宣言前に直接記述されます. (例: インポート等に利用してください)
#@r_advance セル内の # が記述された行は関数の宣言前に # が外されて記述されます. (例: 相対インポート等に利用してください)

マークの詳細

#@param

Jupyter Notebook

sample_param.ipynb

#@param
a = 0
print("Hello World !")

は以下に変換されます.

def sample_param(a):
    print('Hello world !')

#@default

Jupyter Notebook

sample_default.ipynb

#@default
a = 0
print("Hello World !")

は以下に変換されます.

def sample_default(a=0):
    print('Hello world !')

#@args

Jupyter Notebook

sample_args.ipynb

#@args
a = 0
print("Hello World !")

は以下に変換されます.

def sample_args(*a):
    print('Hello world !')

#@kwargs

Jupyter Notebook

sample_kwargs.ipynb

#@kwargs
a = 0
print("Hello World !")

は以下に変換されます.

def sample_kwargs(**a):
    print('Hello world !')

#@return

Jupyter Notebook

sample_return.ipynb

#@return
a = 0
if a == 0:
#@return
    True
else:
#@return
    False

は以下に変換されます.

def sample_return(a):
    if a == 0:
        return True
    else:
        return False

#@ignore

Jupyter Notebook

sample_ignore.ipynb

#@ignore
1 + 1
print('Hello world !')

は以下に変換されます.

def sample_ignore():
    print('Hello world !')

#@help

Jupyter Notebook

sample_help.ipynb

#@help
"""
This function outputs "Hello world !" sentence.

Parameters
----------

Returns
-------

"""
print('Hello world !')

は以下に変換されます.

def sample_help():
    """
    This function outputs "Hello world !" sentence.
    
    Parameters
    ----------
    
    Returns
    -------
    
    """
    print('Hello world !')

#@advance

Jupyter Notebook

sample_advance.ipynb

#@advance
import os
import sys
#@advance
def func():
    print(os.getcwd())
    print(sys.prefix)
    print("Hello world !")
func()

は以下に変換されます.

import os
import sys

def func():
    print(os.getcwd())
    print(sys.prefix)
    print('Hello world !')

def sample_advance():
    func()

#@r_advance

Jupyter Notebook

sample_r_advance.ipynb

#@r_advance
#from . import foo
#from . import bar
print("Hello world !")

は以下に変換されます.

from . import foo
from . import bar

def sample_r_advance():
    print('Hello world !')