Skip to main content

Check Python package requirements for updates

Project description

req-update-check

Tests Coverage Status Code style: ruff

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

Features

  • 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)

Installation

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 .

Usage

Basic usage:

req-update-check requirements.txt

Command Line Options

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

Arguments:

  • requirements_file: Path to your requirements.txt file

Note: You can also provide a pyproject.toml file, but only if you're using python 3.11+.

Options:

  • --no-cache: Disable file caching
  • --cache-dir: Custom cache directory (default: ~/.req-update-check-cache)

Example Output

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

Using file Caching

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

Requirements.txt Format

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.

Python API

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()

Development

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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

req_update_check-0.2.2.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

req_update_check-0.2.2-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file req_update_check-0.2.2.tar.gz.

File metadata

  • Download URL: req_update_check-0.2.2.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for req_update_check-0.2.2.tar.gz
Algorithm Hash digest
SHA256 3a2f9ed930f9cf61949c03891c351df7e8ed901017d9740e7643811535d142f3
MD5 6195f1bf200e5aa61a3e5a6d26822948
BLAKE2b-256 e2dc369a5f8d605f4dcc9180e96c26109967779c9e33f0440f16d3ce5f39085d

See more details on using hashes here.

File details

Details for the file req_update_check-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for req_update_check-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 980800e51191af643f3a3e4f3c520747df74f0c67d0cbad65cce82cf9619b32a
MD5 4cfc2a6ea96e3805b889ca008663ade4
BLAKE2b-256 105ecf8a856197d4c6f1e9afa42dab4a2de6d12a11c67aba341f4fe50f6b06c5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page