pip-manage


Namepip-manage JSON
Version 1.1.1 PyPI version JSON
download
home_pageNone
Summarypip-manage lets you smoothly manage your installed packages.
upload_time2024-06-15 21:53:02
maintainerrealshouzy
docs_urlNone
authorrealshouzy, Vincent Driessen
requires_python>=3.8
licenseBSD
keywords pip pip-purge pip-review update autoupdate autouninstall dependencies
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pip-manage

[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/realshouzy/pip-manage/main.svg)](https://results.pre-commit.ci/latest/github/realshouzy/pip-manage/main)
[![pylint status](https://github.com/realshouzy/pip-manage/actions/workflows/pylint.yaml/badge.svg)](https://github.com/realshouzy/pip-manage/actions/workflows/pylint.yaml)
[![tests status](https://github.com/realshouzy/pip-manage/actions/workflows/test.yaml/badge.svg)](https://github.com/realshouzy/pip-manage/actions/workflows/test.yaml)
[![CodeQL](https://github.com/realshouzy/pip-manage/actions/workflows/codeql.yaml/badge.svg)](https://github.com/realshouzy/pip-manage/actions/workflows/codeql.yaml)
[![PyPI - Version](https://img.shields.io/pypi/v/pip-manage)](https://github.com/realshouzy/pip-manage/releases/latest)
[![Python versions](https://img.shields.io/pypi/pyversions/pip-manage.svg)](https://pypi.org/project/pip-manage/)
[![Licens](https://img.shields.io/pypi/l/pip-manage)](https://github.com/realshouzy/pip-review/blob/main/LICENSE)
[![semantic-release](https://img.shields.io/badge/%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/realshouzy/pip-manage/releases)
[![PyPI - Format](https://img.shields.io/pypi/format/pip-manage)](https://pypi.org/project/pip-manage/)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)

**`pip-manage` lets you smoothly manage your installed packages.**

## Installation

To install, simply use pip:

```shell
pip install pip-manage
```

Alternatively:

```shell
pip install git+https://github.com/realshouzy/pip-manage
```

Decide for yourself whether you want to install the tool system-wide, or
inside a virtual env. Both are supported.

## Documentation

`pip-manage` includes two tools [`pip-review`](#pip-review) and [`pip-purge`](#pip-purge).

### pip-review

`pip-review` is a convenience wrapper around `pip`. It can list
available updates by deferring to `pip list --outdated`. It can also
automatically or interactively install available updates for you by
deferring to `pip install`.

Example, report-only:

```console
$ pip-review
requests==0.13.4 is available (you have 0.13.2)
redis==2.4.13 is available (you have 2.4.9)
rq==0.3.2 is available (you have 0.3.0)
```

You can also print raw lines:

```console
$ pip-review --raw
requests==0.13.4
redis==2.4.13
rq==0.3.2
```

Example, actually install everything:

```console
$ pip-review --auto
... <pip install output>
```

Example, run interactively, ask to upgrade for each package:

```console
$ pip-review --interactive
requests==0.14.0 is available (you have 0.13.2)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y
...
redis==2.6.2 is available (you have 2.4.9)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit n
rq==0.3.2 is available (you have 0.3.0)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y
...
```

Example, preview for update target list by `pip list --outdated` format,
with run interactively or install everything:

```console
$ pip-review --interactive --preview
Package  Version Latest Type
-----------------------------
redis    2.4.9   2.6.2  wheel
requests 0.13.2  0.14.0 wheel
rq       0.3.0   0.3.4  wheel
-----------------------------
... < --interactive processing >
```

You can also freeze the packages that will be upgraded to a file before actually upgrading them.

```console
$ pip-review --auto --freeze-outdated-packages
... <pip install output>
```

By default it will safe them to `backup.txt` in the current directory, but you can specify the file path using the `--freeze-file` option.

Run `pip-review -h` for a complete overview of the options.

Note: If you want to pin specific packages to prevent them from
automatically being upgraded, you can use a constraint file (similar to
`requirements.txt`):

```console
$ export PIP_CONSTRAINT="${HOME}/constraints.txt"
$ cat $PIP_CONSTRAINT
pyarrow==0.14.1
pandas<0.24.0

$ pip-review --auto
...
```

Set this variable in `.bashrc` or `.zshenv` to make it persistent.

- Linux:

```console
$ cat ~/.config/pip/pip.conf
[global]
constraint = /home/username/constraints.txt
```

- Windows:

```console
$ cat $HOME\AppData\Roaming\pip\pip.ini
[global]
constraint = '$HOME\Roaming\pip\constraints.txt'
```

The conf file are dependent of the user, so If you use multiple users
you must define config file for each of them.
<https://pip.pypa.io/en/stable/user_guide/#constraints-files>

Alternatively, since arguments that are also options for `pip install` or `pip list --outdated` will be forwarded,
you can pass the constraint files directly as an argument using the `--constraint` option of `pip install`.

Like `pip`, `pip-review` updates **all** upgradeable packages, including `pip` and
`pip-manage`.

### pip-purge

`pip-purge` enables you to uninstall a package along with all its dependencies that are not required by any other packages.
Simply specify the packages you want to purge, and `pip-purge` will handle the dependency resolution for you, ensuring that no other packages are broken in the process.
It uses the `importlib.metadata` module to resolve the dependencies and then deferres to `pip uninstall`.

Example:

```console
$ pip-purge requests
The following packages will be uninstalled: certifi, charset-normalizer, idna, requests, urllib3
Running: ...
```

You can also read from a requirements file. The read packages will be purged:

```console
$ pip-purge --requirement requirements.txt
...
```

If you want to exclude certain packages, you can do that as follows:

```console
$ pip-purge requests --exclude urllib3
The following packages will be uninstalled: certifi, charset-normalizer, idna, requests
Running: ...
```

Sometimes packages have extra / optional dependencies. These are considered by default, but can be ignored:

```console
$ pip-purge requests --ignore-extra
...
```

It's recommended to do a dry run first, which performs all operations normally but doesn't defer to `pip uninstall`:

```console
$ pip-purge requests --dry-run
The following packages will be uninstalled: certifi, charset-normalizer, idna, requests, urllib3
Would run: ...
```

You can also freeze the packages that will be uninstalled to a file before actually purging them.

```console
$ pip-review requests --freeze-purged-packages
...
```

By default it will safe them to `backup.txt` in the current directory, but you can specify the file path using the `--freeze-file` option.

Run `pip-purge -h` for a complete overview of the options.

## Contributing

If you are interested in contributing to this project, please refer [here](/CONTRIBUTING.md) for more information.

## Origins and credit

`pip-review` is derived from the original project of the same name created by Julian Gonggrijp. This fork is a refactored and enhanced version of the [original](https://github.com/jgonggrijp/pip-review).

Included from the original project:
`pip-review` was originally part of
[pip-tools](https://github.com/nvie/pip-tools/) but has been
[discontinued](https://github.com/nvie/pip-tools/issues/185) as such.
See [Pin Your Packages](http://nvie.com/posts/pin-your-packages/) by
Vincent Driessen for the original introduction. Since there are still
use cases, the tool now lives on as a separate package.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pip-manage",
    "maintainer": "realshouzy",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "pip, pip-purge, pip-review, update, autoupdate, autouninstall, dependencies",
    "author": "realshouzy, Vincent Driessen",
    "author_email": "Julian Gonggrijp <j.gonggrijp@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/64/03/670e0b02257fa5f023d15f6ea12e1e7074a32448b920872d7995a66adbd8/pip_manage-1.1.1.tar.gz",
    "platform": "any",
    "description": "# pip-manage\n\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/realshouzy/pip-manage/main.svg)](https://results.pre-commit.ci/latest/github/realshouzy/pip-manage/main)\n[![pylint status](https://github.com/realshouzy/pip-manage/actions/workflows/pylint.yaml/badge.svg)](https://github.com/realshouzy/pip-manage/actions/workflows/pylint.yaml)\n[![tests status](https://github.com/realshouzy/pip-manage/actions/workflows/test.yaml/badge.svg)](https://github.com/realshouzy/pip-manage/actions/workflows/test.yaml)\n[![CodeQL](https://github.com/realshouzy/pip-manage/actions/workflows/codeql.yaml/badge.svg)](https://github.com/realshouzy/pip-manage/actions/workflows/codeql.yaml)\n[![PyPI - Version](https://img.shields.io/pypi/v/pip-manage)](https://github.com/realshouzy/pip-manage/releases/latest)\n[![Python versions](https://img.shields.io/pypi/pyversions/pip-manage.svg)](https://pypi.org/project/pip-manage/)\n[![Licens](https://img.shields.io/pypi/l/pip-manage)](https://github.com/realshouzy/pip-review/blob/main/LICENSE)\n[![semantic-release](https://img.shields.io/badge/%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/realshouzy/pip-manage/releases)\n[![PyPI - Format](https://img.shields.io/pypi/format/pip-manage)](https://pypi.org/project/pip-manage/)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![Style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)\n\n**`pip-manage` lets you smoothly manage your installed packages.**\n\n## Installation\n\nTo install, simply use pip:\n\n```shell\npip install pip-manage\n```\n\nAlternatively:\n\n```shell\npip install git+https://github.com/realshouzy/pip-manage\n```\n\nDecide for yourself whether you want to install the tool system-wide, or\ninside a virtual env. Both are supported.\n\n## Documentation\n\n`pip-manage` includes two tools [`pip-review`](#pip-review) and [`pip-purge`](#pip-purge).\n\n### pip-review\n\n`pip-review` is a convenience wrapper around `pip`. It can list\navailable updates by deferring to `pip list --outdated`. It can also\nautomatically or interactively install available updates for you by\ndeferring to `pip install`.\n\nExample, report-only:\n\n```console\n$ pip-review\nrequests==0.13.4 is available (you have 0.13.2)\nredis==2.4.13 is available (you have 2.4.9)\nrq==0.3.2 is available (you have 0.3.0)\n```\n\nYou can also print raw lines:\n\n```console\n$ pip-review --raw\nrequests==0.13.4\nredis==2.4.13\nrq==0.3.2\n```\n\nExample, actually install everything:\n\n```console\n$ pip-review --auto\n... <pip install output>\n```\n\nExample, run interactively, ask to upgrade for each package:\n\n```console\n$ pip-review --interactive\nrequests==0.14.0 is available (you have 0.13.2)\nUpgrade now? [Y]es, [N]o, [A]ll, [Q]uit y\n...\nredis==2.6.2 is available (you have 2.4.9)\nUpgrade now? [Y]es, [N]o, [A]ll, [Q]uit n\nrq==0.3.2 is available (you have 0.3.0)\nUpgrade now? [Y]es, [N]o, [A]ll, [Q]uit y\n...\n```\n\nExample, preview for update target list by `pip list --outdated` format,\nwith run interactively or install everything:\n\n```console\n$ pip-review --interactive --preview\nPackage  Version Latest Type\n-----------------------------\nredis    2.4.9   2.6.2  wheel\nrequests 0.13.2  0.14.0 wheel\nrq       0.3.0   0.3.4  wheel\n-----------------------------\n... < --interactive processing >\n```\n\nYou can also freeze the packages that will be upgraded to a file before actually upgrading them.\n\n```console\n$ pip-review --auto --freeze-outdated-packages\n... <pip install output>\n```\n\nBy default it will safe them to `backup.txt` in the current directory, but you can specify the file path using the `--freeze-file` option.\n\nRun `pip-review -h` for a complete overview of the options.\n\nNote: If you want to pin specific packages to prevent them from\nautomatically being upgraded, you can use a constraint file (similar to\n`requirements.txt`):\n\n```console\n$ export PIP_CONSTRAINT=\"${HOME}/constraints.txt\"\n$ cat $PIP_CONSTRAINT\npyarrow==0.14.1\npandas<0.24.0\n\n$ pip-review --auto\n...\n```\n\nSet this variable in `.bashrc` or `.zshenv` to make it persistent.\n\n- Linux:\n\n```console\n$ cat ~/.config/pip/pip.conf\n[global]\nconstraint = /home/username/constraints.txt\n```\n\n- Windows:\n\n```console\n$ cat $HOME\\AppData\\Roaming\\pip\\pip.ini\n[global]\nconstraint = '$HOME\\Roaming\\pip\\constraints.txt'\n```\n\nThe conf file are dependent of the user, so If you use multiple users\nyou must define config file for each of them.\n<https://pip.pypa.io/en/stable/user_guide/#constraints-files>\n\nAlternatively, since arguments that are also options for `pip install` or `pip list --outdated` will be forwarded,\nyou can pass the constraint files directly as an argument using the `--constraint` option of `pip install`.\n\nLike `pip`, `pip-review` updates **all** upgradeable packages, including `pip` and\n`pip-manage`.\n\n### pip-purge\n\n`pip-purge` enables you to uninstall a package along with all its dependencies that are not required by any other packages.\nSimply specify the packages you want to purge, and `pip-purge` will handle the dependency resolution for you, ensuring that no other packages are broken in the process.\nIt uses the `importlib.metadata` module to resolve the dependencies and then deferres to `pip uninstall`.\n\nExample:\n\n```console\n$ pip-purge requests\nThe following packages will be uninstalled: certifi, charset-normalizer, idna, requests, urllib3\nRunning: ...\n```\n\nYou can also read from a requirements file. The read packages will be purged:\n\n```console\n$ pip-purge --requirement requirements.txt\n...\n```\n\nIf you want to exclude certain packages, you can do that as follows:\n\n```console\n$ pip-purge requests --exclude urllib3\nThe following packages will be uninstalled: certifi, charset-normalizer, idna, requests\nRunning: ...\n```\n\nSometimes packages have extra / optional dependencies. These are considered by default, but can be ignored:\n\n```console\n$ pip-purge requests --ignore-extra\n...\n```\n\nIt's recommended to do a dry run first, which performs all operations normally but doesn't defer to `pip uninstall`:\n\n```console\n$ pip-purge requests --dry-run\nThe following packages will be uninstalled: certifi, charset-normalizer, idna, requests, urllib3\nWould run: ...\n```\n\nYou can also freeze the packages that will be uninstalled to a file before actually purging them.\n\n```console\n$ pip-review requests --freeze-purged-packages\n...\n```\n\nBy default it will safe them to `backup.txt` in the current directory, but you can specify the file path using the `--freeze-file` option.\n\nRun `pip-purge -h` for a complete overview of the options.\n\n## Contributing\n\nIf you are interested in contributing to this project, please refer [here](/CONTRIBUTING.md) for more information.\n\n## Origins and credit\n\n`pip-review` is derived from the original project of the same name created by Julian Gonggrijp. This fork is a refactored and enhanced version of the [original](https://github.com/jgonggrijp/pip-review).\n\nIncluded from the original project:\n`pip-review` was originally part of\n[pip-tools](https://github.com/nvie/pip-tools/) but has been\n[discontinued](https://github.com/nvie/pip-tools/issues/185) as such.\nSee [Pin Your Packages](http://nvie.com/posts/pin-your-packages/) by\nVincent Driessen for the original introduction. Since there are still\nuse cases, the tool now lives on as a separate package.\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "pip-manage lets you smoothly manage your installed packages.",
    "version": "1.1.1",
    "project_urls": {
        "Source": "https://github.com/realshouzy/pip-manage"
    },
    "split_keywords": [
        "pip",
        " pip-purge",
        " pip-review",
        " update",
        " autoupdate",
        " autouninstall",
        " dependencies"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "68457110e2dc42fdaaabb7d89ae286bef1f4fdb6518b8ff3e320ff77cb902b7b",
                "md5": "559afeb8c958647a20dfa85c31838cff",
                "sha256": "9287eca2d914df6ad0efbfd26cdc19256535b4a675f29ece6f179b01b4b8dc2f"
            },
            "downloads": -1,
            "filename": "pip_manage-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "559afeb8c958647a20dfa85c31838cff",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 15503,
            "upload_time": "2024-06-15T21:53:01",
            "upload_time_iso_8601": "2024-06-15T21:53:01.134597Z",
            "url": "https://files.pythonhosted.org/packages/68/45/7110e2dc42fdaaabb7d89ae286bef1f4fdb6518b8ff3e320ff77cb902b7b/pip_manage-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6403670e0b02257fa5f023d15f6ea12e1e7074a32448b920872d7995a66adbd8",
                "md5": "dec5a4558dcb13efa5eb1695ee54d05e",
                "sha256": "a4a7de3f34f3d2b3067dea8d39ef1b0fe4b809779bb6005979af079a7d6d9f3e"
            },
            "downloads": -1,
            "filename": "pip_manage-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "dec5a4558dcb13efa5eb1695ee54d05e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 16426,
            "upload_time": "2024-06-15T21:53:02",
            "upload_time_iso_8601": "2024-06-15T21:53:02.783606Z",
            "url": "https://files.pythonhosted.org/packages/64/03/670e0b02257fa5f023d15f6ea12e1e7074a32448b920872d7995a66adbd8/pip_manage-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-15 21:53:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "realshouzy",
    "github_project": "pip-manage",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "pip-manage"
}
        
Elapsed time: 0.26389s