swh.fuse.fuse module#

class swh.fuse.fuse.Fuse(cache: FuseCache, conf: Dict[str, Any], graph_backend: GraphBackend, obj_backend: ObjBackend)[source]#

Bases: Operations

Software Heritage Filesystem in Userspace (FUSE).

Locally mount parts of the archive and navigate it as a virtual file system.

This class ties together pyfuse3 and the configured cache and back-end.

shutdown() None[source]#
inode2entry(inode: InodeT) FuseEntry[source]#

Return the entry matching a given inode

async get_metadata(swhid: CoreSWHID) Any[source]#

Retrieve metadata for a given SWHID using Software Heritage API

async get_blob(swhid: CoreSWHID) bytes[source]#

Retrieve the blob bytes for a given content SWHID using Software Heritage API

async get_history(swhid: CoreSWHID) List[CoreSWHID][source]#

Retrieve a revision’s history using Software Heritage Graph API

async get_visits(url_encoded: str) List[Dict[str, Any]][source]#

Retrieve origin visits given an encoded-URL using Software Heritage API

async get_attrs(entry: FuseEntry) EntryAttributes[source]#

Return entry attributes

async getattr(inode: InodeT, _ctx: RequestContext) EntryAttributes[source]#

Get attributes for a given inode

async opendir(inode: InodeT, _ctx: RequestContext) FileHandleT[source]#

Open a directory referred by a given inode

async readdir(fh: FileHandleT, offset: int, token: ReaddirToken) None[source]#

Read entries in an open directory

async open(inode: InodeT, _flags: int, _ctx: RequestContext) FileInfo[source]#

Open an inode and return a unique file handle

async read(fh: FileHandleT, offset: int, length: int) bytes[source]#

Read length bytes from file handle fh at position offset

async lookup(parent_inode: InodeT, name: FileNameT, _ctx: RequestContext) EntryAttributes[source]#

Look up a directory entry by name and get its attributes

Return target of symbolic link inode.

ctx will be a RequestContext instance.

Remove a file

swh.fuse.fuse.graph_backend_factory(conf: Dict[str, Any]) GraphBackend[source]#
swh.fuse.fuse.obj_backend_factory(conf: Dict[str, Any]) ObjBackend[source]#
async swh.fuse.fuse.main(swhids: List[CoreSWHID], root_path: Path, conf: Dict[str, Any]) None[source]#

swh-fuse CLI entry-point