Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
vt_codes.py61 linesDownload Raw Back to utils
1"""2This module provides a method to detect if a given file object supports virtual terminal escape codes.3"""4 5import os6import sys7from typing import IO8 9if os.name == "nt":10    from ctypes import byref  # type: ignore11    from ctypes import windll  # type: ignore12    from ctypes.wintypes import BOOL13    from ctypes.wintypes import DWORD14    from ctypes.wintypes import HANDLE15    from ctypes.wintypes import LPDWORD16 17    ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x000418    STD_OUTPUT_HANDLE = -1119    STD_ERROR_HANDLE = -1220 21    # https://docs.microsoft.com/de-de/windows/console/getstdhandle22    GetStdHandle = windll.kernel32.GetStdHandle23    GetStdHandle.argtypes = [DWORD]24    GetStdHandle.restype = HANDLE25 26    # https://docs.microsoft.com/de-de/windows/console/getconsolemode27    GetConsoleMode = windll.kernel32.GetConsoleMode28    GetConsoleMode.argtypes = [HANDLE, LPDWORD]29    GetConsoleMode.restype = BOOL30 31    # https://docs.microsoft.com/de-de/windows/console/setconsolemode32    SetConsoleMode = windll.kernel32.SetConsoleMode33    SetConsoleMode.argtypes = [HANDLE, DWORD]34    SetConsoleMode.restype = BOOL35 36    def ensure_supported(f: IO[str]) -> bool:37        if not f.isatty():38            return False39        if f == sys.stdout:40            h = STD_OUTPUT_HANDLE41        elif f == sys.stderr:42            h = STD_ERROR_HANDLE43        else:44            return False45 46        handle = GetStdHandle(h)47        console_mode = DWORD()48        ok = GetConsoleMode(handle, byref(console_mode))49        if not ok:50            return False51 52        ok = SetConsoleMode(53            handle, console_mode.value | ENABLE_VIRTUAL_TERMINAL_PROCESSING54        )55        return ok56 57else:58 59    def ensure_supported(f: IO[str]) -> bool:60        return f.isatty()61 
codekingpro/portable-devtools · Team Ai