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.0package==1.2.0 (exact version)
  • package>=1.0.0package>=1.2.0 (minimum version)
  • package<=2.0.0package<=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

Download files

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

Source Distribution

cupdate-2.0.3.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

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

cupdate-2.0.3-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file cupdate-2.0.3.tar.gz.

File metadata

  • Download URL: cupdate-2.0.3.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for cupdate-2.0.3.tar.gz
Algorithm Hash digest
SHA256 70a6d66f429c309391d936bb70fb6e5b5478faf654cdf3be7050d23276be43ab
MD5 18d3e8930ee1f4c190f6a8106dc1316d
BLAKE2b-256 c87b730993f8139bc17917f1b027611c20ece12898c674cb064304430c6b726a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cupdate-2.0.3.tar.gz:

Publisher: release.yml on seydx/cupdate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cupdate-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: cupdate-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for cupdate-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9300956a178fe52c3bc661be81ddd1009e038322d4a9af068697882331e788fb
MD5 2a913c23058e9b56177d6224fd2f85b7
BLAKE2b-256 98ec5f00cbaf566ba6ad2c5b34626fe96030d2a1f789b87ef1538309aa6363b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for cupdate-2.0.3-py3-none-any.whl:

Publisher: release.yml on seydx/cupdate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

2.0.3 This release

2 files

2.0.2

2 files

2.0.1

1 file

2.0.0

1 file

1.0.1

1 file

1.0.0

1 file

Supported by

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