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.1.tar.gz (13.8 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.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: req_update_check-0.2.1.tar.gz
  • Upload date:
  • Size: 13.8 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.1.tar.gz
Algorithm Hash digest
SHA256 9eb3107060602cacd5c0780a0b4ad970a9ef4e8685e75eae214c5cd52dec86ec
MD5 59c096c87e80f0be290c9aa8f135eca6
BLAKE2b-256 c49b4485a458f7c0b43cc2725d3dc360d4cc320c956bc7ae67324de0eaa19dcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for req_update_check-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7d48a92901869e973430eaaa60e23d8ece921012363aeb1e2458f086f131a951
MD5 2380bf14b8cd0c5789022175ac1091c9
BLAKE2b-256 ec161dd03e7e953d58195c349d1b6e3773976135e17b5a1a08faa3983ce304b5

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