Simple Python VFS module
Project description
PyVFS is a simple pure Python VFS library. It consists of several layers, allowing to use different low-level protocol implementations. Now you can choose between 9p (9p2000.u) and FUSE (you should have python-py9p or python-fuse installed).
The library has several options to control access to the filesystem, from FUSE restrictions to PKI client authentication in 9p2000 protocol. You can mount your FS with TCP/IP or UNIX sockets, or simply browse it with 9p clients without mounting.
The simplest example. Environment variables:
export PYVFS_PROTO=9p export PYVFS_ADDRESS=/tmp/socket
Your script:
# import server from pyvfs.utils import Server # create it srv = Server() # start it in foreground srv.run()
Client side, 9p + UNIX socket:
$ sudo mount -t 9p -o trans=unix /tmp/socket /mnt
ObjectFS
ObjectFS (pyvfs.objectfs) is a library that allows you to export your Python objects on a dynamic filesystem. ObjectFS integration is extremely simple and engages only the decorator import and usage. The developer should not care about almost any of fs-related issues. Objects of the decorated classes will automatically appear as file trees on a dynamic filesystem with read/write access.
Example. Environment variables:
export PYVFS_PROTO=fuse export PYVFS_MOUNTPOINT=~/mnt
Your script:
# simply import the library in your code from pyvfs.objectfs import export # decorate a class @export class MyClass(object): some code
Client side (already mounted!):
# ls -l ~/mnt
PyVFS
Also you can write your own applications with PyVFS. E.g., one can utilize file I/O as an RPC interface, or use a dynamic filesystem for runtime service configuration.
More details in the documentation and examples.
Links
Changes
0.2.9 – Mesoarchean
unicode literals fixed
0.2.8 – Paleoarchean
directory listing fixes
0.2.7 – Eoarchaean
support authentication options
support setuid, setgid, sticky bits
0.2.6 – Hadean
initial pypi release
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.