在 Rich Tree 中为文本着色
Colorizing Text within Rich Tree
我在 Rich 中建造了一些树。但是,我正在输出 obj repr() 以及 Python 对象详细信息,如果我将数据作为字符串传递到树分支,Rich 似乎只想显示这些详细信息。即
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
但不确定在这里使用什么控制台方法。任何帮助都会很棒。谢谢
您可以通过 Rich highlighter 突出显示文本。 ReprHighlighter 将突出显示大多数对象生成的字符串。像这样导入:
from rich.highlighter import ReprHighlighter
highlighter = ReprHighlighter()
现在您可以通过以下方式突出显示字符串:
tree = Tree(highlighter(str(root_obj)))
或者,您可以通过 rich.pretty.Pretty
class:
使用 Rich 的漂亮打印功能
from rich.pretty import Pretty
tree = Tree(Pretty(rich_obj))
我在 Rich 中建造了一些树。但是,我正在输出 obj repr() 以及 Python 对象详细信息,如果我将数据作为字符串传递到树分支,Rich 似乎只想显示这些详细信息。即
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
但不确定在这里使用什么控制台方法。任何帮助都会很棒。谢谢
您可以通过 Rich highlighter 突出显示文本。 ReprHighlighter 将突出显示大多数对象生成的字符串。像这样导入:
from rich.highlighter import ReprHighlighter
highlighter = ReprHighlighter()
现在您可以通过以下方式突出显示字符串:
tree = Tree(highlighter(str(root_obj)))
或者,您可以通过 rich.pretty.Pretty
class:
from rich.pretty import Pretty
tree = Tree(Pretty(rich_obj))