0

我在 Rich 内建了一些树。但是,如果我将数据作为字符串传递给树分支,我会输出 obj repr() 以及 Rich 似乎只想显示的 Python 对象详细信息。IE

tree = Tree(str(type(root_obj)))

我的问题是,我可以在 Rich 中为我的树的输出着色吗?例如,如果我将类型传递给树而不将其转换为字符串,我会得到:

tree = Tree(type(root_obj))
...
rich.errors.NotRenderableError: Unable to render <class 'nornir.core.task.AggregatedResult'>; A str, Segment or object with __rich_console__ method is required

但不确定在这里使用什么控制台方法。任何帮助都会很棒。谢谢。

4

1 回答 1

1

您可以通过丰富的荧光笔突出显示文本。ReprHighlighter 将突出显示大多数对象产生的字符串。像这样导入它:

from rich.highlighter import ReprHighlighter
highlighter = ReprHighlighter()

现在您可以通过以下方式突出显示字符串:

tree = Tree(highlighter(str(root_obj)))

或者,您可以通过类使用 Rich 的漂亮打印功能rich.pretty.Pretty

from rich.pretty import Pretty

tree = Tree(Pretty(rich_obj))
于 2022-02-17T10:56:24.717 回答