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