def _getattr(self, info: Inode, ctx: pyfuse3.RequestContext) -> pyfuse3.EntryAttributes: if info.inode() == pyfuse3.ROOT_INODE: is_dir = True else: is_dir = info.is_dir() entry = pyfuse3.EntryAttributes() entry.st_ino = info.inode() entry.generation = 0 entry.entry_timeout = 300 entry.attr_timeout = 300 if is_dir: entry.st_mode = (stat.S_IFDIR | config.MODE_DIR) else: entry.st_mode = (stat.S_IFREG | config.MODE_FILE) entry.st_nlink = 1 entry.st_uid = config.MOUNT_UID entry.st_gid = config.MOUNT_GID entry.st_rdev = 0 entry.st_size = info.size() # entry.st_blksize = config.CHUNKSIZE if is_dir: entry.st_blksize = 1_000_000 else: entry.st_blksize = info.chunk_size() entry.st_blocks = 1 if is_dir else info.chunks_count() entry.st_atime_ns = 0 entry.st_mtime_ns = info.mtime() * 1e6 entry.st_ctime_ns = info.ctime() * 1e6 return entry