X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/dc16046dbfdca4a9c0d94971730d220b27e80620..40241ad60283c3f34fb1157d063d23252a317e31:/services/fuse/arvados_fuse/fusefile.py diff --git a/services/fuse/arvados_fuse/fusefile.py b/services/fuse/arvados_fuse/fusefile.py index 45d3db16fe..fce6c9b614 100644 --- a/services/fuse/arvados_fuse/fusefile.py +++ b/services/fuse/arvados_fuse/fusefile.py @@ -2,8 +2,6 @@ # # SPDX-License-Identifier: AGPL-3.0 -from __future__ import absolute_import -from builtins import bytes import json import llfuse import logging @@ -80,9 +78,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 +103,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 +133,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