
At 11:38 PM 7/12/2007 +0200, Martin v. Löwis wrote:
I really don't like this for setuptools. My preference is that setuptools should be required to ask for a package with precise spelling.
I think the way setuptools currently works is this:
Every name gets converted to its lower-case safe-name equivalent. All dependencies, file names, resource identifications etc are based on that version of the name, *not* the "true" name of the package.
Object comparisons are done case-insensitively, but the objects themselves keep the case-insensitive forms ('key' attributes) separate from the originally-input names ('project_name' attributes).
Then, when setuptools tries to find a package whose "true" name is in mixed-case, it uses the lower-cased safe-named version, and PyPI reports that the package does not exist. Then, setuptools queries the entire package list, trying to find out the original spelling of the package.
This is almost correct, except that it actually tries to lookup whatever the user actually input, then the safe_name() form of that. For index lookups, it does not actually change the case of what was entered, so if the user enters something that exactly matches what's on PyPI, they'll have a better chance of getting everything in one request.... unless there are multiple versions listed, of course.