import sys from collections.abc import Iterable from enum import Enum from typing import NamedTuple, SupportsIndex, type_check_only @type_check_only class _AwaitedInfo(NamedTuple): # AwaitedInfo_Type from _remote_debugging thread_id: int awaited_by: list[_TaskInfo] @type_check_only class _TaskInfo(NamedTuple): # TaskInfo_Type from _remote_debugging task_id: int task_name: str coroutine_stack: list[_CoroInfo] awaited_by: list[_CoroInfo] @type_check_only class _CoroInfo(NamedTuple): # CoroInfo_Type from _remote_debugging call_stack: list[_FrameInfo] task_name: int | str @type_check_only class _FrameInfo(NamedTuple): # FrameInfo_Type from _remote_debugging filename: str lineno: int funcname: str class NodeType(Enum): COROUTINE = 1 TASK = 2 class CycleFoundException(Exception): cycles: list[list[int]] id2name: dict[int, str] def __init__(self, cycles: list[list[int]], id2name: dict[int, str]) -> None: ... def get_all_awaited_by(pid: SupportsIndex) -> list[_AwaitedInfo]: ... def build_async_tree(result: Iterable[_AwaitedInfo], task_emoji: str = "(T)", cor_emoji: str = "") -> list[list[str]]: ... def build_task_table(result: Iterable[_AwaitedInfo]) -> list[list[int | str]]: ... if sys.version_info >= (3, 14): def exit_with_permission_help_text() -> None: ... def display_awaited_by_tasks_table(pid: SupportsIndex) -> None: ... def display_awaited_by_tasks_tree(pid: SupportsIndex) -> None: ...