Игнорировать ячейки уценки в `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

Другие вопросы по тегам