papermill是一个用于参数化、执行和分析 Jupyter Notebooks 的工具。
造纸厂让您:
这为笔记本电脑的使用方式开辟了新的机会。例如:
Papermill 根据我们在数据管道中大规模使用笔记本的经验,对笔记本参数化和执行采取了固执己见的方法。
从命令行:
pip install papermill
对于所有可选的 io 依赖项,您可以指定单个包,例如s3
或azure
- 或使用all
。要使用黑色来格式化参数,您可以添加额外的要求['black']。
pip install papermill[all]
该库当前支持 Python 3.8+ 版本。随着 Python 组织 Papermill 正式取消 Python 次要版本,将来也将同样放弃支持。
要参数化您的笔记本,请指定带有标签parameters
的单元格。
Papermill 查找parameters
单元格并将该单元格视为执行时传入的参数的默认值。 Papermill 将添加一个injected-parameters
标记的新单元格,以便覆盖parameters
中的值。如果没有用parameters
标记单元格,则注入的单元格将插入到笔记本的顶部。
此外,如果您通过造纸厂重新运行笔记本,它将重用上次运行中injected-parameters
单元格。在这种情况下,Papermill 将用新运行的输入替换旧的injected-parameters
单元。
使用参数执行笔记本的两种方法是:(1) 通过 Python API 和 (2) 通过命令行界面。
import papermill as pm
pm.execute_notebook(
'path/to/input.ipynb',
'path/to/output.ipynb',
parameters = dict(alpha=0.6, ratio=0.1)
)
以下是执行本地笔记本并将其输出到 Amazon S3 账户的示例:
$ papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
注意:如果您使用多个 AWS 账户,并且已正确配置 AWS 凭证,则可以通过在命令行设置AWS_PROFILE
环境变量来指定要使用的账户。例如:
$ AWS_PROFILE=dev_account papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
在上面的示例中,使用-p
设置了两个参数: alpha
和l1_ratio
( --parameters
也有效)。看起来像布尔值或数字的参数值将被如此解释。以下是用户设置参数的不同方式:
$ papermill local/input.ipynb s3://bkt/output.ipynb -r version 1.0
使用-r
或--parameters_raw
,用户可以一一设置参数。但是,与-p
不同的是,该参数将保留为字符串,即使它可能被解释为数字或布尔值。
$ papermill local/input.ipynb s3://bkt/output.ipynb -f parameters.yaml
使用-f
或--parameters_file
,用户可以提供应从中读取参数值的 YAML 文件。
$ papermill local/input.ipynb s3://bkt/output.ipynb -y "
alpha: 0.6
l1_ratio: 0.1"
使用-y
或--parameters_yaml
,用户可以直接提供包含参数值的 YAML 字符串。
$ papermill local/input.ipynb s3://bkt/output.ipynb -b YWxwaGE6IDAuNgpsMV9yYXRpbzogMC4xCg==
使用-b
或--parameters_base64
,用户可以提供包含参数值的 Base64 编码的 YAML 字符串。
使用 YAML 传递参数时,通过-y
、 -b
或-f
,参数值可以是数组或字典:
$ papermill local/input.ipynb s3://bkt/output.ipynb -y "
x:
- 0.0
- 1.0
- 2.0
- 3.0
linear_function:
slope: 3.0
intercept: 1.0"
Papermill 在执行期间支持以下输入和输出路径的名称处理程序:
本地文件系统: local
HTTP、HTTPS 协议: http://, https://
亚马逊网络服务:AWS S3 s3://
Azure:Azure DataLake 存储、Azure Blob 存储adl://, abs://
谷歌云:谷歌云存储gs://
请阅读 CONTRIBUTING.md,了解如何设置本地开发环境以及如何将代码更改回 Papermill 的指南。
有关开发指南,请查看 DEVELOPMENT_GUIDE.md 文件。这应该会告诉您如何对代码库进行特定的添加。
我们在 ReadTheDocs 上托管 Papermill 文档。