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. |
from __future__ import annotations from dataclasses import dataclass, field import traceback TYPE_CHECKING = False if TYPE_CHECKING: from threading import Thread from types import TracebackType from typing import Protocol class ExceptHookArgs(Protocol): @property def exc_type(self) -> type[BaseException]: ... @property def exc_value(self) -> BaseException | None: ... @property def exc_traceback(self) -> TracebackType | None: ... @property def thread(self) -> Thread | None: ... class ShowExceptions(Protocol): def __call__(self) -> int: ... def add(self, s: str) -> None: ... from .reader import Reader def install_threading_hook(reader: Reader) -> None: import threading @dataclass class ExceptHookHandler: lock: threading.Lock = field(default_factory=threading.Lock) messages: list[str] = field(default_factory=list) def show(self) -> int: count = 0 with self.lock: if not self.messages: return 0 reader.restore() for tb in self.messages: count += 1 if tb: print(tb) self.messages.clear() reader.scheduled_commands.append("ctrl-c") reader.prepare() return count def add(self, s: str) -> None: with self.lock: self.messages.append(s) def exception(self, args: ExceptHookArgs) -> None: lines = traceback.format_exception( args.exc_type, args.exc_value, args.exc_traceback, colorize=reader.can_colorize, ) # type: ignore[call-overload] pre = f"\nException in {args.thread.name}:\n" if args.thread else "\n" tb = pre + "".join(lines) self.add(tb) def __call__(self) -> int: return self.show() handler = ExceptHookHandler() reader.threading_hook = handler threading.excepthook = handler.exception
SILENT KILLER Tool