def open(self, tid, flags):

        """
        File open. ``YTStor`` object associated with this file is initialised and written to ``self.fds``.

        Parameters
        ----------
        tid : str
            Path to file. Original `path` argument is converted to tuple identifier by ``_pathdec`` decorator.
        flags : int
            File open mode. Read-only access is allowed.

        Returns
        -------
        int
            New file descriptor
        """

        pt = self.PathType.get(tid)

        if pt is not self.PathType.file and pt is not self.PathType.ctrl:
            raise FuseOSError(errno.EINVAL)

        if pt is not self.PathType.ctrl and (flags & os.O_WRONLY or flags & os.O_RDWR):
            raise FuseOSError(errno.EPERM)

        if not self.__exists(tid):
            raise FuseOSError(errno.ENOENT)

        try:
            yts = self.searches[tid[0]][tid[1]]

        except KeyError:
            return self.fds.push(None) # for control file no association is needed.

        try:
            obI = yts.obtainInfo() # network may fail
        except ConnectionError:
            raise FuseOSError(errno.ENETDOWN)

        if obI:
            fh = self.fds.push(yts)

            try:
                yts.registerHandler(fh)
            except ConnectionError:
                raise FuseOSError(errno.ENETDOWN)

            return fh
        else:
            raise FuseOSError(errno.EINVAL)
File open. ``YTStor`` object associated with this file is initialised and written to ``self.fds``.

        Parameters
        ----------
        tid : str
            Path to file. Original `path` argument is converted to tuple identifier by ``_pathdec`` decorator.
        flags : int
            File open mode. Read-only access is allowed.

        Returns
        -------
        int
            New file descriptor