vix.ing · top · new · best · stats · spec

Davos: a Python "smuggler" for constructing lightweight reproducible notebooks

2022/11/23 by Paxton C. Fitzpatrick, Jeremy R. Manning, Fitzpatrick, Paxton C. +1
Computer Science · Decision Sciences · #Data Visualization and Analytics #FOS: Computer and information sciences #Other Computer Science (cs.OH) #Research Data Management Practices #Scientific Computing and Data Management

paper · pdf · doi:10.48550/arxiv.2211.15445

openalex publication_date 2022/11/23 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/28

Abstract

Reproducibility is a core requirement of modern scientific research. For computational research, reproducibility means that code should produce the same results, even when run on different systems. A standard approach to ensuring reproducibility entails packaging a project's dependencies along with its primary code base. Existing solutions vary in how deeply these dependencies are specified, ranging from virtual environments, to containers, to virtual machines. Each of these existing solutions requires installing or setting up a system for running the desired code, increasing the complexity and time cost of sharing or engaging with reproducible science. Here, we propose a lighter-weight solution: the Davos package. When used in combination with a notebook-based Python project, Davos provides a mechanism for specifying the correct versions of the project's dependencies directly within the code that requires them, and automatically installing them in an isolated environment when the code is run. The Davos package further ensures that those packages and specific versions are used every time the notebook's code is executed. This enables researchers to share a complete reproducible copy of their code within a single Jupyter notebook file.

Related