fs.proxy
Requirements
pyfilesystem2 | |||
six | |||
psutil |
Installation
Install directly from PyPI, using pip
pip install fs.proxy
Usage
This module revolves around the notion of proxy filesystems, akin to wrapper
filesystems from the core library, but using a proxy in combination with the
delegate filesystem used by WrapFS
. They also make it easier to create generic
wrappers, as fs.proxy.base.Proxy
subclasses will use the fs.base.FS
method
implementation, while actually deriving from WrapFS
!
This extension includes a base fs.proxy.base.Proxy
class, that requires only the
essential filesystem methods
to be implemented.
The fs.proxy.writer
package also declares two classes that can be used to make
any read-only filesystem writeable, using a secondary writeable filesystem:
fs.proxy.writer.ProxyWriter
and fs.proxy.writer.SwapWriter
. ProxyWriter
will always write modifications to the secondary filesystem (often a MemoryFS
or
a TempFS
), while SwapWriter
will use a third backup filesystem in case
the memory footprint of the proxy filesystem becomes too large (swapping from a
MemoryFS
to an OSFS
, etc.). For instance, let's pretend we can write to
the root:
>>> import fs.proxy.writer
>>> read_only_fs = fs.open_fs(u'/') # this is not actually read-only ;)
>>> writeable_fs = fs.proxy.writer.ProxyWriter(read_only_fs)
>>> writeable_fs.setbytes(u'/root.txt', b'I am writing in root !')
>>> writeable_fs.exists(u'/root.txt')
True
>>> read_only_fs.exists(u'/root.txt')
False
See also
- fs, the core pyfilesystem2 library
- fs.archive, enhanced archive filesystems for pyfilesystem2
- fs.sshfs, a SFTP/SSH implementation for pyfilesystem2 using paramiko
- fs.smbfs, Pyfilesystem2 over SMB using pysmb