提交 cfd11140 authored 作者: Pascal Lamblin's avatar Pascal Lamblin

Merge pull request #3472 from nouiz/err_msg

Better error message
...@@ -1634,13 +1634,14 @@ class NavigatorOptimizer(Optimizer): ...@@ -1634,13 +1634,14 @@ class NavigatorOptimizer(Optimizer):
""" """
@staticmethod @staticmethod
def warn(exc, nav, repl_pairs, local_opt): def warn(exc, nav, repl_pairs, local_opt, node):
""" """
Failure_callback for NavigatorOptimizer: print traceback. Failure_callback for NavigatorOptimizer: print traceback.
""" """
if config.on_opt_error != 'ignore': if config.on_opt_error != 'ignore':
_logger.error("Optimization failure due to: %s" % str(local_opt)) _logger.error("Optimization failure due to: %s" % str(local_opt))
_logger.error("node: %s" % str(node))
_logger.error("TRACEBACK:") _logger.error("TRACEBACK:")
_logger.error(traceback.format_exc()) _logger.error(traceback.format_exc())
if config.on_opt_error == 'pdb': if config.on_opt_error == 'pdb':
...@@ -1651,19 +1652,21 @@ class NavigatorOptimizer(Optimizer): ...@@ -1651,19 +1652,21 @@ class NavigatorOptimizer(Optimizer):
raise exc raise exc
@staticmethod @staticmethod
def warn_inplace(exc, nav, repl_pairs, local_opt): def warn_inplace(exc, nav, repl_pairs, local_opt, node):
""" """
Failure_callback for NavigatorOptimizer. Failure_callback for NavigatorOptimizer.
Ignore InconsistencyErrors, print traceback. Ignore InconsistencyErrors, print traceback.
If error during replacement repl_pairs is set. Otherwise None.
""" """
if isinstance(exc, InconsistencyError): if isinstance(exc, InconsistencyError):
return return
return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt) return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node)
@staticmethod @staticmethod
def warn_ignore(exc, nav, repl_pairs, local_opt): def warn_ignore(exc, nav, repl_pairs, local_opt, node):
""" """
Failure_callback for NavigatorOptimizer: ignore all errors. Failure_callback for NavigatorOptimizer: ignore all errors.
...@@ -1764,7 +1767,7 @@ class NavigatorOptimizer(Optimizer): ...@@ -1764,7 +1767,7 @@ class NavigatorOptimizer(Optimizer):
if self.failure_callback is not None: if self.failure_callback is not None:
self.failure_callback(e, self, self.failure_callback(e, self,
[(x, None) for x in node.outputs], [(x, None) for x in node.outputs],
lopt) lopt, node)
return False return False
else: else:
raise raise
...@@ -1802,7 +1805,7 @@ class NavigatorOptimizer(Optimizer): ...@@ -1802,7 +1805,7 @@ class NavigatorOptimizer(Optimizer):
# This is not supposed to happen. The default failure_callback # This is not supposed to happen. The default failure_callback
# will print a traceback as a warning. # will print a traceback as a warning.
if self.failure_callback is not None: if self.failure_callback is not None:
self.failure_callback(e, self, repl_pairs, lopt) self.failure_callback(e, self, repl_pairs, lopt, node)
return False return False
else: else:
raise raise
......
...@@ -113,7 +113,7 @@ class FailureWatch: ...@@ -113,7 +113,7 @@ class FailureWatch:
def __init__(self): def __init__(self):
self.failures = 0 self.failures = 0
def __call__(self, exc, nav, pairs, lopt): def __call__(self, exc, nav, pairs, lopt, node):
assert isinstance(exc, InconsistencyError) assert isinstance(exc, InconsistencyError)
self.failures += 1 self.failures += 1
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论