def launch(self, component_name_in):
        """
            Launches a surreal experiment

        Args:
            component_name: Allowed components:
                                agent-{*},
                                agents-{*},
                                eval-{*},
                                evals-{*},
                                replay,
                                learner,
                                ps,
                                tensorboard,
        """
        if '-' in component_name_in:
            component_name, component_id = component_name_in.split('-')
            component_id = int(component_id)
        else:
            component_name = component_name_in
            component_id = None

        if component_name == 'agent':
            self.run_agent(agent_id=component_id)
        elif component_name == 'agents':
            agent_ids = self.get_agent_batch(component_id)
            self.run_agent_batch(agent_ids)
        elif component_name == 'eval':
            self.run_eval(eval_id=component_id,
                          mode=self.eval_mode,
                          render=self.render)
        elif component_name == 'evals':
            eval_ids = self.get_eval_batch(component_id)
            self.run_eval_batch(eval_ids, self.eval_mode, self.render)
        elif component_name == 'learner':
            self.run_learner()
        elif component_name == 'ps':
            self.run_ps()
        elif component_name == 'replay':
            self.run_replay()
        elif component_name == 'replay_loadbalancer':
            self.run_replay_loadbalancer()
        elif component_name == 'replay_worker':
            self.run_replay_worker(replay_id=component_id)
        elif component_name == 'tensorboard':
            self.run_tensorboard()
        elif component_name == 'tensorplex':
            self.run_tensorplex()
        elif component_name == 'loggerplex':
            self.run_loggerplex()
        else:
            raise ValueError('Unexpected component {}'.format(component_name))

            Launches a surreal experiment

        Args:
            component_name: Allowed components:
                                agent-{*},
                                agents-{*},
                                eval-{*},
                                evals-{*},
                                replay,
                                learner,
                                ps,
                                tensorboard,
        
surreal/launch/launcher.py