rich.segment

class rich.segment.ControlType(value)[source]

不可打印的控制代码,通常转换为 ANSI 代码。

class rich.segment.Segment(text, style=None, control=None)[source]

带有关联样式的文本片段。片段由控制台渲染过程生成,最终被转换为字符串写入终端。

参数
  • text (str) – 文本片段。

  • style (Style, 可选) – 可选样式,应用于文本。

  • control (Tuple[ControlCode], 可选) – 可选的控制代码序列。

cell_length

此片段的单元格长度。

类型

int

classmethod adjust_line_length(line, length, style=None, pad=True)[source]

调整一行到给定宽度(根据需要裁剪或填充)。

参数
  • segments (Iterable[Segment]) – 单行中的片段列表。

  • length (int) – 行的所需宽度。

  • style (Style, 可选) – 如果使用填充,则填充的样式(结尾处空格)。默认为 None。

  • pad (bool, 可选) – 如果行短于 length,则用空格填充行。默认为 True。

  • line (List[Segment]) –

返回值

具有所需长度的片段行。

返回类型

List[Segment]

classmethod align_bottom(lines, width, height, style, new_lines=False)[source]

将渲染对齐到底部(根据需要在上面添加额外的行)。

参数

lines (List[List[Segment]]): 行列表。 width (int): 所需宽度。 height (int, 可选): 所需高度,或 None 表示不更改。 style (Style): 添加的任何填充的样式。默认为 None。 new_lines (bool, 可选): 填充的行应包括“

”。默认为 False。

返回值

List[List[Segment]]: 新的行列表。

参数
返回类型

List[List[Segment]]

classmethod align_middle(lines, width, height, style, new_lines=False)[source]

将行对齐到中间(根据需要在上面和下面添加额外的行)。

参数

lines (List[List[Segment]]): 行列表。 width (int): 所需宽度。 height (int, 可选): 所需高度,或 None 表示不更改。 style (Style): 添加的任何填充的样式。 new_lines (bool, 可选): 填充的行应包括“

”。默认为 False。

返回值

List[List[Segment]]: 新的行列表。

参数
返回类型

List[List[Segment]]

classmethod align_top(lines, width, height, style, new_lines=False)[source]

将行对齐到顶部(根据需要在底部添加额外的行)。

参数

lines (List[List[Segment]]): 行列表。 width (int): 所需宽度。 height (int, 可选): 所需高度,或 None 表示不更改。 style (Style): 添加的任何填充的样式。 new_lines (bool, 可选): 填充的行应包括“

”。默认为 False。

返回值

List[List[Segment]]: 新的行列表。

参数
返回类型

List[List[Segment]]

classmethod apply_style(segments, style=None, post_style=None)[source]

将样式应用于片段的迭代。

返回一个片段的迭代,其中样式被替换为 style + segment.style + post_style

参数
  • segments (Iterable[Segment]) – 要处理的片段。

  • style (Style, 可选) – 基本样式。默认为 None。

  • post_style (Style, 可选) – 要应用于片段样式之上的样式。默认为 None。

返回值

一个新的片段迭代(可能与同一个迭代相同)。

返回类型

Iterable[Segments]

property cell_length: int

显示 self.text 所需的终端单元格数量。

返回值

一定数量的单元格。

返回类型

int

property control

字段编号 2 的别名

classmethod divide(segments, cuts)[source]

将片段的迭代分成部分。

参数
  • cuts (Iterable[int]) – 要分割的单元格位置。

  • segments (Iterable[Segment]) –

生成

[Iterable[List[Segment]]] – 一个片段的迭代,在 List 中。

返回类型

Iterable[List[Segment]]

classmethod filter_control(segments, is_control=False)[source]

根据 is_control 属性过滤段落。

参数
  • segments (Iterable[Segment]) – Segment 实例的可迭代对象。

  • is_control (bool, optional) – 搜索中要匹配的 is_control 标志。

返回值

Segment 实例的可迭代对象。

返回类型

Iterable[Segment]

classmethod get_line_length(line)[source]

获取段落列表的长度。

参数

line (List[Segment]) – 作为段落列表编码的行(假设没有“\n”字符)。

返回值

行的长度。

返回类型

int

classmethod get_shape(lines)[source]

获取行列表的形状(包围矩形)。

参数

lines (List[List[Segment]]) – 行列表(没有“\n”字符)。

返回值

宽度和高度以字符为单位。

返回类型

Tuple[int, int]

property is_control: bool

检查段落是否包含控制代码。

classmethod line()[source]

创建一个新的行段落。

返回类型

Segment

classmethod remove_color(segments)[source]

从段落可迭代对象中移除所有颜色。

参数

segments (Iterable[Segment]) – 段落可迭代对象。

生成

Segment – 无色样式的段落。

返回类型

Iterable[Segment]

classmethod set_shape(lines, width, height=None, style=None, new_lines=False)[source]

设置行列表的形状(包围矩形)。

参数

lines (List[List[Segment]]): 行列表。 width (int): 期望宽度。 height (int, optional): 期望高度或 None(保持不变)。 style (Style, optional): 添加的任何填充的样式。 new_lines (bool, optional): 填充的行应包含“

”。默认为 False。

返回值

List[List[Segment]]: 新的行列表。

参数
返回类型

List[List[Segment]]

classmethod simplify(segments)[source]

通过将具有相同样式的相邻段落合并来简化段落可迭代对象。

参数

segments (Iterable[Segment]) – 段落可迭代对象。

返回值

一个可能更小的段落可迭代对象,它将以相同的方式呈现。

返回类型

Iterable[Segment]

classmethod split_and_crop_lines(segments, length, style=None, pad=True, include_new_lines=True)[source]

将段落分成行,并裁剪大于给定长度的行。

参数
  • segments (Iterable[Segment]) – 段落可迭代对象,可能由 console.render 生成。

  • length (int) – 期望行长。

  • style (Style, optional) – 用于任何填充的样式。

  • pad (bool) – 启用对小于 length 的行的填充。

  • include_new_lines (bool) –

返回值

段落行的可迭代对象。

返回类型

Iterable[List[Segment]]

split_cells(cut)[source]

在指定的列处将段落分成两个段落。

如果切割点落在 2 个单元格宽字符的中间,则用两个空格替换它,以保持父段落的显示宽度。

返回值

两个段落。

返回类型

Tuple[Segment, Segment]

参数

cut (int) –

classmethod split_lines(segments)[source]

将段落序列分成行列表。

参数

segments (Iterable[Segment]) – 可能包含换行符的段落。

生成

Iterable[List[Segment]] – 段落列表的可迭代对象,每行一个。

返回类型

Iterable[List[Segment]]

从样式可迭代对象中移除所有链接。

参数

segments (Iterable[Segment]) – 段落可迭代对象。

生成

Segment – 链接已移除的段落。

返回类型

Iterable[Segment]

classmethod strip_styles(segments)[source]

从段落可迭代对象中移除所有样式。

参数

segments (Iterable[Segment]) – 段落可迭代对象。

生成

Segment – 样式被 None 替换的段落

返回类型

Iterable[Segment]

property style

字段 1 的别名

property text

字段 0 的别名

class rich.segment.Segments(segments, new_lines=False)[source]

一个简单的可渲染对象,用于渲染段落可迭代对象。如果您想在 __rich_console__ 方法之外打印段落,此类可能很有用。

参数
  • segments (Iterable[Segment]) – 段落可迭代对象。

  • new_lines (bool, 可选) – 在段落之间添加新行。默认值为 False。