Skip to content

textual.strip

This module contains the Strip class and related objects.

A Strip contains the result of rendering a widget. See line API for how to use Strips.

Strip

Strip(segments, cell_length=None)

Represents a 'strip' (horizontal line) of a Textual Widget.

A Strip is like an immutable list of Segments. The immutability allows for effective caching.

Parameters:

Name Type Description Default

segments

Iterable[Segment]

An iterable of segments.

required

cell_length

int | None

The cell length if known, or None to calculate on demand.

None

cell_length property

cell_length

Get the number of cells required to render this object.

link_ids

A set of the link ids in this Strip.

text property

text

Segment text.

adjust_cell_length

adjust_cell_length(cell_length, style=None)

Adjust the cell length, possibly truncating or extending.

Parameters:

Name Type Description Default

cell_length

int

New desired cell length.

required

style

Style | None

Style when extending, or None.

None

Returns:

Type Description
Strip

A new strip with the supplied cell length.

apply_filter

apply_filter(filter, background)

Apply a filter to all segments in the strip.

Parameters:

Name Type Description Default

filter

LineFilter

A line filter object.

required

Returns:

Type Description
Strip

A new Strip.

apply_style

apply_style(style)

Apply a style to the Strip.

Parameters:

Name Type Description Default

style

Style

A Rich style.

required

Returns:

Type Description
Strip

A new strip.

blank classmethod

blank(cell_length, style=None)

Create a blank strip.

Parameters:

Name Type Description Default

cell_length

int

Desired cell length.

required

style

StyleType | None

Style of blank.

None

Returns:

Type Description
Strip

New strip.

crop

crop(start, end=None)

Crop a strip between two cell positions.

Parameters:

Name Type Description Default

start

int

The start cell position (inclusive).

required

end

int | None

The end cell position (exclusive).

None

Returns:

Type Description
Strip

A new Strip.

crop_extend

crop_extend(start, end, style)

Crop between two points, extending the length if required.

Parameters:

Name Type Description Default

start

int

Start offset of crop.

required

end

int

End offset of crop.

required

style

Style | None

Style of additional padding.

required

Returns:

Type Description
Strip

New cropped Strip.

divide

divide(cuts)

Divide the strip in to multiple smaller strips by cutting at given (cell) indices.

Parameters:

Name Type Description Default

cuts

Iterable[int]

An iterable of cell positions as ints.

required

Returns:

Type Description
Sequence[Strip]

A new list of strips.

extend_cell_length

extend_cell_length(cell_length, style=None)

Extend the cell length if it is less than the given value.

Parameters:

Name Type Description Default

cell_length

int

Required minimum cell length.

required

style

Style | None

Style for padding if the cell length is extended.

None

Returns:

Type Description
Strip

A new Strip.

from_lines classmethod

from_lines(lines, cell_length=None)

Convert lines (lists of segments) to a list of Strips.

Parameters:

Name Type Description Default

lines

list[list[Segment]]

List of lines, where a line is a list of segments.

required

cell_length

int | None

Cell length of lines (must be same) or None if not known.

None

Returns:

Type Description
list[Strip]

List of strips.

index_to_cell_position

index_to_cell_position(index)

Given a character index, return the cell position of that character. This is the sum of the cell lengths of all the characters before the character at index.

Parameters:

Name Type Description Default

index

int

The index to convert.

required

Returns:

Type Description
int

The cell position of the character at index.

join classmethod

join(strips)

Join a number of strips in to one.

Parameters:

Name Type Description Default

strips

Iterable[Strip | None]

An iterable of Strips.

required

Returns:

Type Description
Strip

A new combined strip.

simplify

simplify()

Simplify the segments (join segments with same style)

Returns:

Type Description
Strip

New strip.

style_links(link_id, link_style)

Apply a style to Segments with the given link_id.

Parameters:

Name Type Description Default
str

A link id.

required
Style

Style to apply.

required

Returns:

Type Description
Strip

New strip (or same Strip if no changes).

StripRenderable

StripRenderable(strips, width=None)

A renderable which renders a list of strips in to lines.

get_line_length

get_line_length(segments)

Get the line length (total length of all segments).

Parameters:

Name Type Description Default

segments

Iterable[Segment]

Iterable of segments.

required

Returns:

Type Description
int

Length of line in cells.