repro: fix msgs

Fixes #1008

Signed-off-by: Ruslan Kuprieiev <[email protected]>
This commit is contained in:
Ruslan Kuprieiev
2018-08-14 02:02:07 +03:00
parent 6e95508e9e
commit c635adbfc7
3 changed files with 17 additions and 26 deletions
+1 -6
View File
@@ -22,16 +22,11 @@ class CmdRepro(CmdBase):
interactive=self.args.interactive)
if self.args.metrics:
self.project.metrics_show()
except ReproductionError as ex:
except DvcException as ex:
msg = 'Failed to reproduce \'{}\''.format(target)
self.project.logger.error(msg, ex)
ret = 1
break
except Exception as ex:
msg = 'Failed to reproduce \'{}\' - unexpected error'
self.project.logger.error(msg.format(target), ex)
ret = 1
break
os.chdir(saved_dir)
return ret
+2 -20
View File
@@ -9,15 +9,6 @@ class InitError(DvcException):
super(InitError, self).__init__(msg)
class NotDvcFileError(DvcException):
def __init__(self, path):
msg = '\'{}\' is not a DVC file'.format(path)
p = path + Stage.STAGE_FILE_SUFFIX
if Stage.is_stage_file(p):
msg += '. Maybe you meant \'{}\'?'.format(p)
super(NotDvcFileError, self).__init__(msg)
class ReproductionError(DvcException):
def __init__(self, dvc_file_name, ex):
self.path = dvc_file_name
@@ -153,9 +144,6 @@ class Project(object):
return stage
def remove(self, target, outs_only=False):
if not Stage.is_stage_file(target):
raise NotDvcFileError(target)
stage = Stage.load(self, target)
if outs_only:
stage.remove_outs()
@@ -165,9 +153,6 @@ class Project(object):
return stage
def lock_stage(self, target, unlock=False):
if not Stage.is_stage_file(target):
raise NotDvcFileError(target)
stage = Stage.load(self, target)
stage.locked = False if unlock else True
stage.dump()
@@ -277,11 +262,10 @@ class Project(object):
interactive=False):
import networkx as nx
stage = Stage.load(self, target)
G = self.graph()[1]
stages = nx.get_node_attributes(G, 'stage')
node = os.path.relpath(os.path.abspath(target), self.root_dir)
if node not in stages:
raise NotDvcFileError(target)
node = os.path.relpath(stage.path, self.root_dir)
if not interactive:
config = self.config
@@ -324,8 +308,6 @@ class Project(object):
all_stages = self.active_stages()
if target:
if not Stage.is_stage_file(target):
raise NotDvcFileError(target)
stages = [Stage.load(self, target)]
else:
stages = all_stages
+14
View File
@@ -263,8 +263,22 @@ class Stage(object):
return stage
@staticmethod
def _check_dvc_file(fname):
sname = fname + Stage.STAGE_FILE_SUFFIX
if Stage.is_stage_file(sname):
self.info("Do you mean '{}'?".format(sname))
@staticmethod
def load(project, fname):
if not os.path.exists(fname):
Stage._check_dvc_file(fname)
raise DvcException("'{}' does not exist.".format(fname))
if not self.is_stage_file(fname):
Stage._check_dvc_file(fname)
raise DvcException("'{}' is not a DVC file".format(fname))
with open(fname, 'r') as fd:
return Stage.loadd(project, yaml.safe_load(fd), fname)