MCPcopy
hub / github.com/Textualize/rich / legacy_windows_render

Function legacy_windows_render

rich/_windows_renderer.py:7–56  ·  view source on GitHub ↗

Makes appropriate Windows Console API calls based on the segments in the buffer. Args: buffer (Iterable[Segment]): Iterable of Segments to convert to Win32 API calls. term (LegacyWindowsTerm): Used to call the Windows Console API.

(buffer: Iterable[Segment], term: LegacyWindowsTerm)

Source from the content-addressed store, hash-verified

5
6
7def legacy_windows_render(buffer: Iterable[Segment], term: LegacyWindowsTerm) -> None:
8 """Makes appropriate Windows Console API calls based on the segments in the buffer.
9
10 Args:
11 buffer (Iterable[Segment]): Iterable of Segments to convert to Win32 API calls.
12 term (LegacyWindowsTerm): Used to call the Windows Console API.
13 """
14 for text, style, control in buffer:
15 if not control:
16 if style:
17 term.write_styled(text, style)
18 else:
19 term.write_text(text)
20 else:
21 control_codes: Sequence[ControlCode] = control
22 for control_code in control_codes:
23 control_type = control_code[0]
24 if control_type == ControlType.CURSOR_MOVE_TO:
25 _, x, y = cast(Tuple[ControlType, int, int], control_code)
26 term.move_cursor_to(WindowsCoordinates(row=y - 1, col=x - 1))
27 elif control_type == ControlType.CARRIAGE_RETURN:
28 term.write_text("\r")
29 elif control_type == ControlType.HOME:
30 term.move_cursor_to(WindowsCoordinates(0, 0))
31 elif control_type == ControlType.CURSOR_UP:
32 term.move_cursor_up()
33 elif control_type == ControlType.CURSOR_DOWN:
34 term.move_cursor_down()
35 elif control_type == ControlType.CURSOR_FORWARD:
36 term.move_cursor_forward()
37 elif control_type == ControlType.CURSOR_BACKWARD:
38 term.move_cursor_backward()
39 elif control_type == ControlType.CURSOR_MOVE_TO_COLUMN:
40 _, column = cast(Tuple[ControlType, int], control_code)
41 term.move_cursor_to_column(column - 1)
42 elif control_type == ControlType.HIDE_CURSOR:
43 term.hide_cursor()
44 elif control_type == ControlType.SHOW_CURSOR:
45 term.show_cursor()
46 elif control_type == ControlType.ERASE_IN_LINE:
47 _, mode = cast(Tuple[ControlType, int], control_code)
48 if mode == 0:
49 term.erase_end_of_line()
50 elif mode == 1:
51 term.erase_start_of_line()
52 elif mode == 2:
53 term.erase_line()
54 elif control_type == ControlType.SET_WINDOW_TITLE:
55 _, title = cast(Tuple[ControlType, str], control_code)
56 term.set_title(title)

Calls 15

WindowsCoordinatesClass · 0.90
write_styledMethod · 0.80
write_textMethod · 0.80
move_cursor_toMethod · 0.80
move_cursor_upMethod · 0.80
move_cursor_downMethod · 0.80
move_cursor_forwardMethod · 0.80
move_cursor_backwardMethod · 0.80
move_cursor_to_columnMethod · 0.80
hide_cursorMethod · 0.80
erase_end_of_lineMethod · 0.80
erase_start_of_lineMethod · 0.80