|
|
|
import copy |
|
|
|
from ..utils import Registry |
|
|
|
RUNNERS = Registry('runner') |
|
RUNNER_BUILDERS = Registry('runner builder') |
|
|
|
|
|
def build_runner_constructor(cfg): |
|
return RUNNER_BUILDERS.build(cfg) |
|
|
|
|
|
def build_runner(cfg, default_args=None): |
|
runner_cfg = copy.deepcopy(cfg) |
|
constructor_type = runner_cfg.pop('constructor', |
|
'DefaultRunnerConstructor') |
|
runner_constructor = build_runner_constructor( |
|
dict( |
|
type=constructor_type, |
|
runner_cfg=runner_cfg, |
|
default_args=default_args)) |
|
runner = runner_constructor() |
|
return runner |
|
|