重新运行笔记本,用第一个单元中的输入参数替换。
项目描述
这是一个运行具有输入值的笔记本的工具。当您编写笔记本时,这些值在第一个代码单元中定义 - 或者带有“参数”单元标签的单元 - 使用正则赋值,如下所示
stock = 'YHOO'
days_back = 600
Nbparameterise可以处理查找和提取这些参数,并用输入值替换它们。然后您可以使用新值运行笔记本。这可以用于
批处理:在一系列不同的输入上运行相同的代码。请参阅examples/batch.py。
简单的用户界面:根据参数构建输入表单,并在用户提交表单时运行笔记本。请参阅examples/webapp.py中的实现,这是一个基于HTML表单的实现。
Nbparameterise可以识别和替换数字、字符串、布尔值(True/False)、列表和字典 - 这些类型可以在JSON中表示(除了None)。它旨在更改参数值但保留其类型,尽管这不是强制性的。
有关参数的额外信息,例如在用户界面中显示的名称,可以存储在笔记本元数据中。
Nbparameterise是用Python 3编写的,但它可以处理使用Python 2的笔记本。
使用方法
import nbclient
import nbformat
from nbparameterise import (
extract_parameters, replace_definitions, parameter_values
)
with open("Stock display.ipynb") as f:
nb = nbformat.read(f, as_version=4)
# Get a list of Parameter objects
orig_parameters = extract_parameters(nb)
# Update one or more parameters
params = parameter_values(orig_parameters, stock='GOOG')
# Make a notebook object with these definitions
new_nb = replace_definitions(nb, params)
# Execute the notebook with the new parameters
nbclient.execute(new_nb)
如果您对通过命令行界面使用参数化的Jupyter笔记本感兴趣,请查看nbclick。
更改
0.6.1
2024-05-15
nbparameterise不再需要nbconvert,并且仅在您传递已弃用的execute=True选项时加载它。
0.6
2023-02-28