mlsanityData to 14 Oct 2026

Analysing Python Machine Learning Notebooks with Moose

arXiv 2509.11748 ↗First posted 15 Sep 2025cs.SE cs.LGcited by 0

Not on the map. Why?

Abstract (arXiv)

Machine Learning (ML) code, particularly within notebooks, often exhibits lower quality compared to traditional software. Bad practices arise at three distinct levels: general Python coding conventions, the organizational structure of the notebook itself, and ML-specific aspects such as reproducibility and correct API usage. However, existing analysis tools typically focus on only one of these levels and struggle to capture ML-specific semantics, limiting their ability to detect issues. This paper introduces Vespucci Linter, a static analysis tool with multi-level capabilities, built on Moose and designed to address this challenge. Leveraging a metamodeling approach that unifies the notebook's structural elements with Python code entities, our linter enables a more contextualized analysis to identify issues across all three levels. We implemented 22 linting rules derived from the literature and applied our tool to a corpus of 5,000 notebooks from the Kaggle platform. The results reveal violations at all levels, validating the relevance of our multi-level approach and demonstrating Vespucci Linter's potential to improve the quality and reliability of ML development in notebook environments.

Key facts. No citing papers in the map yet (data through 14 Oct 2026). Builds on 11 of its 26 references that are in the map. First posted on arXiv 15 Sep 2025.

Builds on

11 of 26 references.

References · 11

  1. 2020Code Smells and Refactoring: A Tertiary Systematic Review of Challenges and Observationscited by 18
  2. 2021The Prevalence of Code Smells in Machine Learning projectscited by 16
  3. 2019Better Code, Better Sharing:On the Need of Analyzing Jupyter Notebookscited by 13
  4. 2021KGTorrent: A Dataset of Python Jupyter Notebooks from Kagglecited by 10
  5. 2021Design Smells in Deep Learning Programs: An Empirical Studycited by 10
  6. 2020A large-scale comparative analysis of Coding Standard conformance in Open-Source Data Science projectscited by 9
  7. 2022Code Smells for Machine Learning Applicationscited by 8
  8. 2020Code Duplication and Reuse in Jupyter Notebookscited by 5
  9. 2021A Static Analysis Framework for Data Science Notebookscited by 4
  10. 2022Eliciting Best Practices for Collaboration with Computational Notebookscited by 4
  11. 2022Pynblint: a Static Analyzer for Python Jupyter Notebookscited by 3

Built on by

Not cited yet.