PyFilesystem / pyfilesystem

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

Fuse module: much cleanup is needed #261

Closed arekbulski closed 7 years ago

arekbulski commented 8 years ago

I found something strange, expose/fuse/__init__.py imports one of two modules, but the fuse.py is NEVER loaded by either three remaining files. Could someone confirm I am not imagining things? Also file names seem to be wrong, fuse3 is loaded only on PY 2. https://github.com/PyFilesystem/pyfilesystem/blob/master/fs/expose/fuse/__init__.py#L73

lurch commented 8 years ago

That's quite possible. The FUSE stuff all looks quite confusing, and years ago there was lots of discussion around macfuse, fusepy, osxfuse, fuse4x, fuse-python, etc. etc. So I've personally been deliberately avoiding touching the FUSE code with a bargepole ;-)

It would be great if someone who knows what's what is able to sort it all out!

P.S. You can use backticks if you want to display a filename containing underscores, to stop github displaying it in bold. I edited your original comment for you.

anastmag commented 8 years ago

Hi @lurch Let me investigate it as my first contribution to the project. Best Anastasios

arekbulski commented 8 years ago

@anastmag Great, we need more hands on.

anastmag commented 8 years ago

Why have you decided to implement your own custom fuse bindings and not relied to pyfuse ?

arekbulski commented 8 years ago

I didnt implement anythting if you were replying to me. It is generalny better to have own copy of a module than merely reference it. Pyfuse can get broken or removed, we wont be affected.

arekbulski commented 8 years ago

Until fuse binaries change, which is unlikely, that is.

anastmag commented 8 years ago

Thanks for the reply. You were pretty much informative.

lurch commented 8 years ago

Why have you decided to implement your own custom fuse bindings and not relied to pyfuse ?

A lot of the code in pyfilesystem is getting quite old now, so the original reasons some of the features were implemented the way they were, may be lost in the mists of time?

@willmcgugan and @rfk wrote a lot of the original code... so maybe they might have some helpful comments... ;-)

arekbulski commented 8 years ago

The code was imported. See the docstring https://github.com/PyFilesystem/pyfilesystem/blob/master/fs/expose/fuse/__init__.py

JokerQyou commented 8 years ago

Fuse4x is dead as far as I know. Osxfuse is the de facto FUSE framework for OS X now, and pyfilesystem does not support it currently. I think #170 and #151 might be useful references for OS X platform if someone is going to refactor the FUSE module.