X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3134405ebc155a8a51738b7c6d0d4be348c65087..bef00883acf5a11705e0c2f597a4af67a9ba71ce:/services/fuse/arvados_fuse/fusefile.py diff --git a/services/fuse/arvados_fuse/fusefile.py b/services/fuse/arvados_fuse/fusefile.py index 45d3db16fe..9279f7d99d 100644 --- a/services/fuse/arvados_fuse/fusefile.py +++ b/services/fuse/arvados_fuse/fusefile.py @@ -80,9 +80,17 @@ class FuseArvadosFile(File): if self.writable(): self.arvfile.parent.root_collection().save() + def clear(self): + if self.parent_inode is None: + self.arvfile.fuse_entry = None + self.arvfile = None + class StringFile(File): """Wrap a simple string as a file""" + + __slots__ = ("contents",) + def __init__(self, parent_inode, contents, _mtime): super(StringFile, self).__init__(parent_inode, _mtime) self.contents = contents @@ -97,6 +105,8 @@ class StringFile(File): class ObjectFile(StringFile): """Wrap a dict as a serialized json object.""" + __slots__ = ("object_uuid",) + def __init__(self, parent_inode, obj): super(ObjectFile, self).__init__(parent_inode, "", 0) self.object_uuid = obj['uuid'] @@ -125,6 +135,9 @@ class FuncToJSONFile(StringFile): The function is called at the time the file is read. The result is cached until invalidate() is called. """ + + __slots__ = ("func",) + def __init__(self, parent_inode, func): super(FuncToJSONFile, self).__init__(parent_inode, "", 0) self.func = func