提交 1b630dc6 authored 作者: Brandon T. Willard's avatar Brandon T. Willard 提交者: Brandon T. Willard

Implement __repr__ for FromFunctionLocalOptimizer

上级 ba4868a3
......@@ -1200,7 +1200,10 @@ class FromFunctionLocalOptimizer(LocalOptimizer):
return self._tracks
def __str__(self):
return getattr(self, "__name__", "<FromFunctionLocalOptimizer instance>")
return getattr(self, "__name__", repr(self))
def __repr__(self):
return f"FromFunctionLocalOptimizer({repr(self.fn)}, {repr(self._tracks)}, {repr(self.requirements)})"
def print_summary(self, stream=sys.stdout, level=0, depth=-1):
print(f"{' ' * level}{self.transform} id={id(self)}", file=stream)
......
......@@ -25,6 +25,7 @@ from aesara.tensor.subtensor import AdvancedSubtensor
from aesara.tensor.type import matrix, values_eq_approx_always_true
from aesara.tensor.type_other import MakeSlice, SliceConstant, slicetype
from tests.graph.utils import (
MyOp,
MyType,
MyVariable,
op1,
......@@ -691,3 +692,15 @@ class TestLocalOptGroup:
"optimizer: rewrite local_opt_2 replaces Op2(y, y) with [Op2.0]"
in capres.out
)
def test_local_optimizer_str():
@local_optimizer([op1, MyOp])
def local_opt_1(fgraph, node):
pass
assert str(local_opt_1) == "local_opt_1"
res = repr(local_opt_1)
assert res.startswith("FromFunctionLocalOptimizer(")
assert "Op1" in res
assert "local_opt_1" in res
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论