Skip to main content

cupdate

Python requirements.txt updater.

Installation

pip install cupdate

Usage

Basic Update

# Update all packages in requirements.txt
cupdate

With Exclusions

Create a cupdate.config.txt file to exclude packages:

# cupdate.config.txt
numpy
pandas==1.5.0
tensorflow

Then run:

cupdate

Features

  • Smart Updates - Preserves version operators (>=, <=, ==)
  • In-place Rewrites - Only the version number changes, environment markers, comments and order stay
  • Package Exclusions - Skip specific packages from updates
  • Release Information - Shows package age and project URLs
  • Formatted Output - Clean table display of updates
  • PyPI Integration - Fetches latest versions and metadata

Example Output

NAME         OLD      NEW      AGE        INFO
------------ -------- -------- ---------- -------------------------
requests     2.28.1   2.31.0   2 months   https://pypi.org/project/requests/
flask        2.2.2    3.0.0    3 weeks    https://pypi.org/project/flask/
numpy        1.24.0   1.26.2   1 month    https://pypi.org/project/numpy/

✨ requirements.txt updated with 3 packages

Configuration

Exclusion File Format

# Lines starting with # are comments
package-name
another-package>=1.0.0
specific-version==2.1.0

Version Operators

cupdate preserves your version constraints:

  • package==1.0.0 → package==1.2.0 (exact version)
  • package>=1.0.0 → package>=1.2.0 (minimum version)
  • package<=2.0.0 → package<=2.1.0 (maximum version)

Requirements File Support

Works with standard requirements.txt format:

# requirements.txt
requests==2.28.1
flask[async]>=2.2.0
numpy<=1.24.0
onnxruntime==1.29.0; platform_machine != "x86_64"

Only the version number of a pinned requirement is replaced. Everything around it is written back byte for byte, including environment markers, extras, inline comments, blank lines, line order and CRLF endings.

Lines that do not pin a single version are left alone and never looked up:

-r base.txt
--index-url https://example.com/simple
numpy>=2.0,<3
hailort @ https://example.com/hailort-4.21.0.whl ; platform_machine == "aarch64"
pandas

Command Line Interface

# Update requirements in current directory
cupdate

# The tool automatically looks for:
# - requirements.txt (required)
# - cupdate.config.txt (optional exclusions)

Error Handling

  • Missing requirements.txt - Shows error and exits
  • Network issues - Shows warnings, continues with available data
  • Invalid packages - Skips problematic packages with warnings
  • Missing exclusions - Continues normally, updates all packages

Integration Examples

CI/CD Pipeline

# .github/workflows/update-deps.yml
name: Update Dependencies
on:
  schedule:
    - cron: '0 0 * * 1'  # Weekly on Monday

jobs:
  update:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.11'
      - name: Install cupdate
        run: pip install cupdate
      - name: Update requirements
        run: cupdate
      - name: Create PR
        # ... create pull request with changes

Development Workflow

# 1. Install cupdate
pip install cupdate

# 2. Create exclusions (optional)
echo "tensorflow" > cupdate.config.txt

# 3. Update dependencies
cupdate

# 4. Install updated packages
pip install -r requirements.txt

# 5. Test your application
python -m pytest

Package Information

The tool provides rich information about updates:

  • Package Name - The package being updated
  • Old Version - Current version in requirements.txt
  • New Version - Latest available version
  • Age - How long ago the new version was released
  • Info URL - Link to package homepage or PyPI page

Contributing

Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.

License

MIT

Metadata

Release files for cupdate 2.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cupdate 2.0.3
File Size Uploaded
cupdate-2.0.3.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cupdate 2.0.3
File Interpreter ABI Platform
cupdate-2.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 15.4 kB

Release files / cupdate-2.0.3.tar.gz

Download URL cupdate-2.0.3.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
70a6d66f429c309391d936bb70fb6e5b5478faf654cdf3be7050d23276be43ab
BLAKE2b-256 checksum
How to use checksums
c87b730993f8139bc17917f1b027611c20ece12898c674cb064304430c6b726a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / cupdate-2.0.3-py3-none-any.whl

Download URL cupdate-2.0.3-py3-none-any.whl
Size 7.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9300956a178fe52c3bc661be81ddd1009e038322d4a9af068697882331e788fb
BLAKE2b-256 checksum
How to use checksums
98ec5f00cbaf566ba6ad2c5b34626fe96030d2a1f789b87ef1538309aa6363b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.3 This release

2 release files

2.0.2

2 release files

2.0.1

1 release file

2.0.0

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page