rich.text

class rich.text.Text(text='', style='', *, justify=None, overflow=None, no_wrap=None, end='\n', tab_size=None, spans=None)[source]

带有颜色/样式的文本。

参数
  • text (str, 可选) – 默认无样式文本。默认为 “”。

  • style (Union[str, Style], 可选) – 文本的基本样式。默认为 “”。

  • justify (str, 可选) – 对齐方式: “left”, “center”, “full”, “right”。默认为 None。

  • overflow (str, 可选) – 超出方法: “crop”, “fold”, “ellipsis”。默认为 None。

  • no_wrap (bool, 可选) – 禁用文本换行,或 None 使用默认值。默认为 None。

  • end (str, 可选) – 用于结束文本的字符。默认为 “\n”。

  • tab_size (int) – 每个制表符的空格数,或 None 使用 console.tab_size。默认为 None。

  • spans (List[Span], 可选) –

align(align, width, character=' ')[source]

将文本对齐到给定的宽度。

参数
  • align (AlignMethod) – “left”, “center” 或 “right” 之一。

  • width (int) – 期望宽度。

  • character (str, 可选) – 用来填充的字符。默认为 ” “。

返回类型

None

append(text, style=None)[source]

添加带可选样式的文本。

参数
  • text (Union[Text, str]) – 要追加的 str 或 Text。

  • style (str, 可选) – 样式名称。默认为 None。

返回值

返回 self 用于链式调用。

返回类型

Text

append_text(text)[source]

追加另一个 Text 实例。此方法比 Text.append 性能更高,但仅适用于 Text。

返回值

返回 self 用于链式调用。

返回类型

Text

参数

text (Text) –

append_tokens(tokens)[source]

追加 str 和样式的可迭代对象。样式可以是 Style 实例或 str 样式定义。

参数
返回值

返回 self 用于链式调用。

返回类型

Text

apply_meta(meta, start=0, end=None)[source]

将元数据应用于文本或文本的一部分。

参数
  • meta (Dict[str, Any]) – 元信息的字典。

  • start (int) – 起始偏移量(支持负索引)。默认为 0。

  • end (Optional[int], 可选) – 结束偏移量(支持负索引),或 None 表示文本末尾。默认为 None。

返回类型

None

classmethod assemble(*parts, style='', justify=None, overflow=None, no_wrap=None, end='\n', tab_size=8, meta=None)[source]

通过组合一系列字符串(带可选样式)来构造文本实例。位置参数应该是字符串或字符串 + 样式的元组。

参数
  • style (Union[str, Style], 可选) – 文本的基本样式。默认为 “”。

  • justify (str, 可选) – 对齐方式: “left”, “center”, “full”, “right”。默认为 None。

  • overflow (str, 可选) – 超出方法: “crop”, “fold”, “ellipsis”。默认为 None。

  • end (str, 可选) – 用于结束文本的字符。默认为 “\n”。

  • tab_size (int) – 每个制表符的空格数,或 None 使用 console.tab_size。默认为 None。

  • meta (Dict[str, Any], 可选) –

  • parts (Union[str, Text, Tuple[str, Union[str, Style]]]) –

  • no_wrap (Optional[bool]) –

返回值

一个新的文本实例。

返回类型

Text

blank_copy(plain='')[source]

返回一个新的 Text 实例,其中包含复制的元数据(但不包含字符串或跨度)。

参数

plain (str) –

返回类型

Text

property cell_len: int

获取渲染此文本所需的单元格数量。

copy()[source]

返回此实例的副本。

返回类型

Text

copy_styles(text)[source]

从另一个 Text 实例中复制样式。

参数

text (Text) – 要从中复制样式的 Text 实例,必须具有相同的长度。

返回类型

None

detect_indentation()[source]

自动检测代码缩进。

返回值

用于缩进代码的空格数。

返回类型

int

divide(offsets)[source]

将文本分成给定偏移量的若干行。

参数

offsets (Iterable[int]) – 用于划分文本的偏移量。

返回值

偏移量之间的新的 RichText 实例。

返回类型

Lines

expand_tabs(tab_size=None)[source]

将制表符转换为空格。

参数

tab_size (int, optional) – 制表符的大小。默认为 8。

返回类型

None

extend_style(spaces)[source]

将 Text 扩展给定数量的空格,其中空格具有与最后一个字符相同的样式。

参数

spaces (int) – 要添加到 Text 的空格数。

