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


.metadata = https://mparticle.uc.cn/api/{/" , 用来过滤行单元格属性 。 在Jupyter的最新版本中 , 每个单元格设置属性(hidden / collapsed / write-protected等) 。 一般来说我们对这些元数据不感兴趣 , 但是你可以按照需要针对性保留 。

这样 , 我们就有了一个精简化的Notebook , 其中包含执行任何本地Python安装时执行所需的公共信息 。

注意上述单行脚本请需要jq 1.5或更高版本 , 因为--indent选项是最新添加的;而且必须符合nbformat 。

为了方便我把上面单行保存为别名 , 保存在.bashrc:

然后就可以使用

nbstrip_jq xx-parsing.ipynb> stripped.ipynb

就可以清理烦人的元数据 , 而且还非常快 , 大概不到nbstripout的十分之一 。

自动化git集成

上面我们用jq脚本的方式解决了问题 , 但是如何在git操作时自动运行 , 仍值得研究 。 为了实现自动化需要用gitattributes , 特别是过滤器部分 。 通过gitattributes滤器是在将数据检入或检出git存储库时做转换数据的操作 , 以便Notebook输出单元格在将JSON数据添加到git信息库之前 , 进行清理操作 。 gitattributes滤器原理见下图:

推荐阅读