Jupyter Notebook和Git无缝集成方案( 五 )

nbdime

首先要介绍的是nbdime , 它源于nbdiff项目(已经停止) , 提供对Jupyter Notebook的内容做差异比较和合并的工具 。 nbdime很有潜力成为对初学者友好的通用型Notebook处理工具 , 但截止当前 , 它还只是测试版本 , 而仅仅可用来查看Notebook内容的差异 , 无法用来清除输出信息导致差异噪声的问题 。

nbstripout

另一个需要提及的工具是nbstripout , 它是一个包含nbformat处理功能的单模块Python脚本 , 并添加了一些用于设置git config的自动选项 。 可以解决上述手工\"清除所有输出\"的过程 , 使其自动化 。 但是它也无法解决 \"元数据\"差异噪声干扰的问题 。 手动运行脚本并希望有短暂的延迟是可以接受的 , 但是需要将它集成到git设置中 , 这是nbstripout性能问题就很突出 , 导致在运行git diff时会有无法忍受的延迟 。

JQ

幸运的是 , 还有另外的选择 。 由于nbformat只是JSON , 一个可以使用\"轻量级且灵活的命令行JSON处理器\"jq , (相当于JSON数据的sed) 。 由于jq有其自己的查询/过滤器语言 , 设置方便 , 文档丰富 。 一个jq处理nbformat的示例:

推荐阅读