Skip to main content

UPGRADE ALL THE PIP PACKAGES!

Project description

pipupgrade

The missing command for pip

Table of Contents

Features

  • Updates system packages and local packages.
  • Discovers packages present within multiple Python Environments.
  • Updates packages mentioned within a requirements.txt file (Also pins up-to-date versions if mentioned).
  • Smart requirements.txt detector.
  • Pipfile support.
  • Detects semantic version to avoid updates that break changes. Also ensures to avoid child dependencies that break changes.
  • View Dependency Graph.
  • Parallel updates (blazingly fast).
  • Python 2.7+ and Python 3.4+ compatible. Also pip 9+, pip 10+, pip 18+ and pip 19.0.1+ compatible.
  • Automate your Dependencies by installing pipupgrade in your CI workflow.
  • Zero Dependencies!

Quick Start

$ pip install pipupgrade

Check out installation for more details.

Usage

Basic Usage

Upgrades all the packages across all detected pip environments.

Upgrades pipupgrade.

Display packages in the format (defaults to table)

Upgrades all the packages within the defined pip environment.

Checks and pretty prints outdated packages (Does not perform upgrades).

Upgrades packages only of the upgrade type (defaults to minor and patch).

WARNING: Upgrades all packages (including the ones that break change).

List all packages.

Prompts confirmation dialog for each package to be upgraded.

Upgrades the requirements file (if required).

Upgrades the Pipfile and Pipfile.lock file (if required).

Upgrades all the requirements file and/or Pipfile/Pipfile.lock within a project directory.

That's basically it! Run the help for more details...

$ pipupgrade --help
usage: pipupgrade [--pip-path PIP_PATH] [-y] [-c]
                  [--upgrade-type {major,minor,patch} [{major,minor,patch} ...]]
                  [-l] [-f {table,tree,json,yaml}] [-a] [--pip] [-s]
                  [-r REQUIREMENTS] [--pipfile PIPFILE] [-i] [-p PROJECT]
                  [--git-username GIT_USERNAME] [--git-email GIT_EMAIL]
                  [--pull-request] [--github-access-token GITHUB_ACCESS_TOKEN]
                  [--github-reponame GITHUB_REPONAME]
                  [--github-username GITHUB_USERNAME]
                  [--target-branch TARGET_BRANCH] [-j JOBS] [-u]
                  [--no-included-requirements] [--no-cache] [-o OUTPUT]
                  [--ignore-error] [--force] [--no-color] [-V] [-v] [-h]
                  [packages [packages ...]]

pipupgrade (v VERSION)

UPGRADE ALL THE PIP PACKAGES!

positional arguments:
  packages              Packages to Upgrade. (default: None)

optional arguments:
  --ignore IGNORE       Ignore packages to upgrade. (default: None)
  --pip-path PIP_PATH   Path to pip executable to be used. (default: None)
  -y, --yes             Confirm for all dialogs. (default: 0)
  -c, --check           Perform a dry-run, avoid updating packages. (default:
                        0)
  --upgrade-type {major,minor,patch} [{major,minor,patch} ...]
                        Upgrade Type (default: ['minor', 'patch'])
  -l, --latest          Update all packages to latest. (default: 0)
  -f {table,tree,json,yaml}, --format {table,tree,json,yaml}
                        Display packages format. (default: table)
  -a, --all             List all packages. (default: 0)
  --pip                 Update pip. (default: 0)
  -s, --self            Update pipupgrade. (default: False)
  -r REQUIREMENTS, --requirements REQUIREMENTS
                        Path(s) to requirements.txt file. (default: None)
  --pipfile PIPFILE     Path(s) to Pipfile (default: None)
  -i, --interactive     Interactive Mode. (default: 0)
  -p PROJECT, --project PROJECT
                        Path(s) to Project (default: None)
  --git-username GIT_USERNAME
                        Git Username (default: None)
  --git-email GIT_EMAIL
                        Git Email (default: None)
  --pull-request        Perform a Pull Request. (default: False)
  --github-access-token GITHUB_ACCESS_TOKEN
                        GitHub Access Token (default: None)
  --github-reponame GITHUB_REPONAME
                        Target GitHub Repository Name (default: None)
  --github-username GITHUB_USERNAME
                        Target GitHub Username (default: None)
  --target-branch TARGET_BRANCH
                        Target Branch (default: master)
  -j JOBS, --jobs JOBS  Number of Jobs to be used. (default: 4)
  -u, --user            Install to the Python user install directory for
                        environment variables and user configuration.
                        (default: 0)
  --no-included-requirements
                        Avoid updating included requirements. (default: 0)
  --no-cache            Avoid fetching latest updates from PyPI server.
                        (default: 0)
  -o OUTPUT, --output OUTPUT
                        Print Output to File. (default: None)
  --ignore-error        Ignore Error in case of upgrade failure. (default: 0)
  --force               Force search for files within a project. (default: 0)
  --no-color            Avoid colored output. (default: 0)
  -V, --verbose         Display verbose output. (default: False)
  -v, --version         Show pipupgrade's version number and exit.
  -h, --help            Show this help message and exit.

Docker

Using pipupgrade's Docker Image to generate a Pull Request can be done as follows:

$ docker run \
    -e "PIPUPGRADE_GIT_USERNAME=<YOUR_GIT_USERNAME>" \
    -e "PIPUPGRADE_GIT_EMAIL=<YOUR_GIT_EMAIL>" \
    -e "PIPUPGRADE_GITHUB_REPONAME=<YOUR_GIT_REPONAME>" \
    -e "PIPUPGRADE_GITHUB_USERNAME=<YOUR_GIT_USERNAME>" \
    --rm \
    -it \
    -v $(pwd):/path/to/project \
      achillesrasquinha/pipupgrade \
        --project /path/to/project \
        --pull-request \
        --force \
        --yes \
        --verbose

Similar Packages

pipupgrade attempts to provide an all-in-one solution as compared to the following packages:

Known Issues

License

This repository has been released under the MIT License.


Made with ❤️ using boilpy.

Project details


Download files

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

Files for pipupgrade, version 1.7.4
Filename, size File type Python version Upload date Hashes
Filename, size pipupgrade-1.7.4-py3-none-any.whl (37.9 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size pipupgrade-1.7.4.tar.gz (42.0 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page