Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ratulmaharaj/pre-pip

Run some python before your pip commands.
https://github.com/ratulmaharaj/pre-pip

click hooks pip python rich

Last synced: 1 day ago
JSON representation

Run some python before your pip commands.

Awesome Lists containing this project

README

        


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.

```sh
pipx install pre-pip
```

Alternatively, you can install it with `pip`:

```sh
pip install pre-pip
```

### Usage

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

```sh
pre-pip install
```

### Register a custom demo hook

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

```python
# 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:

```sh
pre-pip add hook.py
```

You can view the list of registered hooks using:

```sh
pre-pip list
```

### Uninstall

Uninstall `pre-pip` using:

```sh
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:

```sh
pip uninstall pre-pip
```

### License

[MIT](LICENSE)