Pynblint: A quality assurance tool to improve the quality of Python Jupyter notebooks

Jupyter Notebook is widely recognized as a crucial tool for data science professionals and students. Its interactive and self-documenting nature makes it particularly suitable for data-driven programming tasks. Nonetheless, it faces criticism for its limited support for software engineering best pra...

Full description

Saved in:
Bibliographic Details
Main Authors: Luigi Quaranta, Fabio Calefato, Filippo Lanubile
Format: Article
Language:English
Published: Elsevier 2024-12-01
Series:SoftwareX
Subjects:
Online Access:http://www.sciencedirect.com/science/article/pii/S2352711024003297
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1850266390248816640
author Luigi Quaranta
Fabio Calefato
Filippo Lanubile
author_facet Luigi Quaranta
Fabio Calefato
Filippo Lanubile
author_sort Luigi Quaranta
collection DOAJ
description Jupyter Notebook is widely recognized as a crucial tool for data science professionals and students. Its interactive and self-documenting nature makes it particularly suitable for data-driven programming tasks. Nonetheless, it faces criticism for its limited support for software engineering best practices and its tendency to encourage bad programming habits, such as non-linear code execution. These issues often result in non-reproducible, poorly documented, and low-quality notebook code. In this paper, we introduce Pynblint, a static analyzer for Python Jupyter notebooks. Pynblint is designed to help data scientists write better notebooks, easy to understand and reproduce. We report on how we validated Pynblint with both professional data scientists and students, receiving overall positive feedback. Additionally, we discuss the potential of Pynblint to facilitate research inquiries into computational notebooks.
format Article
id doaj-art-e322c737136649d3909d8d010d680e32
institution OA Journals
issn 2352-7110
language English
publishDate 2024-12-01
publisher Elsevier
record_format Article
series SoftwareX
spelling doaj-art-e322c737136649d3909d8d010d680e322025-08-20T01:54:11ZengElsevierSoftwareX2352-71102024-12-012810195910.1016/j.softx.2024.101959Pynblint: A quality assurance tool to improve the quality of Python Jupyter notebooksLuigi Quaranta0Fabio Calefato1Filippo Lanubile2Corresponding author.; Department of Computer Science, University of Bari, ItalyDepartment of Computer Science, University of Bari, ItalyDepartment of Computer Science, University of Bari, ItalyJupyter Notebook is widely recognized as a crucial tool for data science professionals and students. Its interactive and self-documenting nature makes it particularly suitable for data-driven programming tasks. Nonetheless, it faces criticism for its limited support for software engineering best practices and its tendency to encourage bad programming habits, such as non-linear code execution. These issues often result in non-reproducible, poorly documented, and low-quality notebook code. In this paper, we introduce Pynblint, a static analyzer for Python Jupyter notebooks. Pynblint is designed to help data scientists write better notebooks, easy to understand and reproduce. We report on how we validated Pynblint with both professional data scientists and students, receiving overall positive feedback. Additionally, we discuss the potential of Pynblint to facilitate research inquiries into computational notebooks.http://www.sciencedirect.com/science/article/pii/S2352711024003297Computational notebookStatic analyzerLinterQAData scienceMachine learning
spellingShingle Luigi Quaranta
Fabio Calefato
Filippo Lanubile
Pynblint: A quality assurance tool to improve the quality of Python Jupyter notebooks
SoftwareX
Computational notebook
Static analyzer
Linter
QA
Data science
Machine learning
title Pynblint: A quality assurance tool to improve the quality of Python Jupyter notebooks
title_full Pynblint: A quality assurance tool to improve the quality of Python Jupyter notebooks
title_fullStr Pynblint: A quality assurance tool to improve the quality of Python Jupyter notebooks
title_full_unstemmed Pynblint: A quality assurance tool to improve the quality of Python Jupyter notebooks
title_short Pynblint: A quality assurance tool to improve the quality of Python Jupyter notebooks
title_sort pynblint a quality assurance tool to improve the quality of python jupyter notebooks
topic Computational notebook
Static analyzer
Linter
QA
Data science
Machine learning
url http://www.sciencedirect.com/science/article/pii/S2352711024003297
work_keys_str_mv AT luigiquaranta pynblintaqualityassurancetooltoimprovethequalityofpythonjupyternotebooks
AT fabiocalefato pynblintaqualityassurancetooltoimprovethequalityofpythonjupyternotebooks
AT filippolanubile pynblintaqualityassurancetooltoimprovethequalityofpythonjupyternotebooks