Updatable help you to find packages that require updates on a python environment.
The latest release of updatable can be installed via PyPI:
pip install -U updatable
It can be installed globally or in virtual environment, depending on where you plan to check the dependencies.
If you have a requirements.txt with pinned dependencies you can pass it as an argument to check against it.
The project supports Python 3.10, 3.11, 3.12, 3.13, 3.14 as well as pypy3.10.
The package can be used as a command line tool, so you can get a list of all packages that require updates from your current environment. You may also use the package inside of your python application, to list the packages over a REST endpoint (see a sample implementation here), forward them by mail or other purpose.
$> updatable
Prints:
Django (2.1.13) Minor releases: -- 2.2.7 on 2019-11-04 08:33:19 -- 2.2.6 on 2019-10-01 08:36:44 -- 2.2.5 on 2019-09-02 07:18:39 -- 2.2.4 on 2019-08-01 09:04:37 -- 2.2.3 on 2019-07-01 07:19:23 -- 2.2.2 on 2019-06-03 10:11:10 -- 2.2.1 on 2019-05-01 06:57:39 -- 2.2 on 2019-04-01 12:47:35 Patch releases: -- 2.1.14 on 2019-11-04 08:33:13 ___ django-cors-headers (2.4.1) Major releases: -- 3.2.0 on 2019-11-15 10:28:47 -- 3.1.1 on 2019-09-30 20:51:53 -- 3.1.0 on 2019-08-13 08:12:02 -- 3.0.2 on 2019-05-28 20:43:54 -- 3.0.1 on 2019-05-13 13:00:40 -- 3.0.0 on 2019-05-10 10:53:00 Minor releases: -- 2.5.3 on 2019-04-28 19:03:35 -- 2.5.2 on 2019-03-15 16:42:57 -- 2.5.1 on 2019-03-13 13:03:04 -- 2.5.0 on 2019-03-05 11:41:22 Unknown releases: -- 0.01 on 2013-01-19 20:19:21 -- 0.02 on 2013-01-19 22:19:24 -- 0.03 on 2013-01-22 08:37:28 -- 0.04 on 2013-01-25 05:35:38 -- 0.05 on 2013-01-25 22:57:40 -- 0.06 on 2013-02-21 18:39:33 ___ Jinja2 (2.10.1) Patch releases: -- 2.10.3 on 2019-10-04 18:52:37 -- 2.10.2 on 2019-10-04 18:19:47 ___ Markdown (3.0.1) Minor releases: -- 3.1.1 on 2019-05-21 01:10:24 -- 3.1 on 2019-03-26 00:20:04 ___ pytz (2019.2) Minor releases: -- 2019.3 on 2019-10-07 03:18:16 ___ urllib3 (1.25.6) Patch releases: -- 1.25.7 on 2019-11-11 15:10:09 ___ Done in 8.47 sec.
The console program offers the following parameters:
-f <filename> --file <filename>
Optionally defines a requirements file to use.
If the parameter is not defined, the packages of the current Python environment will be used.
-pre <boolean> --pre-releases <boolean>
Includes pre-releases in the output, as separate category.
Default: false
Acceptable boolean values:
Positive: yes, true, t, y, 1 Negative: no, false, f, n, 0
$> updatable -f requirements.txt --pre-releases yes
Install development dependencies:
pip install -e ".[test,dev]"
Install pre-commit hooks:
pre-commit install
Run checks:
pre-commit run --all-files