A tool to analyze Python project dependencies
Project description
DependencyDetective
DependencyDetective is a powerful tool for analyzing Python project dependencies. It scans your project to identify installed packages, compare them with requirements.txt (if it exists), and analyze usage across files. This tool helps maintain clean and efficient Python projects by providing insights into package usage and potential issues.
Features
- Scans all Python files in a project to find imported packages
- Identifies used packages and unused or nested packages
- Detects missing packages not listed in requirements.txt
- Highlights potentially outdated packages in requirements.txt
- Excludes standard library modules from analysis
- Allows exclusion of specific directories from analysis
- Generates comprehensive reports for easy dependency management
- Creates a new requirements.txt with only necessary packages
Installation
pip install dependency-detective
Usage
dependency-detective /path/to/your/project [options]
Optional arguments:
--requirements
,-r
: Specify a custom path to the requirements.txt file (default: requirements.txt)--output
,-o
: Specify an output file for the analysis report--new-requirements
,-n
: Generate a new requirements.txt with only necessary packages--exclude
,-e
: Specify directories to exclude from analysis (default: venv .venv env .env)--verbose
,-v
: Enable verbose logging
Example
dependency-detective /path/to/your/project -r custom_requirements.txt -o analysis_report.txt -n new_requirements.txt -e venv example_dir
This command will:
- Analyze the project at
/path/to/your/project
- Use
custom_requirements.txt
as the requirements file - Save the analysis report to
analysis_report.txt
- Generate a new requirements file named
new_requirements.txt
with only necessary packages - Exclude the
venv
andexample_dir
directories from the analysis
Output
DependencyDetective generates a report that includes:
- Used Packages: Packages that are imported and used in your project
- Unused or Nested Packages: Packages that are installed but not directly imported in your project (they might be dependencies of other packages)
- Missing Packages: Packages that are imported in your project but not installed
- Potentially Outdated Packages: Packages listed in requirements.txt but not used in the project
The new requirements file (if requested) will contain only the packages directly used in your project, helping to minimize unnecessary dependencies.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dependency_detective-0.1.1.tar.gz
.
File metadata
- Download URL: dependency_detective-0.1.1.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00be078ad0ffed5209e486e9ed6950b2ca04b7a8c9b7a678d88281c2f230c93b |
|
MD5 | 15ac7236e2e0e598bdc26f4cfdaae7f5 |
|
BLAKE2b-256 | 0bc1a2f3d9c50dd772dfe0e5cc086ecf21ce027afdc4ccf10728d31ff14e2f6c |
File details
Details for the file dependency_detective-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: dependency_detective-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d15459e1a9865a7609618069216387d34459e8b75ef65d0674fdf97b6bd86ca9 |
|
MD5 | b5dafafb22c973c81fa156830242f611 |
|
BLAKE2b-256 | e79b6ef0f0479460e4a0d6e733e55fe3fab8166f8ac5e696a7510e04c053fc4c |