Manage the installed package by providing support for updating and uninstalling.
Project description
pkgu
Find the out-dated packages installed by the Pip tool and update them. Inspired by 👉depu(Go).
However, pkgu
supports full and partial updates, which is more convenient and flexible. It also supports cross-platform(Windows, linux, macos). 🤓 To retrieve the data more fast after the first-time(Or don't have to execute command again), I use sqlite as cache db to store the data and can quickly read it from db and present it to the console💻.
👉 However, only python3.10 and above are available now.
Usage
- Run code from source code
First, you need to install dependencies.
if you don't have poetry
tool, please install it first. 🔗: poetry installation, otherwise, install packages directly.
poetry install
and then, run pkgu.py
script.
python3 pkgu.py
- Use it through pip - Highly Recommended
pip3 install pkgu
after the installation is complete, pkgu
executable file will be written to the python bin directory and you can enter pkgu -h
command on your terminal to learn how to use it.
# Usage
usage: pkgu [-h] [-v] {update,remove} ...
Upgrade and uninstall python package.
options:
-h, --help show this help message and exit
-v, --version Display pkgu version and information
Available commands:
{update,remove} Available commands
update Update python package.
remove remove python package with its dependencies.
# ------ update ------
options:
-h, --help show this help message and exit
-a, --async_upgrade Update the library asynchronously. Default: False
-d CACHE_FOLDER, --cache_folder CACHE_FOLDER
The cache.db file. Default: ~/.cache/cache.db
-e EXPIRE_TIME, --expire_time EXPIRE_TIME
The expiration time. Default: 43200
--no-cache Whether to use db cache. Default: False
# ------ remove ------
options:
-h, --help show this help message and exit
-l, --list list unused dependencies, but don't uninstall them.
-L, --leaves list leaves (packages which are not used by any others).
-y, --yes don't ask for confirmation of uninstall deletions.
-f, --freeze list leaves (packages which are not used by any others) in requirements.txt format
ScreenShoot
- No packages need to be upgraded.
- Upgrade some expired packages.
- Update the pkg synchronously
- Update the pkg asynchronously
We can see that the async method is faster than sync method about 9 seconds(Only in this test situation). So now it can support to update the python libraries asynchronously. 🥳
- Support for selectable update packages
- List all availbable packages
- Select ths part of package to be updated
- Support to use cache result from sqlite db file.
This improve the expirence that how we list the out-dated packages when they are huge to collect, and then there also is a cli flag --no-cache
to control whether should to use cache.
- !!!New - Support to uninstall package with its dependencies together.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file pkgu-0.0.28-py3-none-any.whl
.
File metadata
- Download URL: pkgu-0.0.28-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34655d80c59c12dcf738ceaed494c98d30c578dd09d73388f0901a17a755faa2 |
|
MD5 | cafa2de280497332072a50fef1e7fd74 |
|
BLAKE2b-256 | 49689b615c48da32bcd58112ee8abc15f931e20ff3fb22582c386661f2ee82ee |