def run(args, setup=None): if not setup: setup = import_module(args.setup) runtime = MLPalRuntime() runtime.data_source = setup.DataSource(args) runtime.spec = setup.LearningSpec() runtime.config = args history = History(id=args.history_id) runtime.info = history.new() runtime.info['config'] = runtime.config.__repr__() runtime.info['started_at'] = str(datetime.now()) task = args.task task_function = getattr(sys.modules[__name__], 'run_%s' % task) task_function(runtime) runtime.info['finished_at'] = str(datetime.now()) history.append(runtime.info)