Michael Foord added the comment:
Damn. :-)
Detecting the case where the normpath'd location is the same means
hitting the filesystem - and the current version just does string
manipulation so it doesn't seem like an acceptable change.
Still, compared to other languages the file handling in Pyt
Martin v. Löwis added the comment:
> Is there any problem with join always calling normpath on it's result?
Yes. If /usr/local/bin was a symlink to /net/x86, then
/usr/local/bin/../lib might not be /usr/local/lib, but /net/lib. So
calling normpath in the presence of symlinks might be incorrect.
New submission from Michael Foord :
os.path.join has very basic behavior in the handling of '..'
>>> import os
>>> os.path.join('/foo', '..')
'/foo/..'
For some usecases (comparing paths for example) this is not useful and
you have to manually call normpath on the results:
>>> os.path.normpath