poopip: for when pip is too slow 💩
Project description
poopip: for when pip is too slow 💩
poopip is a tiny python package installer/uninstaller designed for working on local (i.e. already in your filesystem) pure python packages
poopip has very few features, but this makes it fast! 🔥
get poopip
assuming you have your favorite virtual environemnt already set up, you can run
pip install poopip
or else you can clone this repo and issue
python poopip/poopip.py install poopip/
usage
for some/path/to/a/package
the following should work:
# install to our current environment
poop install some/path/to/a/thing
# install globally for current user
poop --user install some/path/to/a/thing
# install in "editable" mode
poop install -e some/path/to/a/thing
# uninstall package from current environment
poop uninstall thing
# uninstall user's global package
poop --user uninstall thing
generally poopip will take the name of the directory as the name of the package and assume the code is either at thing/thing.py, or a directory thing/thing/ - it's on our todo list to read the pyproject.toml for this.
non-goals
poopip doesn't care about your package's requirements, just install them yourself (e.g. from a requirements.txt or requirements.lock file)
poopip doesn't aim to implement all of the pypa specifications - in particular, if you install a package with poopip it's a good idea to uninstall it with poopip rather than relying on another packaging tool
benchmarks
Here's how long it takes to install poopip itself (a zero-dependency, single python file) with various tools. In the regular old install case, poopip is up to 300x faster than pip!
interpreter | command | time |
---|---|---|
pypy3.10 | pip install --no-deps . | 5.645s |
pypy3.10 | pip install --no-deps -e . | 5.983s |
pypy3.10 | flit install --deps none | 6.143s |
pypy3.10 | flit install -s --deps none | 0.415s |
pypy3.10 | python poopip.py install . | 0.136s |
pypy3.10 | python poopip.py install -e . | 0.116s |
python3.11 | pip install --no-deps . | 1.981s |
python3.11 | pip install --no-deps -e . | 1.920s |
python3.11 | flit install --deps none | 2.008s |
python3.11 | flit install -s --deps none | 0.183s |
python3.11 | python poopip install . | 0.061s |
python3.11 | python poopip install -e . | 0.075s |
Flit's not really a package manager, but it is much faster than pip if we use symlinks (flit install -s --deps none
), so if you're after a good dev experience and only want to install in editable mode I would highly recomend it as a more sane option.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for poopip-0.2.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2bec4a4137984c47f7d0d92f001556b83063059c2edabeaddff03f1993fff97 |
|
MD5 | 728570d93931495c84dd3a4aac9630c3 |
|
BLAKE2b-256 | d6c41a7d6986ca3d42dfdc5d6d3cc0c0529e5b7e6375765c6b121e5bb68adc1b |