Skip to main content

An interactive pip requirements upgrader. It also updates the version in your requirements.txt file.

Project description

pip-upgrader CI

An interactive pip requirements upgrader. Because upgrading requirements, package by package, is a pain in the ass. It also updates the version in your requirements.txt file.

Purpose

This cli tools helps you interactively(or not) upgrade packages from requirements file, and also update the pinned version from requirements file(s).

If no requirements are given, the command attempts to detect the requirements file(s) in the current directory.

Quick preview:

image

Installation

pip install pip-upgrader

Note: this packages installs the following requirements: 'docopt-ng', 'packaging', 'requests', 'terminaltables', 'colorclass'

To avoid installing all these dependencies in your project, you can install pip-upgrader in your system, rather than your virtualenv. If you install it in your system, and need to upgrade it, run pip install -U pip-upgrader

Usage

Activate your virtualenv (important, because it will also install the new versions of upgraded packages in current virtualenv)

CD into your project. Then: :

$ pip-upgrade

Arguments: :

requirements_file(s)          The requirement FILE, or WILDCARD PATH to multiple files. (positional arguments)
--prerelease                  Include prerelease versions for upgrade, when querying pypi repositories.
-p <package>                  Pre-choose which packages tp upgrade. Skips any prompt.
--dry-run                     Simulates the upgrade, but does not execute the actual upgrade.
--check-greater-equal         Also checks packages with minimum version pinned (package>=version).
--skip-package-installation   Only upgrade the version in requirements files, don't install the new package.
--skip-virtualenv-check       Disable virtualenv check. Allows installing the new packages outside the virtualenv.
--use-default-index           Skip searching for custom index-url in pip configuration file(s).
--timeout <seconds>           Set a custom timeout for PyPI requests (default: 15 seconds).

Examples:

pip-upgrade             # auto discovers requirements file. Prompts for selecting upgrades
pip-upgrade requirements.txt
pip-upgrade requirements/dev.txt requirements/production.txt

# skip prompt and manually choose some/all packages for upgrade
pip-upgrade requirements.txt -p django -p celery
pip-upgrade requirements.txt -p all

# include pre-release versions
pip-upgrade --prerelease

# also check packages pinned with >= instead of ==
pip-upgrade --check-greater-equal

# set a custom timeout for PyPI requests
pip-upgrade --timeout 30

Development

This project uses uv for dependency management:

uv sync --extra test --extra dev   # install all dependencies
uv run pytest                      # run tests
uv run ruff check .                # lint
uv run ruff format --check .       # check formatting

Releasing

Releases are published to PyPI automatically via GitHub Actions when a version tag is pushed:

git tag v1.10.0
git push origin v1.10.0

This triggers the publish.yml workflow which builds and publishes to PyPI using trusted publishers (OIDC).

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

pip_upgrader-2.0.0.tar.gz (5.8 MB view details)

Uploaded Source

Built Distribution

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

pip_upgrader-2.0.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file pip_upgrader-2.0.0.tar.gz.

File metadata

  • Download URL: pip_upgrader-2.0.0.tar.gz
  • Upload date:
  • Size: 5.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pip_upgrader-2.0.0.tar.gz
Algorithm Hash digest
SHA256 24ac5da286b7cd16f8614be005752a8c6f804866a41e0941d1eaa2febd57e199
MD5 8b073c6912b1d196ceff7008f814b922
BLAKE2b-256 b7180bb626e0fd8d7d6a4a7764a51010615ee60495dbd6b2fb3e905a099ce926

See more details on using hashes here.

Provenance

The following attestation bundles were made for pip_upgrader-2.0.0.tar.gz:

Publisher: publish.yml on simion/pip-upgrader

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

File details

Details for the file pip_upgrader-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: pip_upgrader-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pip_upgrader-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2857ef83370a16aa75a6569065f09745ccd1c26019fab18d06212e62c69dc064
MD5 f5ea5d8669bb1c82b65e1fff991cf4e7
BLAKE2b-256 d4b409e97db85b016975bdfb6062b8fdff8f9d880870296961135447bc38b1c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pip_upgrader-2.0.0-py3-none-any.whl:

Publisher: publish.yml on simion/pip-upgrader

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

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