Автоматическое создание блокнота Jupyter с виджетами: как можно использовать nbformat для отображения виджетов? - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь использовать nbformat для создания простой записной книжки с одним виджетом. Я могу выполнить ячейку кода, используя ExecutePreprocessor , как показано ниже, но это приводит к выводу текста; виджет не отображается.

Конечно, тетрадь можно открыть в Jupyter Notebook или Lab, тогда все ячейки будут запущены. Тем не менее, я создаю множество записных книжек, и я хотел бы избежать этого шага, если это возможно.

Как можно изменить этот код для отображения виджета?

import nbformat as nbf
from nbconvert.preprocessors import ExecutePreprocessor


code = '''\
import ipywidgets as widgets
from IPython.display import display

w = widgets.RadioButtons(options=[('a',0), ('b',1), ('c',2)], description = 'hello', disabled=False)

display(w)
'''


nb   = nbf.v4.new_notebook()
cell = nbf.v4.new_code_cell(code)
nb['cells'] = [cell]


ep   = ExecutePreprocessor(timeout=600, kernel_name='python3')
ep.preprocess(nb, {})


with open('test.ipynb', 'w') as f:
    nbf.write(nb, f)

Фактический вывод :

(только текст; виджет не отображается)

RadioButtons(description='hello', options=(('a', 0), ('b', 1), ('c', 2)), value=0)

Требуемый вывод :

(отображается виджет)

screenshot_output

...