使用Jupyter笔记本作为函数调用



如何调用*.ipynb文件,就好像它是一个接受输入并产生输出的通用python函数一样?

例如,graph_parser.ipynb是Jupyter笔记本,它需要一些文件路径(例如.locationbig_graph.txt(作为输入,并产生一些pyhton对象作为输出。构建一个通用的python脚本,例如在web服务器上运行,用notebook_result = run_notebook("local/path/to/graph_parser.ipynb", ".locationbig_graph.txt")调用笔记本,并获取由分配给notebook_result的笔记本生成的pyhton对象。

你将如何实现这一目标?如何调用*.ipynb文件,传入一些参数并输出计算结果?我知道nbconvert工具提供了一个python API来以编程方式执行*.ipynb file,所以我想一种方法是在*.ipynb文件中硬编码输入和输出文件夹,但我正在寻找一种更灵活的方法。

动机

我想使用Jupyter Notebooks作为函数调用,因为它们提供了一种在复杂管道中可视化和改进处理步骤的快速方法。在我参与的一个项目中,我们结束了复制笔记本的代码,将边缘列表转换为复杂的python对象。我们需要notenook,因为它对实验很有用,但我们也需要一个独立的python函数来解析服务器端的图形。

您似乎在寻找Papermill。它有很多运行方式,而且很灵活。你可以在你将要调用的笔记本中进行编程,以生成你想要的Python对象,比如一组腌制的数据等。

与此相关的是,您可以使用jupytext来运行笔记本代码。Jupytext让您可以根据需要转换为python,然后如果您有魔力,可以通过将扩展名更改为.ipy来使其成为ipython。它还可以执行笔记本,根据你做事的方式,你可以在运行它们或制作模板之前将东西注入其中。

比造纸厂更复杂的是ploomber。

最新更新