Finding undeclared & unused dependencies in your notebooks
summary
Conference analysis shows about 42% of executed notebooks fail from missing deps; only 3.9% reproduce results. FawltyDeps finds undeclared imports and declared but unused packages, prints file and line, and maps import names to package names (can create a temporary venv with install-deps when needed). Works on Python scripts and Jupyter notebooks, emits JSON, and integrates as a pre-commit hook or CI check so commits and PRs fail fast when undeclared or unused dependencies appear.
AI-written summary · about
chapters (18)
- 0:00Introduction
- 1:27Reproducibility in notebooks
- 3:35Dependency declaration issues
- 5:00Python dependencies basics
- 7:50Undeclared vs unused deps
- 8:50FAdeps tool intro
- 9:34FAdeps output guide
- 10:56FAdeps configuration
- 12:00FAdeps in pre-commit
- 13:27Pre-commit catches undeclared
- 14:08Pre-commit catches unused
- 14:30FAdeps in GitHub Actions
- 15:32FAdeps in PR checks
- 16:15Import to package mapping
- 19:01Finding Python environments
- 20:25Dependency name mapping demo
- 22:12Dependency analysis complexities
- 23:38Summary
related talks
38mDependency Management: The Cause of—and Solution to—All Supply...
22mIt depends: A dialog about dependencies
30mWhy We Need to Adopt Static Analysis in Dependency Tools
20mdepstat: Analyzing a Go Project’s Dependencies
20mDependency Analytics
58mDespagghetifying code with NDepend
22mYou Don't Know Your Dependencies
27mDependency hell - Or, Developers' perception of software dependencies
