Show HN: Req Update Check

1 month ago 7

Tests Coverage Status  ruff

A Python tool to check your requirements.txt file for package updates, with optional file caching for better performance.

  • Check for available updates in your requirements.txt file
  • Show update severity (major/minor/patch)
  • Display package homepages and changelogs when available
  • Optional file caching for faster repeated checks
  • Support for comments and inline comments in requirements.txt
  • Ignores pre-release versions (alpha, beta, release candidates)

Install from PyPI:

pip install req-update-check

Or install from the repo directly:

pip install git+https://github.com/ontherivt/req-update-check.git

Or install from source:

git clone https://github.com/ontherivt/req-update-check.git cd req-update-check pip install -e .

Basic usage:

req-update-check requirements.txt
req-update-check [-h] [--no-cache] [--cache-dir CACHE_DIR] requirements_file

Arguments:

  • requirements_file: Path to your requirements.txt file

Options:

  • --no-cache: Disable file caching
  • --cache-dir: Custom cache directory (default: ~/.req-update-check-cache)
File caching enabled The following packages need to be updated: requests: 2.28.0 -> 2.31.0 [minor] Pypi page: https://pypi.python.org/project/requests/ Homepage: https://requests.readthedocs.io Changelog: https://requests.readthedocs.io/en/latest/community/updates/#release-history redis: 4.5.0 -> 5.0.1 [major] Pypi page: https://pypi.python.org/project/redis/ Homepage: https://github.com/redis/redis-py Changelog: https://github.com/redis/redis-py/blob/master/CHANGES

The tool supports file caching to improve performance when checking multiple times. You can configure the cache storage:

req-update-check --cache-dir ~/.your-cache-dir requirements.txt

The tool supports requirements.txt files with the following formats:

package==1.2.3 package == 1.2.3 # with spaces package==1.2.3 # with inline comments # Full line comments

Note: Currently only supports exact version specifiers (==). Support for other specifiers (like >=, ~=) is planned for future releases.

You can also use req-update-check as a Python library:

from req_update_check import Requirements # Without file cache req = Requirements('requirements.txt', allow_cache=False) req.check_packages() req.report() # With file cache defaults req = Requirements('requirements.txt') req.check_packages() req.report()

To set up for development:

  1. Clone the repository
  2. Create a virtual environment: python -m venv venv
  3. Activate the virtual environment: source venv/bin/activate (Unix) or venv\Scripts\activate (Windows)
  4. Install development dependencies: pip install -e ".[dev]"

To run tests:

  1. python -m unittest

Contributions are welcome! Please feel free to submit a Pull Request.

This project is licensed under the MIT License - see the LICENSE file for details.

Read Entire Article