Many of our favorite code checking tools in python (like, black
only work on
.py files. That's a shame because it opens the door to bad
code quality for all of our
.ipynb notebook files. It turns out though that
we're about to use nbqa for this use-case.
You can install just
nbqa but this won't install the checking
tools that we'd like to use. To install all tools you'll need to
python -m pip install nbqa flake8 black
To lint normal python files you could use black via:
black --check <pyfile>
To run it on notebooks, you can prepend it with
nbqa black --check <ipynb file>
This also works with flake8!
nbqa flake8 <ipynb file>
If you'd like to use
nbqa with a formatter (a tool that changes the
file on your behalf) you can run it with the
--nbqa-diff flag so that
you can see a preview of the changes first.
nbqa black <ipynb file> --nbqa-diff
To change the file on disk, you can run:
nbqa black <ipynb file>
Note that you may want to close the notebook file and make sure it's no longer running in the background to see the changes. Otherwise Jupyter may accidentally override it again.
You can configure
nbqa to run on each commit by configuring
the pre-commit hook. Your
.pre-commit-config.yaml-file would contain
a segment similar to:
- repo: https://github.com/nbQA-dev/nbQA rev: 1.1.1 hooks: - id: nbqa-black - id: nbqa-flake8
If you're unfamiliar, please check our pre-commit course to learn how to it up first.
Check the documentation of the project to learn more about:
Back to main.