Spaces:
Sleeping
Sleeping
File size: 3,296 Bytes
2d876d1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
from __future__ import annotations
from typing import TextIO
from prompt_toolkit.cursor_shapes import CursorShape
from prompt_toolkit.data_structures import Size
from prompt_toolkit.styles import Attrs
from .base import Output
from .color_depth import ColorDepth
from .flush_stdout import flush_stdout
__all__ = ["PlainTextOutput"]
class PlainTextOutput(Output):
"""
Output that won't include any ANSI escape sequences.
Useful when stdout is not a terminal. Maybe stdout is redirected to a file.
In this case, if `print_formatted_text` is used, for instance, we don't
want to include formatting.
(The code is mostly identical to `Vt100_Output`, but without the
formatting.)
"""
def __init__(self, stdout: TextIO) -> None:
assert all(hasattr(stdout, a) for a in ("write", "flush"))
self.stdout: TextIO = stdout
self._buffer: list[str] = []
def fileno(self) -> int:
"There is no sensible default for fileno()."
return self.stdout.fileno()
def encoding(self) -> str:
return "utf-8"
def write(self, data: str) -> None:
self._buffer.append(data)
def write_raw(self, data: str) -> None:
self._buffer.append(data)
def set_title(self, title: str) -> None:
pass
def clear_title(self) -> None:
pass
def flush(self) -> None:
if not self._buffer:
return
data = "".join(self._buffer)
self._buffer = []
flush_stdout(self.stdout, data)
def erase_screen(self) -> None:
pass
def enter_alternate_screen(self) -> None:
pass
def quit_alternate_screen(self) -> None:
pass
def enable_mouse_support(self) -> None:
pass
def disable_mouse_support(self) -> None:
pass
def erase_end_of_line(self) -> None:
pass
def erase_down(self) -> None:
pass
def reset_attributes(self) -> None:
pass
def set_attributes(self, attrs: Attrs, color_depth: ColorDepth) -> None:
pass
def disable_autowrap(self) -> None:
pass
def enable_autowrap(self) -> None:
pass
def cursor_goto(self, row: int = 0, column: int = 0) -> None:
pass
def cursor_up(self, amount: int) -> None:
pass
def cursor_down(self, amount: int) -> None:
self._buffer.append("\n")
def cursor_forward(self, amount: int) -> None:
self._buffer.append(" " * amount)
def cursor_backward(self, amount: int) -> None:
pass
def hide_cursor(self) -> None:
pass
def show_cursor(self) -> None:
pass
def set_cursor_shape(self, cursor_shape: CursorShape) -> None:
pass
def reset_cursor_shape(self) -> None:
pass
def ask_for_cpr(self) -> None:
pass
def bell(self) -> None:
pass
def enable_bracketed_paste(self) -> None:
pass
def disable_bracketed_paste(self) -> None:
pass
def scroll_buffer_to_prompt(self) -> None:
pass
def get_size(self) -> Size:
return Size(rows=40, columns=80)
def get_rows_below_cursor_position(self) -> int:
return 8
def get_default_color_depth(self) -> ColorDepth:
return ColorDepth.DEPTH_1_BIT
|