def run_run(self, run, conf=None, run_conf=None, use_thread=False, catch_exception=True):
if isinstance(conf, str) and os.path.isfile(conf):<EOL><INDENT>logging.info('<STR_LIT>', os.path.abspath(conf))<EOL><DEDENT>elif conf is not None:<EOL><INDENT>logging.info('<STR_LIT>')<EOL><DEDENT>conf = self.open_conf(conf)<EOL>self._conf.update(conf)<EOL>if isclass(run):<EOL><INDENT>run = run(conf=self._conf)<EOL><DEDENT>local_run_conf = {}<EOL>if '<STR_LIT>' in self._conf:<EOL><INDENT>logging.info('<STR_LIT>')<EOL>local_run_conf.update(self._conf['<STR_LIT>'])<EOL><DEDENT>if run.__class__.__name__ in self._conf:<EOL><INDENT>logging.info('<STR_LIT>' % (run.__class__.__name__,))<EOL>local_run_conf.update(self._conf[run.__class__.__name__])<EOL><DEDENT>if isinstance(run_conf, str) and os.path.isfile(run_conf):<EOL><INDENT>logging.info('<STR_LIT>', os.path.abspath(run_conf))<EOL><DEDENT>elif run_conf is not None:<EOL><INDENT>logging.info('<STR_LIT>')<EOL><DEDENT>run_conf = self.open_conf(run_conf)<EOL>if run.__class__.__name__ in run_conf:<EOL><INDENT>run_conf = run_conf[run.__class__.__name__]<EOL><DEDENT>local_run_conf.update(run_conf)<EOL>if use_thread:<EOL><INDENT>self.current_run = run<EOL>@thunkify(thread_name='<STR_LIT>', daemon=True, default_func=self.current_run.get_run_status)<EOL>def run_run_in_thread():<EOL><INDENT>return run.run(run_conf=local_run_conf)<EOL><DEDENT>signal.signal(signal.SIGINT, self._signal_handler)<EOL>logging.info('<STR_LIT>')<EOL>return run_run_in_thread()<EOL><DEDENT>else:<EOL><INDENT>self.current_run = run<EOL>status = run.run(run_conf=local_run_conf)<EOL>if not catch_exception and status != run_status.finished:<EOL><INDENT>raise RuntimeError('<STR_LIT>')<EOL><DEDENT>return status<EOL><DEDENT>
Runs a run in another thread. Non-blocking.

        Parameters
        ----------
        run : class, object
            Run class or object.
        run_conf : str, dict, file
            Specific configuration for the run.
        use_thread : bool
            If True, run run in thread and returns blocking function.

        Returns
        -------
        If use_thread is True, returns function, which blocks until thread terminates, and which itself returns run status.
        If use_thread is False, returns run status.