Merge pull request #665 from efiop/master

repro: print user-friendly error
This commit is contained in:
Ruslan Kuprieiev
2018-04-18 09:57:23 +03:00
committed by GitHub
+14 -1
View File
@@ -1,5 +1,8 @@
import os
from dvc.command.common.base import CmdBase
from dvc.project import ReproductionError
from dvc.project import ReproductionError, StageNotFoundError
from dvc.stage import Stage
class CmdRepro(CmdBase):
@@ -14,6 +17,16 @@ class CmdRepro(CmdBase):
msg = 'Failed to reproduce \'{}\''.format(target)
self.project.logger.error(msg, ex)
return 1
except StageNotFoundError as ex:
if os.path.exists(target):
msg = '\'{}\' is not a dvc file.'.format(target)
dvcfile = target + Stage.STAGE_FILE_SUFFIX
if os.path.exists(target) and os.path.isfile(dvcfile):
msg += ' Maybe you meant \'{}\'?'.format(dvcfile)
else:
msg = '\'{}\' does not exist.'.format(target)
self.project.logger.error(msg)
return 1
except Exception as ex:
msg = 'Failed to reproduce \'{}\' - unexpected error'.format(target)
self.project.logger.error(msg, ex)