繁体   English   中英

使用 mypy 对 Jupyter Notebooks 进行类型检查

[英]Type-check Jupyter Notebooks with mypy

我有一个项目包含一堆 Python 模块( .py文件)和一堆 Jupyter Notebooks ( .ipynb文件),它们从 Python 模块导入东西。

我可以(假设我在所有子文件夹中都有__init__.py文件)只需运行mypy.即可对所有.py文件进行类型检查。 从项目的根目录。 但我还希望能够对我的 Jupyter Notebooks 进行类型检查。

一个理想的解决方案是:

  • 在我的 Jupyter Notebooks 中输入检查所有 Python 代码,
  • 能够在类型检查时从 Jupyter Notebooks 中跟踪.py模块的导入,就像.py文件中的导入一样,
  • 让我从命令行对整个项目进行类型检查,以便我可以将类型检查作为测试套件或预提交挂钩的一部分运行,并且
  • 以某种方式有意义地报告我的笔记本中类型错误的位置,类似于 mypy 如何为.py文件中的错误打印行号。

我怎样才能做到这一点?

你可以使用nbQA并做

pip install -U nbqa
nbqa mypy your_notebook.ipynb

您可以:将所有笔记本转换为 python,然后在其上运行 mypy( 如何通过命令行将 IPython 笔记本转换为 Python 文件? )。

jupyter nbconvert --to script [YOUR_NOTEBOOK].ipynb

只需编写一个小脚本来执行此操作就可以了:)

为此,我使用Jupytext和我的 IDE。

我以 py:percent 格式导出副本,将其链接到笔记本。 我在 jupyter 实验室环境中进行开发,但.py文件是 git 存储库中的文件。 在提交之前,我通过通常的 linter、 blackpydocstylemypy运行它(使用严格的配置)。 然后我在 Jupyter 实验室重新加载笔记本,重新启动 kernel 并“全部运行”以确保结果仍然正常,然后才将文件提交到存储库

结帐nb-mypy

Nb Mypy是一种在 Jupyter 笔记本单元执行时自动运行 mypy 的工具,同时保留有关执行历史记录的信息。

更多细节在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM