classRunner(BatchTask):_config_group_:str="/runner"_config_name_:str="__init__"calls:Optional[List[Union[str,Dict]]]=[]def__call__(self)->None:self.run()defrun(self):self.run_calls()defget_running_calls(self)->RunningCalls:returnget_running_configs(self.callsor[])defrun_call(self,rc:Running)->None:method_=getattr(self,rc.uses,None)ifmethod_andcallable(method_):method_(**rc.run_kwargs)defrun_calls(self):""" Run the calls specified in the runner """calls=self.get_running_calls()ifself.verbose:logger.info("Running %s call(s)",len(calls))# Run all calls in the runnerwithelapsed_timer(format_time=True)aselapsed:forrcincalls:logger.info("Running call [%s] with [%s]",rc.uses,rc.run_kwargs)self.run_call(rc)ifself.verbose:logger.info(" >> elapsed time for the runner with %s calls: %s",len(self.callsor[]),elapsed(),)
defrun_calls(self):""" Run the calls specified in the runner """calls=self.get_running_calls()ifself.verbose:logger.info("Running %s call(s)",len(calls))# Run all calls in the runnerwithelapsed_timer(format_time=True)aselapsed:forrcincalls:logger.info("Running call [%s] with [%s]",rc.uses,rc.run_kwargs)self.run_call(rc)ifself.verbose:logger.info(" >> elapsed time for the runner with %s calls: %s",len(self.callsor[]),elapsed(),)