Lars Gustäbel <l...@gustaebel.de> added the comment:

a) The point is: the operation simply wouldn't fail on a case-sensitive 
filesystem. There is no platform-specific or otherwise special code in 
TarFile.makefile(). It simply tries to extract the file and the filesystem 
layer says no, because it believes there is already a directory with the same 
name. The same thing happens on a Windows filesystem BTW. The problem boils 
down to this:

>>> os.mkdir("A")
>>> open("a", "w")
IOError: [Errno 21] Is a directory: 'a'

And IIUC, the Mac OS X filesystem is case-preserving(!) by default, with the 
possibility to create new filesystems as case-sensitive. As I said, my Mac OS X 
expertise is almost nonexistent, you might as well ask someone with more 
knowledge on Python on Mac OS X.

b) I don't know what Finder does with that archive, but I cannot think of any 
other way than either not to extract the file at all or to extract it under a 
different name or to remove the directory first and then extract the file. 
Could you please examine how Finder extracts this archive?

c) IMHO the IOError exception is perfectly fine, because this kind of issue is 
outside of tarfile's scope. We hit a filesystem limit here. Also, there is no 
decent way to work around this problem, and I think there is no need to either.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue8958>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to