def async_call(self, fn, *args, **kwargs):
        call_point = ''.join(format_stack(None, 5)[:-1])

        def handler():
            try:
                fn(*args, **kwargs)
            except Exception as err:
                msg = ("error caught while executing async callback:\n"
                       "{0!r}\n{1}\n \nthe call was requested at\n{2}"
                       .format(err, format_exc(5), call_point))
                self._err_cb(msg)
                raise
        self._session.threadsafe_call(handler)
control transition matrix
dataset/ETHPy150Open neovim/python-client/neovim/api/nvim.py/Nvim.async_call--crossover with--dataset/ETHPy150Open rlabbe/filterpy/filterpy/kalman/square_root.py/SquareRootKalmanFilter.B