def run(self): saved_dir = os.path.realpath(os.curdir) if self.args.cwd: os.chdir(self.args.cwd) # Dirty hack so the for loop below can at least enter once if self.args.all_pipelines: self.args.targets = [None] elif not self.args.targets: self.args.targets = self.default_targets ret = 0 for target in self.args.targets: try: stages = self.repo.reproduce( target, single_item=self.args.single_item, force=self.args.force, dry=self.args.dry, interactive=self.args.interactive, pipeline=self.args.pipeline, all_pipelines=self.args.all_pipelines, run_cache=not self.args.no_run_cache, no_commit=self.args.no_commit, downstream=self.args.downstream, recursive=self.args.recursive, force_downstream=self.args.force_downstream, experiment=self.args.experiment, queue=self.args.queue, run_all=self.args.run_all, jobs=self.args.jobs, params=self.args.params, ) if len(stages) == 0: logger.info(CmdDataStatus.UP_TO_DATE_MSG) if self.args.metrics: metrics = self.repo.metrics.show() show_metrics(metrics) except DvcException: logger.exception("") ret = 1 break os.chdir(saved_dir) return ret
def run(self): recursive = not self.args.single_item saved_dir = os.path.realpath(os.curdir) if self.args.cwd: os.chdir(self.args.cwd) # Dirty hack so the for loop below can at least enter once if self.args.all_pipelines: self.args.targets = [None] elif not self.args.targets: self.args.targets = self.default_targets ret = 0 for target in self.args.targets: try: stages = self.repo.reproduce( target, recursive=recursive, force=self.args.force, dry=self.args.dry, interactive=self.args.interactive, pipeline=self.args.pipeline, all_pipelines=self.args.all_pipelines, ignore_build_cache=self.args.ignore_build_cache, no_commit=self.args.no_commit, ) if len(stages) == 0: logger.info(CmdDataStatus.UP_TO_DATE_MSG) if self.args.metrics: metrics = self.repo.metrics.show() show_metrics(metrics) except DvcException: logger.exception("") ret = 1 break os.chdir(saved_dir) return ret