  Jupyter Notebook is the tool of choice of many data scientists in the early
stages of ML workflows. The notebook format, however, has been criticized for
inducing bad programming practices; indeed, researchers have already shown that
open-source repositories are inundated by poor-quality notebooks. Low-quality
output from the prototypical stages of ML workflows constitutes a clear
bottleneck towards the productization of ML models. To foster the creation of
better notebooks, we developed Pynblint, a static analyzer for Jupyter
notebooks written in Python. The tool checks the compliance of notebooks (and
surrounding repositories) with a set of empirically validated best practices
and provides targeted recommendations when violations are detected.
