swh.fuse.backends package#

Submodules#

Module contents#

FUSE backends#

These classes are abstraction layers to the archive’s graph and object storage.

class swh.fuse.backends.GraphBackend[source]#

Bases: ABC

Methods required by the FUSE logic to create its folders layout. Those methods must return dicts compliant with the Web API, to ease their use and caching in the swh.fuse.fuse.Fuse class. Fields listed in method specifications below are the minimal required fields. At worst, set them to None (because this is better supported by swh-web-client’s typify_json). Additional fields will be included in the various meta.json files proposed by this virtual file system.

abstract async get_metadata(swhid: CoreSWHID) Dict | List[source]#

Entries in the returned dict depend on the swhid type.

For cnt, return a dict containing at least 'length': [int]

For dir, return a list of entries like

{
    "dir_id": "dir's hash",
    "name": "dir item name",
    "type": "str=dir|file|rev",  # yes, `file`...
    "target": "target hash",
    "perms": "permissions [int]",
    # if target is a cnt:
    "length": "file size [int]",
}

For rev, return a dict containing at least directory (SWHID), parents (list of objects containing at list id (hash)), date (str, isoformat), committer_date (str, isoformat), id` (object’s hash).

For rel, return a dict containing at least target (SWHID), target_type, date (str, isoformat), id (object’s hash).

For snp, return a dict where each key is a branch name, each value is a dict containing at least target (hash), target_type (content, directory, revision, release, snapshot or alias).

abstract async get_history(swhid: CoreSWHID) List[Tuple[str, str]][source]#

Return a list of tuples (swhid, revision swhid)

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

Return a list of objects

Each object should contain fields date (ISO), origin (str), snapshot (SWHID’s hash as str)

class swh.fuse.backends.ObjBackend[source]#

Bases: ABC

Methods required by the FUSE logic to provide files’ contents.

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

Fetch the content of a cnt object.