Skip to content

RatulMaharaj/pre-pip

Repository files navigation

pre-pip

Run some python code just before your pip commands.

pytest zsh pytest bash Package version


Use cases

  • Before installing a package, check it against a list of known malicious packages.
  • Upgrade pip automatically before installing a package.
  • Inject pip proxy settings into the environment before installing a package.

You can use it to run any custom python code before a pip command is executed.

Supported shells

The following shells are currently supported:

  • zsh
  • bash

I'm currently working on adding support for powershell and will thereafter look at fish.

Contributions for any other shells are welcome.

Installation

The recommended way to install pre-pip would be using pipx. This will enable you to use pre-pip with multiple python versions or across virtual environments.

pipx install pre-pip

Alternatively, you can install it with pip:

pip install pre-pip

Usage

Install pre-pip into your .*rc file using:

pre-pip install

Register a custom demo hook

Create a new file called hook.py in your current directory with the following content:

# hook.py
from rich import print as rprint


def main(args):
    rprint(
        f"This [italic green]pre-pip[/italic green] hook received: [italic cyan]{args}[/italic cyan]",
    )

Register the hook using:

pre-pip add hook.py

You can view the list of registered hooks using:

pre-pip list

Uninstall

Uninstall pre-pip using:

pre-pip uninstall

This will remove the pre-pip hook from your .*rc file as well as all registered hooks.

To remove the pre-pip package, use:

pip uninstall pre-pip

License

MIT