使用 `--to script` 忽略 `jupyter nbconvert` 中的降价单元格

ignore markdown cells in `jupyter nbconvert` with `--to script`

是否可以让 jupyter nbconvert ... --to script 忽略降价单元格而不是将它们转换为评论?

我问是因为我想使用 flake8 检查生成的 Python 代码,但我不想包含降价单元格(例如,因为它们通常很长行,我不想让 flake8 抱怨它们)。

这似乎有效:

创建模板strip_markdown.tpl

## remove markdown cells
{% extends 'python.tpl'%}
{% block markdowncell -%}
{% endblock markdowncell %}

jupyter nbconvert my_notebook.ipynb --to python --template=strip_markdown.tpl

命令行参数 PythonExporter.exclude_markdown 可以满足您的需求。要获得仅查看代码单元的 pep8 错误列表,我 运行

jupyter nbconvert my_notebook.ipynb --stdout --to python --PythonExporter.exclude_markdown=True | flake8 - --ignore=W391

I'm asking because I want to use flake8 to check the Python code that's generated

您可以直接使用 nbqa 执行此操作:

$ nbqa flake8 my_notebook.ipynb --extend-ignore=E203,E302,E305,E703
my_notebook.ipynb:cell_3:1:1: F401 'import pandas as pd' imported but unused

它也可以用作 pre-commit 钩子,参见 https://nbqa.readthedocs.io/en/latest/pre-commit.html