Detect unused packages in requirements.txt by scanning imports
pip install philiprehberger-req-checkDetect unused packages in requirements.txt by scanning imports.
pip install philiprehberger-req-check
from philiprehberger_req_check import check
# Find unused packages in a project directory
unused = check("./my-project")
print(unused) # ["some-unused-package"]
from philiprehberger_req_check import scan_imports
imports = scan_imports("./my-project")
print(imports) # {"requests", "flask", "os", "sys", ...}
from philiprehberger_req_check import read_requirements
packages = read_requirements("requirements.txt")
print(packages) # ["requests", "flask", "pillow"]
from philiprehberger_req_check import find_missing
# Imports used in code but NOT declared in requirements.txt
missing = find_missing("requirements.txt", "./src")
print(missing) # {"yaml"}
from philiprehberger_req_check import compare
diff = compare("requirements.old.txt", "requirements.new.txt")
print(diff)
# {"added": ["httpx"], "removed": ["yaml"], "common": ["requests"]}
python -m philiprehberger_req_check ./my-project
Exits with code 1 if unused packages are found.
| Function | Description |
|---|---|
check(path, *, requirements=None) | Find unused packages by comparing imports against requirements |
scan_imports(path) | Scan Python files for top-level import names |
read_requirements(path) | Read package names from requirements.txt |
find_missing(requirements_path, source_dir) | Find imports used in source but not declared in requirements |
compare(req_a, req_b) | Diff two requirements files into added / removed / common |
pip install -e .
python -m pytest tests/ -v
If you find this project useful: