提交 4599b25b authored 作者: delallea's avatar delallea

Merge pull request #91 from nouiz/opt_print_summary

Print the name of the optimizer when we have it.
...@@ -85,8 +85,10 @@ class Optimizer(object): ...@@ -85,8 +85,10 @@ class Optimizer(object):
""" """
pass pass
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0, depth=-1):
print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self)) name = getattr(self, 'name', None)
print >> stream, "%s%s %s id=%i" %(' '*level, self.__class__.__name__,
name, id(self))
class FromFunctionOptimizer(Optimizer): class FromFunctionOptimizer(Optimizer):
"""WRITEME""" """WRITEME"""
...@@ -97,7 +99,7 @@ class FromFunctionOptimizer(Optimizer): ...@@ -97,7 +99,7 @@ class FromFunctionOptimizer(Optimizer):
#env.extend(toolbox.ReplaceValidate()) #env.extend(toolbox.ReplaceValidate())
pass pass
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0, depth=-1):
print >> stream, "%s%s id=%i" %(' '*level, print >> stream, "%s%s id=%i" %(' '*level,
str(self.apply), str(self.apply),
id(self)) id(self))
...@@ -190,10 +192,14 @@ class SeqOptimizer(Optimizer, list): ...@@ -190,10 +192,14 @@ class SeqOptimizer(Optimizer, list):
def __repr__(self): def __repr__(self):
return list.__repr__(self) return list.__repr__(self)
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0, depth=-1):
print >> stream, "%s%s (%i)" %(' '*level, self.__class__.__name__, id(self)) name = getattr(self, 'name', None)
print >> stream, "%s%s %s id=%i" %(' '*level, self.__class__.__name__, name, id(self))
# This way, -1 will do all depth
if depth != 0:
depth -= 1
for opt in self: for opt in self:
opt.print_summary(stream, level=level+2) opt.print_summary(stream, level=level+2, depth=depth)
...@@ -430,7 +436,7 @@ class LocalOptimizer(object): ...@@ -430,7 +436,7 @@ class LocalOptimizer(object):
#env.extend(toolbox.ReplaceValidate()) #env.extend(toolbox.ReplaceValidate())
pass pass
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0, depth=-1):
print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self)) print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self))
class FromFunctionLocalOptimizer(LocalOptimizer): class FromFunctionLocalOptimizer(LocalOptimizer):
...@@ -442,7 +448,7 @@ class FromFunctionLocalOptimizer(LocalOptimizer): ...@@ -442,7 +448,7 @@ class FromFunctionLocalOptimizer(LocalOptimizer):
return self._tracks return self._tracks
def __str__(self): def __str__(self):
return getattr(self, '__name__', '<FromFunctionLocalOptimizer instance>') return getattr(self, '__name__', '<FromFunctionLocalOptimizer instance>')
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0, depth=-1):
print >> stream, "%s%s id=%i" %(' '*level, print >> stream, "%s%s id=%i" %(' '*level,
str(self.transform), str(self.transform),
id(self)) id(self))
...@@ -473,10 +479,12 @@ class LocalOptGroup(LocalOptimizer): ...@@ -473,10 +479,12 @@ class LocalOptGroup(LocalOptimizer):
if repl: if repl:
return repl return repl
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0, depth=-1):
print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self)) print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self))
if depth != 0:
depth -= 1
for lopt in self.opts: for lopt in self.opts:
lopt.print_summary(stream, level=level+2) lopt.print_summary(stream, level=level+2, depth=depth)
class _LocalOpKeyOptGroup(LocalOptGroup): class _LocalOpKeyOptGroup(LocalOptGroup):
...@@ -556,7 +564,7 @@ class OpRemove(LocalOptimizer): ...@@ -556,7 +564,7 @@ class OpRemove(LocalOptimizer):
def __str__(self): def __str__(self):
return "%s(x) -> x" % (self.op) return "%s(x) -> x" % (self.op)
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0, depth=-1):
print >> stream, "%s%s(%s) id=%i" %(' '*level, print >> stream, "%s%s(%s) id=%i" %(' '*level,
self.__class__.__name__, self.__class__.__name__,
str(self.op), str(self.op),
...@@ -751,9 +759,11 @@ class PatternSub(LocalOptimizer): ...@@ -751,9 +759,11 @@ class PatternSub(LocalOptimizer):
def __repr__(self): def __repr__(self):
return str(self) return str(self)
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0, depth=-1):
print >> stream, "%s%s(%s, %s) id=%i" %(' '*level, name = getattr(self, '__name__', getattr(self, 'name', None))
print >> stream, "%s%s %s(%s, %s) id=%i" %(' '*level,
self.__class__.__name__, self.__class__.__name__,
name,
str(self.in_pattern), str(self.in_pattern),
str(self.out_pattern), str(self.out_pattern),
id(self)) id(self))
...@@ -920,9 +930,10 @@ class NavigatorOptimizer(Optimizer): ...@@ -920,9 +930,10 @@ class NavigatorOptimizer(Optimizer):
if self.local_opt: if self.local_opt:
self.local_opt.add_requirements(env) self.local_opt.add_requirements(env)
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0, depth=-1):
print >> stream, "%s%s (%i)" %(' '*level, self.__class__.__name__, id(self)) print >> stream, "%s%s (%i)" %(' '*level, self.__class__.__name__, id(self))
self.local_opt.print_summary(stream, level=level+2) if depth != 0:
self.local_opt.print_summary(stream, level=level+2, depth=depth-1)
class TopoOptimizer(NavigatorOptimizer): class TopoOptimizer(NavigatorOptimizer):
...@@ -1113,10 +1124,12 @@ class EquilibriumOptimizer(NavigatorOptimizer): ...@@ -1113,10 +1124,12 @@ class EquilibriumOptimizer(NavigatorOptimizer):
if max_use_abort: if max_use_abort:
_logger.error("EquilibriumOptimizer max'ed out by "+opt_name) _logger.error("EquilibriumOptimizer max'ed out by "+opt_name)
def print_summary(self, stream=sys.stdout, level=0): def print_summary(self, stream=sys.stdout, level=0, depth=-1):
print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self)) name = getattr(self, 'name', None)
print >> stream, "%s%s %s id=%i" %(' '*level, self.__class__.__name__, name, id(self))
if depth != 0:
for lopt in self.local_optimizers: for lopt in self.local_optimizers:
lopt.print_summary(stream, level=level+2) lopt.print_summary(stream, level=level+2, depth=depth-1)
################# #################
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论