返回类型

None

fit(width)[source]

通过将文本切分成行,使文本适合给定的宽度。

参数

width (int) – 每行中的最大字符数。

返回值

行容器。

返回类型

Lines

classmethod from_ansi(text, *, style='', justify=None, overflow=None, no_wrap=None, end='\n', tab_size=8)[source]

从包含 ANSI 转义代码的字符串创建一个 Text 对象。

参数
  • text (str) – 包含转义代码的字符串。

  • style (Union[str, Style], 可选) – 文本的基本样式。默认为 “”。

  • justify (str, 可选) – 对齐方式: “left”, “center”, “full”, “right”。默认为 None。

  • overflow (str, 可选) – 超出方法: “crop”, “fold”, “ellipsis”。默认为 None。

  • no_wrap (bool, 可选) – 禁用文本换行,或 None 使用默认值。默认为 None。

  • end (str, 可选) – 用于结束文本的字符。默认为 “\n”。

  • tab_size (int) – 每个制表符的空格数,或 None 使用 console.tab_size。默认为 None。

返回类型

Text

classmethod from_markup(text, *, style='', emoji=True, emoji_variant=None, justify=None, overflow=None, end='\n')[source]

从标记创建 Text 实例。

参数
  • text (str) – 包含控制台标记的字符串。

  • emoji (bool, optional) – 还要渲染表情符号代码。默认为 True。

  • justify (str, 可选) – 对齐方式: “left”, “center”, “full”, “right”。默认为 None。

  • overflow (str, 可选) – 超出方法: “crop”, “fold”, “ellipsis”。默认为 None。

  • end (str, 可选) – 用于结束文本的字符。默认为 “\n”。

  • style (Union[str, Style]) –

  • emoji_variant (Optional[typing_extensions.Literal[emoji, text]]) –

返回值

一个渲染了标记的 Text 实例。

返回类型

Text

get_style_at_offset(console, offset)[source]

获取给定偏移量处字符的样式。

参数
  • console (~Console) – 将文本渲染到的控制台。

  • offset (int) – 文本中的偏移量(支持负索引)

返回值

一个 Style 实例。

返回类型

Style

highlight_regex(re_highlight, style=None, *, style_prefix='')[source]

使用正则表达式突出显示文本,其中组名被转换为样式。

参数
  • re_highlight (str) – 正则表达式。

  • style (Union[GetStyleCallable, StyleType]) – 可选样式,应用于整个匹配,或一个接受匹配文本并返回样式的可调用对象。默认为 None。

  • style_prefix (str, optional) – 可选前缀,添加到样式组名。

返回值

正则表达式匹配次数

返回类型

int

highlight_words(words, style, *, case_sensitive=True)[source]

用样式突出显示单词。

参数
  • words (Iterable[str]) – 要突出显示的单词。

  • style (Union[str, Style]) – 要应用的样式。

  • case_sensitive (bool, optional) – 启用区分大小写的匹配。默认为 True。

返回值

突出显示的单词数。

返回类型

int

join(lines)[source]

将文本与这个实例作为分隔符连接在一起。

参数

lines (Iterable[Text]) – 要连接的 Text 实例的可迭代对象。

返回值

一个新的文本实例,包含连接的文本。

返回类型

Text

property markup: str

获取渲染此 Text 的控制台标记。

返回值

一个可能创建标记标签的字符串。

返回类型

str

on(meta=None, **handlers)[source]

应用事件处理程序(由 Textual 项目使用)。

示例

>>> from rich.text import Text
>>> text = Text("hello world")
>>> text.on(click="view.toggle('world')")
参数
  • meta (Dict[str, Any]) – 元信息映射。

  • **handlers – 关键字参数以“@”为前缀以定义处理程序。

返回值

返回 Self,以便方法可以链接。

返回类型

Text

pad(count, character=' ')[source]

用给定数量的字符在左右两边填充。

参数
  • count (int) – 填充宽度。

  • character (str) –

返回类型

None

pad_left(count, character=' ')[source]

用给定字符填充左侧。

参数
  • count (int) – 填充字符数量。

  • character (str, 可选) – 用来填充的字符。默认为 ” “。

返回类型

None

pad_right(count, character=' ')[source]

用给定字符填充右侧。

参数
  • count (int) – 填充字符数量。

  • character (str, 可选) – 用来填充的字符。默认为 ” “。

返回类型

None

property plain: str

获取文本作为单个字符串。

