参数化并运行jupyter和interact笔记本
papermill的Python项目详细描述
paperpill是一个用于参数化、执行和分析的工具 Jupyter笔记本。
Paperpill允许您:
- 参数化笔记本
- 执行笔记本
这为笔记本的使用开辟了新的机会。为了 示例:
- 也许你有一份财务报告,你想和它一起运行 在一个月的第一天或最后一天或 年初或年末,使用参数执行此任务 更容易的。
- 是否要运行笔记本,并根据其结果选择 下一个要运行的特定笔记本?现在可以通过编程方式 执行工作流而不必从 手动从笔记本到笔记本。
安装
从命令行:
pip install papermill
对于所有可选的IO依赖项,可以指定单个捆绑包
比如s3
,或者azure
——或者使用all
pip install papermill[all]
python版本支持
这个库将支持Python2.7和3.5+,直到2020年Python2的生命周期结束。在这之后,Python2支持将停止,并且只维护3.x版本。
用法
参数化笔记本
要参数化您的笔记本,请使用标记parameters
指定一个单元格。
paperpill查找parameters
单元格,并将此单元格视为执行时传入的参数的默认值。paperpill将添加一个新的带有输入参数的标记为injected-parameters
的单元格,以便覆盖parameters
中的值。如果没有用parameters
标记细胞,则注入的细胞将被插入笔记本的顶部。
另外,如果通过papermill重新运行笔记本,它将重用先前运行的injected-parameters
单元格。在这种情况下,paperpill将用新运行的输入替换旧的injected-parameters
单元。
执行笔记本
使用参数执行笔记本的两种方法是:(1)到 python api和(2)通过命令行接口。
通过python api执行
import papermill as pm
pm.execute_notebook(
'path/to/input.ipynb',
'path/to/output.ipynb',
parameters = dict(alpha=0.6, ratio=0.1)
)
通过cli执行
下面是一个本地笔记本被执行并输出到 亚马逊S3账户:
$ papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
注意:
如果使用多个aws帐户,并且有properly configured your AWS credentials,那么可以通过在命令行设置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"
支持的名称处理程序
paperpill在执行期间支持以下输入和输出路径的名称处理程序:
本地文件系统:
local
http,https协议:
http://, https://
亚马逊网络服务:AWS S3
s3://
天青:Azure DataLake Store,Azure Blob Store
adl://, abs://
谷歌云:Google Cloud Storage
gs://
开发指南
读取CONTRIBUTING.mdf或者关于如何设置本地开发环境并将代码更改回papermill的指南。
有关开发指南,请查看DEVELOPMENT_GUIDE.md文件。这将告诉您如何对代码基进行特定的添加。
文档
我们主办Papermill documentation 准备好了。