Skip to main content

py-pkg-updater

A clean, interactive CLI for checking and upgrading outdated Python packages in your current environment.

PyPI version Python versions License: MIT Publish to PyPI


Overview

py-pkg-updater helps you inspect outdated pip packages, compare installed versions with the latest available versions, and upgrade selected packages from an interactive terminal interface.

It is designed for developers who want a faster, cleaner workflow than repeatedly running pip list --outdated and manually upgrading packages one by one.


Screenshots

Outdated packages table

Outdated packages table

Upgrade progress

Upgrade progress


Features

  • Detect outdated packages using pip list --outdated
  • Display outdated packages in a clean terminal table
  • Upgrade all packages or selected packages only
  • Select packages by number or by package name
  • Rich-powered terminal UI when rich is available
  • Plain terminal fallback when rich is not installed
  • Works inside any Python environment where pip is available

Installation

Install from PyPI:

pip install py-pkg-updater

Upgrade to the latest version:

pip install --upgrade py-pkg-updater

Usage

Run the command inside the Python environment you want to update:

update-packages

You will see a list of outdated packages and an interactive selection prompt.

Selection options

A        upgrade all packages
N        skip upgrading
1,3,5    upgrade selected packages by number
pip,rich upgrade selected packages by name

Use py-pkg-updater inside an activated virtual environment.

Windows PowerShell

python -m venv venv
.\venv\Scripts\Activate.ps1
pip install py-pkg-updater
update-packages

Windows CMD

python -m venv venv
venv\Scripts\activate
pip install py-pkg-updater
update-packages

macOS / Linux

python3 -m venv venv
source venv/bin/activate
pip install py-pkg-updater
update-packages

Why Use a Virtual Environment?

py-pkg-updater upgrades packages in the Python environment where it is executed.

For safer dependency management, use it inside a project-specific virtual environment instead of your global Python installation. This reduces the risk of breaking system-level tools or unrelated projects.


Requirements

  • Python 3.9 or newer
  • pip
  • rich

Development

Clone the repository:

git clone https://github.com/AlonePyWarrior/packages_updator.git
cd packages_updator/update-python-packages

Create and activate a virtual environment:

python -m venv venv

Windows PowerShell:

.\venv\Scripts\Activate.ps1

Windows CMD:

venv\Scripts\activate

macOS / Linux:

source venv/bin/activate

Install the package in editable mode:

pip install -e .

Run locally:

update-packages

Build Locally

Install build tools:

pip install --upgrade build twine

Build the package:

python -m build

Check the distribution metadata:

python -m twine check dist/*

This creates distribution files in the dist/ directory.


Release Process

This project can be published manually with Twine or automatically through GitHub Actions and PyPI Trusted Publishing.

Manual release

python -m build
python -m twine check dist/*
python -m twine upload dist/*

Automated release with GitHub Actions

  1. Update the package version in pyproject.toml and src/update_python_packages/__init__.py.
  2. Commit the version bump.
  3. Push a version tag such as v0.1.6.
  4. GitHub Actions builds and publishes the package to PyPI.

Example:

git add .
git commit -m "Release 0.1.6"
git push origin main
git tag v0.1.6
git push origin v0.1.6

Project Structure

packages_updator/
├── .github/
│   └── workflows/
│       └── publish-to-pypi.yml
├── update-python-packages/
│   ├── src/
│   │   └── update_python_packages/
│   │       ├── __init__.py
│   │       └── cli.py
│   ├── pyproject.toml
│   ├── README.md
│   └── LICENSE
└── release.py

Safety Notes

Package upgrades can introduce breaking changes, especially in active projects.

Recommended workflow:

  1. Activate your project virtual environment.
  2. Run update-packages.
  3. Upgrade selected packages.
  4. Run your tests.
  5. Commit dependency changes only if everything works.

Avoid running bulk upgrades in a production environment without testing.


Common Commands

Task Command
Install package pip install py-pkg-updater
Upgrade package pip install --upgrade py-pkg-updater
Run CLI update-packages
Build locally python -m build
Check build python -m twine check dist/*
Editable install pip install -e .

License

This project is licensed under the MIT License.


Author

Created by Ali Esmaeilzadeh.

Metadata

Release files for py-pkg-updater 0.1.7

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

Source distribution (sdist)

Source distribution for py-pkg-updater 0.1.7
File Size Uploaded
py_pkg_updater-0.1.7.tar.gz 5.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for py-pkg-updater 0.1.7
File Interpreter ABI Platform
py_pkg_updater-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 12.3 kB

Release files / py_pkg_updater-0.1.7.tar.gz

Download URL py_pkg_updater-0.1.7.tar.gz
Size 5.8 kB
Tags Source
SHA-256 checksum
How to use checksums
09cde1323b2c02de051d109912294cadfa62c5b4feb67cbc243a1b12dc892757
BLAKE2b-256 checksum
How to use checksums
caafa6cf50cd484513a3851b822365beeb52aba530b9153525fff1da27ce0186
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 7, 2026.

Transparency log

Release files / py_pkg_updater-0.1.7-py3-none-any.whl

Download URL py_pkg_updater-0.1.7-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
daf250efc504c3afdc0310cd547fcd4603e793ff418f69ff73755794a3737955
BLAKE2b-256 checksum
How to use checksums
8c0f65232b40147a7f015eefbab6173ee47a2fe9ec387dac1f080f29400e9865
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

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