Subject: [bug#64869] [PATCH 0/2] Add pipx package manager for Python applications

From: Wojtek Kosior <[email-masked]>
Date: Wed, 26 Jul 2023 11:05:37 +0200

This series adds pipx, a tool similar to pip but oriented towards installation
of Python applications rather than libraries, with automatic isolation of
installed packages.

Other distros are now changing pip to recommend using pipx instead[1]. Whether
or not Guix will do the same, it seems like a good idea to at least have pipx
available in the repos.

I was unsure whether python-pipx should go into python-build or
python-xyz. python-pip is declared in the former, python-virtualenv in the
latter. In the end I chose python-xyz.

Tests have been disabled because those of python-userpath rely on `docker pull`
and those of python-pipx rely on application wheels from PyPI. It might be
possible to enable at least some tests of python-pipx by using wheels from
Guix. Rn I did not, however, have time to investigate.

I tested the new package(s) with:

#BEGIN_EXAMPLE
./pre-inst-env guix lint python-userpath python-pipx
guix gc -D /gnu/store/*python-userpath-1.9.0 /gnu/store/*python-pipx-1.2.0
./pre-inst-env guix build python-userpath --rounds=3
./pre-inst-env guix build python-pipx --rounds=3
./pre-inst-env guix shell -C coreutils python-pipx findutils which less bash --network --no-cwd
pipx install pycowsay
pipx ensurepath
bash -l
pycowsay moooo
pipx uninstall pycowsay
#END_EXAMPLE

[1] https://pythonspeed.com/articles/externally-managed-environment-pep-668/

Wojtek Kosior (2):
  gnu: Add python-userpath.
  gnu: Add python-pipx.

 gnu/packages/python-xyz.scm | 77 +++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

base-commit: 76e041f9eef85bb039c5251d3350c62ee2066883
-- 
2.41.0