Current Path: > > opt > > alt > python313 > lib64 > > python3.13 > _pyrepl
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
__init__.py | File | 925 bytes | June 23 2025 14:28:16. | |
__main__.py | File | 422 bytes | June 23 2025 14:28:17. | |
_minimal_curses.py | File | 1844 bytes | June 23 2025 14:28:17. | |
_threading_handler.py | File | 2170 bytes | June 23 2025 14:28:17. | |
base_eventqueue.py | File | 3837 bytes | June 23 2025 14:28:16. | |
commands.py | File | 12190 bytes | June 23 2025 14:28:16. | |
completing_reader.py | File | 10050 bytes | June 23 2025 14:28:16. | |
console.py | File | 6866 bytes | June 23 2025 14:28:16. | |
curses.py | File | 1241 bytes | June 23 2025 14:28:17. | |
fancy_termios.py | File | 2161 bytes | June 23 2025 14:28:16. | |
historical_reader.py | File | 13240 bytes | June 23 2025 14:28:16. | |
input.py | File | 3779 bytes | June 23 2025 14:28:16. | |
keymap.py | File | 6460 bytes | June 23 2025 14:28:17. | |
main.py | File | 1938 bytes | June 23 2025 14:28:16. | |
mypy.ini | File | 870 bytes | June 11 2025 15:36:57. | |
pager.py | File | 5815 bytes | June 23 2025 14:28:17. | |
reader.py | File | 27712 bytes | June 23 2025 14:28:17. | |
readline.py | File | 20219 bytes | June 23 2025 14:28:16. | |
simple_interact.py | File | 5768 bytes | June 23 2025 14:28:16. | |
trace.py | File | 433 bytes | June 23 2025 14:28:16. | |
types.py | File | 354 bytes | June 23 2025 14:28:16. | |
unix_console.py | File | 25637 bytes | June 23 2025 14:28:17. | |
unix_eventqueue.py | File | 2524 bytes | June 23 2025 14:28:17. | |
utils.py | File | 2232 bytes | June 23 2025 14:28:17. | |
windows_console.py | File | 21620 bytes | June 23 2025 14:28:16. | |
windows_eventqueue.py | File | 991 bytes | June 23 2025 14:28:16. |
import re import unicodedata import functools from .types import CharBuffer, CharWidths from .trace import trace ANSI_ESCAPE_SEQUENCE = re.compile(r"\x1b\[[ -@]*[A-~]") ZERO_WIDTH_BRACKET = re.compile(r"\x01.*?\x02") ZERO_WIDTH_TRANS = str.maketrans({"\x01": "", "\x02": ""}) @functools.cache def str_width(c: str) -> int: if ord(c) < 128: return 1 w = unicodedata.east_asian_width(c) if w in ("N", "Na", "H", "A"): return 1 return 2 def wlen(s: str) -> int: if len(s) == 1 and s != "\x1a": return str_width(s) length = sum(str_width(i) for i in s) # remove lengths of any escape sequences sequence = ANSI_ESCAPE_SEQUENCE.findall(s) ctrl_z_cnt = s.count("\x1a") return length - sum(len(i) for i in sequence) + ctrl_z_cnt def unbracket(s: str, including_content: bool = False) -> str: r"""Return `s` with \001 and \002 characters removed. If `including_content` is True, content between \001 and \002 is also stripped. """ if including_content: return ZERO_WIDTH_BRACKET.sub("", s) return s.translate(ZERO_WIDTH_TRANS) def disp_str(buffer: str) -> tuple[CharBuffer, CharWidths]: r"""Decompose the input buffer into a printable variant. Returns a tuple of two lists: - the first list is the input buffer, character by character; - the second list is the visible width of each character in the input buffer. Examples: >>> utils.disp_str("a = 9") (['a', ' ', '=', ' ', '9'], [1, 1, 1, 1, 1]) """ chars: CharBuffer = [] char_widths: CharWidths = [] if not buffer: return chars, char_widths for c in buffer: if c == "\x1a": # CTRL-Z on Windows chars.append(c) char_widths.append(2) elif ord(c) < 128: chars.append(c) char_widths.append(1) elif unicodedata.category(c).startswith("C"): c = r"\u%04x" % ord(c) chars.append(c) char_widths.append(len(c)) else: chars.append(c) char_widths.append(str_width(c)) trace("disp_str({buffer}) = {s}, {b}", buffer=repr(buffer), s=chars, b=char_widths) return chars, char_widths
SILENT KILLER Tool