Filtering a package out of a PyPI remote repo

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Filtering a package out of a PyPI remote repo

dsuzuki
We are currently set up with a local PyPI repo and a virtual repo that combines it with the PyPI remote (local has precedence).  Recently I built a custom numpy wheel and published it to the local repo.  However, when I try to install numpy via pip, I end up with the manylinux wheel from PyPI.  pip is apparently preferring the manylinux version over ours.

I then tried applying an exclude pattern to prevent the remote repo from serving the manylinux wheel.  This does prevent one from downloading the wheel (it shows as "not found"), but the link to the wheel still shows up in the index.  As a result, pip still tries to download it and just fails.  This happens whether we apply the exclude pattern to the remote repo or the virtual repo.

A workaround on the client side is to supply a _manylinux.py module in PYTHONPATH that sets manylinux1_compatible=False.  This prevents pip from installing any manylinux wheels.  However, it is not practical to enforce this behavior over all of our potential internal clients, and there might still be cases where we want to allow installation of manylinux wheels for other packages.

Is there some way for us to exclude the manylinux wheel from the index so that pip will not see it at all?