A tool to upgrade dependencies to the latest versions

Overview
logo

pip-check-updates

pytest coding_style PyPI - License PyPI - Python Version PyPI - License PyPI - Wheel Downloads

A tool to upgrade dependencies to the latest versions, inspired by npm-check-updates

Install

From PyPi

pip install pip-check-updates

From GitHub

pip install git+https://github.com/zehengl/pip-check-updates.git

Usage

Depends on where you install pip-check-updates, if Python's scripts folder is not in path, the pcu entry point would not be available. However you can replace pcu with python -m pip-check-updates.

Show any new dependencies for the project in the current directory:

Changes are color coded

  • Red = major upgrade
  • Cyan = minor upgrade
  • Green = patch upgrade
pcu
Checking dependencies
100%|████████████████████| 6/6 [00:01<00:00,  5.75it/s]

In requirements.txt

tqdm    4.62.0  →  4.62.1
pandas  0.25.3  →  1.3.2
Django  3.1.13  →  3.2.6

Run pcu -u to upgrade requirements.txt

Upgrade a project's requirements file:

pcu -u
Upgrading dependencies
100%|████████████████████| 6/6 [00:01<00:00,  5.84it/s]

In requirements.txt

tqdm    4.62.0  →  4.62.1
pandas  0.25.3  →  1.3.2
Django  3.1.13  →  3.2.6

Run pip install -r requirements.txt to install new versions

Specify requirements file if needed, -r option will be recognized as well:

pcu requirements-dev.txt
Checking dependencies
100%|████████████████████| 10/10 [00:01<00:00,  6.05it/s]

In requirements.txt

tqdm    4.62.0  →  4.62.1
pandas  0.25.3  →  1.3.2
Django  3.1.13  →  3.2.6

In requirements-dev.txt

black   21.6b0  →  21.7b0
pylint  2.9.3   →  2.9.6
pytest  5.4.3   →  6.2.4

Run pcu -u to upgrade requirements.txt and requirements-dev.txt

Target version:

pcu requirements-dev.txt -t patch
Checking dependencies
100%|████████████████████| 10/10 [00:02<00:00,  4.73it/s]

In requirements.txt

tqdm  4.62.0  →  4.62.1

In requirements-dev.txt

pylint  2.9.3  →  2.9.6

Run pcu -u to upgrade requirements.txt and requirements-dev.txt

Filter by a pattern:

pcu requirements-dev.txt -f "py*"
Checking dependencies
100%|████████████████████| 10/10 [00:01<00:00,  6.01it/s]

In requirements-dev.txt

pylint  2.9.3  →  2.9.6
pytest  5.4.3  →  6.2.4

Run pcu -u to upgrade requirements-dev.txt

Show the helper text:

pcu -h
usage: pcu [-h] [-u] [-f FILTER [FILTER ...]] [-t {latest,newest,greatest,minor,patch}] [-x] [-i] [--no_ssl_verify] [--no_recursive] [path]

pip-check-updates.

positional arguments:
path                  specify path to a requirements file

optional arguments:
-h, --help            show this help message and exit
-u, --upgrade         overwrite package file with upgraded versions instead of just outputting to console.
-f FILTER [FILTER ...], --filter FILTER [FILTER ...]
                        include only package names matching the given strings.
-t {latest,newest,greatest,minor,patch}, --target {latest,newest,greatest,minor,patch}
                        target version to upgrade to: latest, newest, greatest, minor, patch.
-x, --txt             output new requirements file instead of human-readable message.
-i, --interactive     enable interactive prompts for each dependency.
--no_ssl_verify       disable SSL verification.
--no_recursive        disable recursive checking.

Test

python setup.py test

Credits

Comments
  • feat: Move code in __init__ into separate modules

    feat: Move code in __init__ into separate modules

    This allow the module to have a consistent code separation. Additionally, it will help in the future in case of changes to one part of the application, e.g. version parsing, without affecting others.

    opened by ItachiSan 3
  • When specifying non-default requirements file, suggested pcu -u is incomplete

    When specifying non-default requirements file, suggested pcu -u is incomplete

    Small nitpick, but when using a non-default requirements file, for example:

    pcu requirements-dev.txt
    

    and there are available updates, then the tool prints:

    Run pcu -u to upgrade
    

    Instead, it should report:

    Run pcu requirements-dev.txt -u to upgrade
    

    Note that in another situation the requirements file is included in the suggested command:

    Run pip install -r requirements-dev.txt to install new versions
    
    opened by Virtlink 3
  • Dependencies from private pypi causes traceback

    Dependencies from private pypi causes traceback

    If dependency exists only in private pypi version resolving causes traceback:

    Traceback (most recent call last):
      File "/venv/bin/pcu", line 8, in <module>
        sys.exit(run())
      File "/venv/lib/python3.8/site-packages/pip_check_updates/__main__.py", line 126, in run
        change = compare_versions(current_version, latest_version)
      File "/venv/lib/python3.8/site-packages/pip_check_updates/__init__.py", line 24, in compare_versions
        latest_versioning = latest_version.split(".")
    AttributeError: 'NoneType' object has no attribute 'split'
    
    opened by jtiai 3
  • Add basic poetry support

    Add basic poetry support

    This builds on the Pipfile checking support and adapts it to support poetry dependencies in pyproject.toml.

    I manage projects using a mix of different package management tools pip (requirements.txt), pipenv and poetry, so having one tool to support them all would be a time saver for me.

    opened by nikolaik 2
  • Support for `pyproject.toml`, other than Poetry

    Support for `pyproject.toml`, other than Poetry

    Hi! I believe that adding dependencies support for other major pyproject.toml-based tools should be easy to do and very important.

    Namely, the tools supported would be:

    • setuptools
    • flit

    I quickly glanced the code and noticed that there is some custom code snooping inside tool.poetry, while the relevant information for the above tools are inside project.

    I am trying to hack up a local version, but I need to know the following:

    1. Can / should I use the requirements from: https://packaging.pypa.io/en/latest/requirements.html or should I reuse some internal code?
    2. Is there any requirement for tests / guidelines / others?

    Let me know! :wink:

    opened by ItachiSan 6
