跳转到主要内容

重新运行笔记本,用第一个单元中的输入参数替换。

项目描述

这是一个运行具有输入值的笔记本的工具。当您编写笔记本时,这些值在第一个代码单元中定义 - 或者带有“参数”单元标签的单元 - 使用正则赋值,如下所示

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

  • 参数单元不再需要是第一个代码单元:如果您向另一个单元添加一个单元标签“参数”,则将从该单元提取并替换参数。大小写不重要。(PR #27)。

  • 仅替换参数值:参数单元格中的其他代码现在将保持不变(PR #19)。现在 comment= 参数没有作用,并且可能在未来的版本中删除。

  • replace_definitions()execute= 参数现已弃用。请在替换参数后使用 nbclient 来执行您的笔记本。

  • nbparameterise 现在需要 Python 3.8 或更高版本。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

nbparameterise-0.6.1.tar.gz (14.0 kB 查看哈希值)

上传日期

构建分发

nbparameterise-0.6.1-py3-none-any.whl (7.8 kB 查看哈希值)

上传日期 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面