Note
Cell numbers in the output refer to code cells, enumerated starting from 1.
Reformat your notebooks with black:
$ nbqa black my_notebook.ipynb
reformatted my_notebook.ipynb
All done! ✨ 🍰 ✨
1 files reformatted.
Run your docstring tests with doctest:
$ nbqa doctest my_notebook.ipynb
**********************************************************************
File "my_notebook.ipynb", cell_2:11, in my_notebook.add
Failed example:
add(2, 2)
Expected:
4
Got:
5
**********************************************************************
1 items had failures:
1 of 2 in my_notebook.hello
***Test Failed*** 1 failures.
Check for style guide enforcement with flake8:
$ 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
Sort your imports with isort:
$ nbqa isort my_notebook.ipynb
Fixing my_notebook.ipynb
Check your type annotations with mypy:
$ nbqa mypy my_notebook.ipynb --ignore-missing-imports
my_notebook.ipynb:cell_10:5: error: Argument "num1" to "add" has incompatible type "str"; expected "int"
Perform static code analysis with pylint:
$ nbqa pylint my_notebook.ipynb --disable=C0114
my_notebook.ipynb:cell_1:5:0: W0611: Unused import datetime (unused-import)
Upgrade your syntax with pyupgrade:
$ nbqa pyupgrade my_notebook.ipynb --py36-plus
Rewriting my_notebook.ipynb
Format code with yapf:
$ nbqa yapf --in-place my_notebook.ipynb
Format code with autopep8:
$ nbqa autopep8 -i my_notebook.ipynb
Check docstring style with pydocstyle:
$ nbqa pydocstyle my_notebook.ipynb
Format markdown cells with blacken-docs:
$ nbqa blacken-docs my_notebook.ipynb --nbqa-md
Format .md
file saved via Jupytext (note: requires jupytext
to be installed):
$ nbqa black my_notebook.md
Perform linting on a notebook with ruff:
$ nbqa ruff my_notebook.ipynb
you can also try to auto-fix reported issues via
$ nbqa ruff --fix my_notebook.ipynb