At 06:11 AM 7/24/2007 -0400, Jim Fulton wrote:
On Jul 23, 2007, at 5:21 PM, Phillip J. Eby wrote:
At 11:13 PM 7/23/2007 +0200, Martin v. Löwis wrote:
Yes, especially since compatibility with the existing installation base requires case insensitivity, because on case-insensitive platforms easy_install already normalizes the case of filenames it creates. So, the question of what the "right thing" to do is in the abstract has already been moot for a year or two.
Can you elaborate a bit, please? Why does the case of filenames matter for the queries it makes?
AFAIU, it gets package names either from the user or from setup.py, perhaps also from packages dependency inside .egg files (assuming those support dependencies); these should all be case-sensitive.
In order to resolve dependencies, the system looks at installed .egg files and directories (and .egg-info direcories), and extracts package name and version info from the filenames.
But the package name and version are in the PKG-INFO files, so it certainly has access to non-normalized names. Why can't it double check a possible match against that file?
Because if case actually made a difference, we couldn't have both packages installed in the same directory, could we? And why add an extra file open (which currently is only needed for "develop" eggs) to the process of building a working set or environment, in order to confirm something whose only purpose is to make requirements more difficult to specify? :) Note that if what's bothering you is the package index access time, use Apache's mod_speling to enable case-insensitive URLs for the static page tree.