Owner
Zeheng Li
This guy is too lazy to have something said.
Zeheng Li
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.

Spack Spack is a multi-platform package manager that builds and installs multiple versions and configurations of software. It works on Linux, macOS, a

Spack 3.1k Jan 9, 2023
Python PyPi staging server and packaging, testing, release tool

devpi: PyPI server and packaging/testing/release tool This repository contains three packages comprising the core devpi system on the server and clien

null 629 Jan 1, 2023
🗽 Like yarn outdated/upgrade, but for pip. Upgrade all your pip packages and automate your Python Dependency Management.

pipupgrade The missing command for pip Table of Contents Features Quick Start Usage Basic Usage Docker Environment Variables FAQ License Features Upda

Achilles Rasquinha 529 Dec 31, 2022
A tool (and pre-commit hook) to automatically upgrade syntax for newer versions of the language.

pyupgrade A tool (and pre-commit hook) to automatically upgrade syntax for newer versions of the language. Installation pip install pyupgrade As a pre

Anthony Sottile 2.4k Jan 8, 2023
edgetest is a tox-inspired python library that will loop through your project's dependencies, and check if your project is compatible with the latest version of each dependency

Bleeding edge dependency testing Full Documentation edgetest is a tox-inspired python library that will loop through your project's dependencies, and

Capital One 16 Dec 7, 2022
MIB2 STD ZR Firmware Upgrade

Upgrade MIB2 STD ZR Firmware (without Navigation) About This repository contains some scripts and documentation how to upgrade the MIB2 firmware to a

Fabian 18 Dec 29, 2022
Script for resizing MTD partitions on a QNAP device in order to be available to upgrade from buster to bullseye

QNAP partitions resize for kirkwood devices. As explained by Marin Michlmayr, Debian bullseye support on kirkwood QNAP devices was dropped due to [mai

Arnaud Mouiche 26 Jan 5, 2023
Spam the buzzer and upgrade automatically - Selenium

CookieClicker Usage: Let's check your chrome navigator version : Consequently, you have to : download the right chromedriver in the follow link : http

Iliam Amara 1 Nov 22, 2021
Ansible Automation Example: JSNAPY PRE/POST Upgrade Validation

Ansible Automation Example: JSNAPY PRE/POST Upgrade Validation Overview This example will show how to validate the status of our firewall before and a

Calvin Remsburg 1 Jan 7, 2022
BGraph is a tool designed to generate dependencies graphs from Android.bp soong files.

BGraph BGraph is a tool designed to generate dependencies graphs from Android.bp soong files. Overview BGraph (for Build-Graphs) is a project aimed at

Quarkslab 10 Dec 19, 2022
A tool to build reproducible wheels for you Python project or for all of your dependencies

asaman: Amra Saman (আমরা সমান) This is a tool to build reproducible wheels for your Python project or for all of your dependencies. What this means is

Kushal Das 14 Aug 5, 2022
ChainJacking is a tool to find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack.

ChainJacking is a tool to find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack.

Checkmarx 36 Nov 2, 2022
fast python port of arc90's readability tool, updated to match latest readability.js!

python-readability Given a html document, it pulls out the main body text and cleans it up. This is a python port of a ruby port of arc90's readabilit

Yuri Baburov 2.2k Dec 28, 2022
shiv is a command line utility for building fully self contained Python zipapps as outlined in PEP 441, but with all their dependencies included.

shiv shiv is a command line utility for building fully self-contained Python zipapps as outlined in PEP 441, but with all their dependencies included!

LinkedIn 1.5k Dec 28, 2022
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies

(This library is available under a free and permissive license however, if you Enjoy Dear PyGui please consider becoming a Sponsor) Dear PyGui is a si

Jonathan Hoffstadt 9.4k Jan 4, 2023
㊙️ Create standard barcodes with Python. No external dependencies. 100% Organic Python.

python-barcode python-barcode provides a simple way to create barcodes in Python. There are no external dependencies when generating SVG files. Pillow

Hugo Barrera 419 Dec 26, 2022
Python interface for converting Penn Treebank trees to Stanford Dependencies and Universal Depenencies

PyStanfordDependencies Python interface for converting Penn Treebank trees to Universal Dependencies and Stanford Dependencies. Example usage Start by

David McClosky 64 May 8, 2022
A set of tools to keep your pinned Python dependencies fresh.

pip-tools = pip-compile + pip-sync A set of command line tools to help you keep your pip-based packages fresh, even when you've pinned them. You do pi

Jazzband 6.5k Dec 29, 2022
🔍 Google Search unofficial API for Python with no external dependencies

Python Google Search API Unofficial Google Search API for Python. It uses web scraping in the background and is compatible with both Python 2 and 3. W

Avi Aryan 204 Dec 28, 2022
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies

(This library is available under a free and permissive license however, if you Enjoy Dear PyGui please consider becoming a Sponsor) Dear PyGui is a si

Jonathan Hoffstadt 9.4k Jan 7, 2023