remove_suffix(suffix)[source]

如果存在,删除后缀。

参数

suffix (str) – 要删除的后缀。

返回类型

None

render(console, end='')[source]

将文本渲染为 Segment。

参数
  • console (Console) – 控制台实例。

  • end (Optional[str], optional) – 可选的结束字符。

返回值

渲染结果,可以写入控制台。

返回类型

Iterable[Segment]

right_crop(amount=1)[source]

从文本末尾删除一定数量的字符。

参数

amount (int) –

返回类型

None

rstrip()[source]

从文本末尾删除空白。

返回类型

None

rstrip_end(size)[source]

删除文本末尾超出一定宽度空白。

参数

size (int) – 文本的所需大小。

返回类型

None

set_length(new_length)[source]

设置文本的新长度,如果需要,进行剪切或填充。

参数

new_length (int) –

返回类型

None

property spans: List[Span]

获取对内部跨度列表的引用。

split(separator='\n', *, include_separator=False, allow_blank=False)[source]

将富文本分成行,保留样式。

参数
  • separator (str, optional) – 要分割的字符串。默认为 “\n”。

  • include_separator (bool, optional) – 将分隔符包含在行中。默认为 False。

  • allow_blank (bool, optional) – 如果文本以分隔符结尾,则返回空行。默认为 False。

返回值

富文本列表,每行一个。

返回类型

List[RichText]

classmethod styled(text, style='', *, justify=None, overflow=None)[source]

使用预先应用的样式构造 Text 实例。以这种方式应用的样式不会在文本对齐时用于填充文本。

参数
  • text (str) – 包含控制台标记的字符串。

  • style (Union[str, Style]) – 要应用于文本的样式。默认为 “”。

  • justify (str, 可选) – 对齐方式: “left”, “center”, “full”, “right”。默认为 None。

  • overflow (str, 可选) – 超出方法: “crop”, “fold”, “ellipsis”。默认为 None。

返回值

一个文本实例,将样式应用于整个字符串。

返回类型

Text

stylize(style, start=0, end=None)[source]

将样式应用于文本或文本的一部分。

参数
  • style (Union[str, Style]) – 要应用的样式实例或样式定义。

  • start (int) – 起始偏移量(支持负索引)。默认为 0。

  • end (Optional[int], 可选) – 结束偏移量(支持负索引),或 None 表示文本末尾。默认为 None。

返回类型

None

stylize_before(style, start=0, end=None)[source]

将样式应用于文本或文本的一部分。样式将在已存在的其他样式之前应用。

参数
  • style (Union[str, Style]) – 要应用的样式实例或样式定义。

  • start (int) – 起始偏移量(支持负索引)。默认为 0。

  • end (Optional[int], 可选) – 结束偏移量(支持负索引),或 None 表示文本末尾。默认为 None。

返回类型

None

truncate(max_width, *, overflow=None, pad=False)[source]

如果文本长度超过给定宽度,则截断文本。

参数
  • max_width (int) – 文本中的最大字符数。

  • overflow (str, optional) – 溢出方法:“crop”,"fold" 或 “ellipsis”。默认为 None,使用 self.overflow。

  • pad (bool, optional) – 如果长度小于 max_width,则用空格填充。默认为 False。

返回类型

None

with_indent_guides(indent_size=None, *, character='│', style='dim green')[source]

在文本中添加缩进引导线。

参数
  • indent_size (Optional[int]) – 缩进大小,或 None 表示自动检测。默认为 None。

  • character (str, optional) – 用于缩进的字符。默认为“│”。

  • style (Union[Style, str], optional) – 缩进引导线的样式。

返回值

包含缩进引导线的新的文本。

返回类型

Text

wrap(console, width, *, justify=None, overflow=None, tab_size=8, no_wrap=None)[source]

对文本进行自动换行。

参数
  • console (Console) – 控制台实例。

  • width (int) – 每行字符数。

  • emoji (bool, optional) – 还要渲染表情符号代码。默认为 True。

  • justify (str, optional) – 对齐方式: “default”, “left”, “center”, “full”, “right”。默认为“default”。

  • overflow (str, optional) – 超出宽度处理方式: “crop”, “fold”, or “ellipsis”。默认为 None。

  • tab_size (int, optional) – 默认 Tab 键大小。默认为 8。

  • no_wrap (bool, optional) – 禁用换行。默认为 False。

返回值

行数。

返回类型

Lines