@_pathdec<EOL><INDENT>def read(self, tid, length, offset, fh):<DEDENT>
try:<EOL><INDENT>return self.fds[fh].read(offset, length, fh)<EOL><DEDENT>except AttributeError: <EOL><INDENT>if tid[<NUM_LIT:1>] not in ("<STR_LIT>", "<STR_LIT>"):<EOL><INDENT>raise FuseOSError(errno.EINVAL)<EOL><DEDENT>return self.__sh_script[offset:offset+length]<EOL><DEDENT>except KeyError: <EOL><INDENT>raise FuseOSError(errno.EBADF)<EOL><DEDENT>except ConnectionError:<EOL><INDENT>raise FuseOSError(errno.ESTALE)<EOL><DEDENT>
Read from a file. Data is obtained from ``YTStor`` object (which is kept under `fh` descriptor) using its
``read`` method.

Parameters
----------
tid : str
    Path to file. Original `path` argument is converted to tuple identifier by ``_pathdec`` decorator.
length : int
    Length of data to read.
offset : int
    Posision from which reading will start.
fh : int
    File descriptor.

Returns
-------
bytes
    Movie data.