Игнорировать ячейки уценки в `jupyter nbconvert` с помощью`--to script`
Возможно ли иметь jupyter nbconvert ... --to script
игнорировать ячейки уценки, а не преобразовывать их в комментарии?
Я спрашиваю, потому что я хочу использовать flake8
проверить созданный код Python, но я не хочу включать ячейки уценки (например, потому что они часто длинные строки, и я не хочу, чтобы flake8 жаловалась на них).
1 ответ
Есть аргумент командной строки PythonExporter.exclude_markdown
это делает то, что вы хотите. Чтобы получить список ошибок pep8, которые просто просматривают ячейки кода, я запускаю
jupyter nbconvert my_notebook.ipynb --stdout --to python --PythonExporter.exclude_markdown=True | flake8 - --ignore=W391
Это похоже на работу:
Создать шаблон strip_markdown.tpl
## remove markdown cells
{% extends 'python.tpl'%}
{% block markdowncell -%}
{% endblock markdowncell %}
jupyter nbconvert my_notebook.ipynb - в python --template=strip_markdown.tpl
Я спрашиваю, потому что хочу использовать flake8 для проверки созданного кода Python
Вы можете сделать это напрямую с помощью 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
Он также работает как перехватчик перед фиксацией, см. https://nbqa.readthedocs.io/en/latest/pre-commit.html