How osprey-oss/deptry works
deptry is a Python dependency-auditing CLI. A developer selects a project; deptry reads its dependency declarations, scans Python and notebook imports, compares the two to identify dependency issues, and reports findings. The graph includes the Rust-backed import scanning layer and the documented Poetry, PDM, uv, PEP 621, and requirements-file inputs. Some orchestration details are inferred from module boundaries because the complete Core implementation and several subsystem sources were not sampled.
Main entry points: core.py Core workflow · builder.py Getter builder · cli.py CLI · lib.rs Rust scanner API
Components 21
Command entry
- CLI
python/deptry/cli.py - Configuration
python/deptry/config.py - Core workflow
python/deptry/core.py
Project scanning
- Python file finder
python/deptry/python_file_finder.py - Import extraction
python/deptry/imports/extract.py - Rust scanner API
src/lib.rs - Python parser
src/imports/py.rs - Notebook parser
src/imports/ipynb.rs
Dependency inputs
- Getter builder
python/deptry/dependency_getter/builder.py - PEP 621 getter
python/deptry/dependency_getter/pep621/base.py - Poetry getter
python/deptry/dependency_getter/pep621/poetry.py - PDM getter
python/deptry/dependency_getter/pep621/pdm.py - uv getter
python/deptry/dependency_getter/pep621/uv.py - Requirements getter
python/deptry/dependency_getter/requirements_files.py
Issue analysis
- Module mapping
python/deptry/module.py - Violation dispatcher
python/deptry/violations/finder.py - Dependency rules
python/deptry/violations
Reporting
- Reporters
python/deptry/reporters
Other components
- Developer
- Project files
- Findings
Connections 22
- Developer → CLI: runs
- CLI → Configuration: loads settings
- CLI → Core workflow: starts scan
- Project files → Python file finder: provides files
- Core workflow → Python file finder: finds source files
- Core workflow → Import extraction: requests imports
- Python file finder → Import extraction: provides paths
- Import extraction → Rust scanner API: calls scanner
- Rust scanner API → Python parser: dispatches Python
- Rust scanner API → Notebook parser: dispatches notebooks
- Project files → Getter builder: provides declarations
- Core workflow → Getter builder: builds getter
- Getter builder → PEP 621 getter: selects getter
- Getter builder → Poetry getter: selects getter
- Getter builder → PDM getter: selects getter
- Getter builder → uv getter: selects getter
- Getter builder → Requirements getter: selects getter
- Core workflow → Module mapping: maps imports
- Core workflow → Violation dispatcher: checks dependencies
- Violation dispatcher → Dependency rules: runs rules
- Core workflow → Reporters: reports findings
- Reporters → Findings: formats output