On Mon, Mar 4, 2013 at 2:41 PM, Paul Moore
In thinking about how virtualenv would describe the packages it wants to preload in PEP 426 metadata form, it occurred to me that there are scenarios with setuptools and distribute where it's not obvious how to state the requirement you want. Specifically, if you want to install setuptools if it is present, but if not fall back to distribute (for example, if you have a local package repository and no access to PyPI, but setuptools may or may not be present).
I appreciate this is a fairly obscure case. It comes up with virtualenv because virtualenv uses locally-available distributions by default, only going to PyPI if it has to. So in that case (depending on user options) I could genuinely want to pick whichever of setuptools or distribute is present, and I don't care which, as it saves a network lookup.
I'm actually using the distlib locator API, not the PEP 426 fields themselves, but (a) distlib locators use the same syntax, as far as I'm aware, and (b) I think the Requires-Dist syntax makes a good language for specifying distribution requirements in any context, so I'd hate to end up with 2 slightly-different forms.
If the answer is that the spec doesn't support that, then fine. I'll have to manually code for it. But I'd hate to write code I didn't need to :-)
Paul.
We do have Provides-Dist, although the best way to implement it is an open question.