如何消除来自导入 IPython.nbformat 的警告:"UserWarning: nbformat.current is deprecated."

How to silence warning from import IPython.nbformat: "UserWarning: nbformat.current is deprecated."

我正在使用导入 IPython (Jupyter) 笔记本的示例代码,
Importing Notebooks。示例代码仍然运行良好,但它会生成一个警告,我想了解并修复:

site-packages/nbformat/current.py:15: UserWarning: nbformat.current is deprecated.

- use nbformat for read/write/validate public API
- use nbformat.vX directly to composing notebooks of a particular version

  warnings.warn("""nbformat.current is deprecated.

这个警告至少从 2015 年就开始讨论了,但我找不到任何关于如何处理它的建设性建议。这是一个可以通过修复代码解决的警告,还是一个将从 IPython 中消失而无需替换的函数?

如果您关注 link 到 IPython 博客,他们声称有更新的版本,但他们的 link 指向一个不存在的页面。

此代码示例在 Stack Overflow 的其他线程中得到广泛讨论,例如

python access functions in ipython notebook

请记住,您链接的示例是针对更旧版本的 Jupyter - 4.x。包含这些示例的页面已在某个时候重新定位,对于 5.7.6 版的 Jupyter(撰写本文时的最新版本),它位于 here.

首先,将 from IPython.nbformat import current 导入替换为 from nbformat import read

然后,替换这部分4.x snippet

        with io.open(path, 'r', encoding='utf-8') as f:
            nb = current.read(f, 'json')

newer version:

        with io.open(path, 'r', encoding='utf-8') as f:
            nb = read(f, 4)