An interactive pip requirements upgrader that also updates the version in your requirements.txt file
—
Main command-line interface providing the pip-upgrade console command with comprehensive options for interactive and automated requirements file upgrading.
The primary entry point for the pip-upgrade command-line tool that orchestrates the complete upgrade workflow.
def main():
"""
Main CLI entrypoint that executes the complete upgrade workflow.
Workflow:
1. Parse command-line options
2. Check virtual environment status
3. Detect requirements files
4. Parse packages from requirements files
5. Query PyPI for available upgrades
6. Present interactive selection or use pre-selected packages
7. Install packages and update requirements files
Raises:
KeyboardInterrupt: On user cancellation or validation failures
"""Parses command-line arguments using docopt and returns a structured options dictionary.
def get_options():
"""
Parse command-line arguments using docopt.
Returns:
dict: Options dictionary containing all parsed arguments and flags
"""pip-upgrade [<requirements_file>] ...--prereleaseInclude prerelease versions for upgrade when querying PyPI repositories.
-p <package> [<package> ...]Pre-choose which packages to upgrade. Skips the interactive prompt. Special value "all" selects all available upgrades.
--dry-runSimulates the upgrade process but does not execute the actual upgrade or file modifications.
--skip-package-installationOnly upgrade the version numbers in requirements files, don't install the new packages via pip.
--skip-virtualenv-checkDisable virtualenv check. Allows installing new packages outside of a virtual environment.
--use-default-indexSkip searching for custom index-url in pip configuration files and use the default PyPI index.
# Auto-discover requirements.txt and upgrade interactively
pip-upgrade
# Specify requirements file explicitly
pip-upgrade requirements.txt
# Work with multiple requirements files
pip-upgrade requirements/dev.txt requirements/production.txt# Pre-select specific packages
pip-upgrade requirements.txt -p django -p celery
# Upgrade all available packages
pip-upgrade requirements.txt -p all# Simulate upgrade without making changes
pip-upgrade requirements.txt --dry-run
# Combine with package selection
pip-upgrade requirements.txt -p django --dry-run# Skip virtualenv validation
pip-upgrade requirements.txt --skip-virtualenv-check
# Only update requirements files, don't install packages
pip-upgrade requirements.txt --skip-package-installation
# Include prerelease versions
pip-upgrade requirements.txt --prerelease
# Use default PyPI instead of custom index
pip-upgrade requirements.txt --use-default-indexThe CLI interface handles several types of errors:
The CLI provides colored terminal output using the colorclass library:
Tables are formatted using the terminaltables library for clear presentation of upgrade options.
Install with Tessl CLI
npx tessl i tessl/pypi-pip-upgrader