On 15/09/2010 22:12, Ben Finney wrote:
Chris Withers<ch...@simplistix.co.uk>  writes:

I'm curious as to why, with a file called "Foo.txt"
os.path.normcase('FoO.txt') will return "foo.txt" rather than
"Foo.txt"?

What kind of answer are you looking for?

A direct answer would be: it does that because on case-insensitive
filesystems, it doesn't matter what the case is, so there's no need for
anything more complex than all lowercase.

Well, no, that doesn't feel right. Normalisation of case, for me, means "give me the case as the filesystem thinks it should be", not "just lowercase it all". This makes a difference; I hit it by way of version pinning in buildout, the culprit being setuptools calling normcase on distributions found on the filesystem on Windows. Buildout's version pinning is case sensitive (arguably a bug) and so doesn't work when setuptools's use of normcase ends up with he distribution name being lowercased, even though the case is correct on the file system...

Yes, I know the behaviour is documented

The docstring is fairly poor, IMO. You might want to submit a bug report
to improve it.

I think it would have been a lot more confusing had it not been mentioned that it was just lowercasing everything...

Chris

--
Simplistix - Content Management, Batch Processing & Python Consulting
            - http://www.simplistix.co.uk
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to