PyFilesystem / pyfilesystem

Python filesystem abstraction layer
http://pyfilesystem.org/
BSD 3-Clause "New" or "Revised" License
288 stars 63 forks source link

Inconsistent error behavior when URL points to a file rather than a collection. #214

Open zopyx opened 9 years ago

zopyx commented 9 years ago

Using DAVFS I can point the connection to a resource rather than a directory and read the resource like this:

handle = DAVFS('https:/.../path/to/foo.txt') fp = handle.open('.') print fp.read() .....

Doing the same with OSFP leads to a ResourceInvalidError

handle = OSFS('/tmp/path/to/foo.txt')

So the behavior is different and inconsistent across the underlaying drivers. Not sure what the right behavior would be. I guess that the behavior of OSFS is correct. The constructors should accept only URLs pointing to a folder or a collection and raise ResourceInvalidError otherwise.

willmcgugan commented 9 years ago

You may be right about that. Although for network filesystems, the check itself is an overhead.

I'm thinking that maybe it would be best to leave it as is, and document it as 'undefined behaviour'.