Python tool to scan all unused packages in requirements.txt file for your project.
Project description
ScanReq
ScanReq - Python tool to scan all unused packages in requirements.txt file for your project.
Background
One popular tool for checking requirements in a Python project is pipdeptree
. However, the problem arises when we don't know which packages listed in the requirements.txt
file are actually being used in the project or not. It's easy to check if your project is small, but as your project grows larger, it becomes a headache to check one by one.
So, this tool comes in handy for easily identifying which exact packages are actually unused in our project.
Benefits
- Save Money: Remove unused dependencies to lower hosting costs.
- Speed Up: Faster installation and build times mean quicker development.
- Use Resources Wisely: Free up disk and memory space by removing what you don't use.
- Easier Maintenance: Keep your project cleaner and simpler for easier management.
- Focus Better: Work with only what you need, enhancing productivity.
- Update Efficiently: Ensure your dependencies are up-to-date for smoother compatibility.
- Stay Safe: Reduce the chance of security vulnerabilities by trimming unnecessary dependencies.
- Stay Legal: Avoid licensing issues by managing dependencies more effectively.
- Work Together: Simplify collaboration with a consistent set of dependencies.
- Code Better: Keep your documentation and codebase cleaner for improved quality.
Installation
pip3 install scanreq
Usage
Note: Ensure you're working on python environment & already installed all your project requirements.txt
scanreq -r requirements.txt -p . -o unused-requirements.txt -i black,flake8
[i] Please wait! It may take few minutes to complete...
[i] Scanning unused packages:
1. Module: rcssmin -> Package: rcssmin
2. Module: model_utils -> Package: django-model-utils
3. Module: pinax_theme_bootstrap -> Package: pinax-theme-bootstrap
4. Module: phonenumbers -> Package: phonenumbers
cat unused-requirements.txt
rcssmin
django-model-utils
pinax-theme-bootstrap
phonenumbers
Cool right? 😎
scanreq --help
usage: scanreq [-h] [-r REQUIREMENTS] [-p PATH] [-o OUTPUT] [-i IGNORED_PACKAGES]
Scan for unused Python packages.
optional arguments:
-h, --help show this help message and exit
-r REQUIREMENTS, --requirements REQUIREMENTS
Path to the requirements.txt file to read packages from.
-p PATH, --path PATH Project path to scan for unused packages (default: current directory).
-o OUTPUT, --output OUTPUT
Path to the output file where unused packages will be saved.
-i IGNORED_PACKAGES, --ignored-packages IGNORED_PACKAGES
Comma separated list of package names to be ignored.
Note: Don't forget to cross-check the unused packages after finding them, because sometimes they are used in different cases without being imported in the code. For example:
argon2-cffi
used insettings.PASSWORD_HASHERS = ["django.contrib.auth.hashers.Argon2PasswordHasher", ...]
for Django.
ToDo List
- Support argument parser (command arguments)
- Directory to scan
- Requirement file to scan
- Option to write the output of unused packages
- Option to exclude or ignore some packages
- Option to auto replace the package from requirements.txt file
- Support CLI - make it as a command
- Write some tests
- Publish to PyPi
- Support multiple python versions
- Support multiple devices (Linux, Macbook, and Windows)
- Support scan the
pyproject.toml
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 scanreq-0.0.9.tar.gz
.
File metadata
- Download URL: scanreq-0.0.9.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.27.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18030f232615d6761cdf18fe1702930c654f8f1214362c5c58e63b34c624d6d2 |
|
MD5 | b091459116919744a294a076ae2785c2 |
|
BLAKE2b-256 | 0f51d7619dd275d3fb009fcaaeb08b2c8860dc4911805243b23b7be5a4cbd0a0 |
File details
Details for the file scanreq-0.0.9-py3-none-any.whl
.
File metadata
- Download URL: scanreq-0.0.9-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.27.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 872d839d2f8fd84ac1bbfac82dd523a4af00b010538ece441524ff35e8acf269 |
|
MD5 | 8e28ddf19bfdebe4857987822be2511a |
|
BLAKE2b-256 | ad47977002e4d2bf002517489337acd23bd286cc90eecdd0b111336d10204db3 |