()
| 48 | if sys.platform == "win32": |
| 49 | |
| 50 | def _pty_size() -> Tuple[Optional[int], Optional[int]]: |
| 51 | class CONSOLE_SCREEN_BUFFER_INFO(Structure): |
| 52 | _fields_ = [ |
| 53 | ("dwSize", _COORD), |
| 54 | ("dwCursorPosition", _COORD), |
| 55 | ("wAttributes", c_ushort), |
| 56 | ("srWindow", _SMALL_RECT), |
| 57 | ("dwMaximumWindowSize", _COORD), |
| 58 | ] |
| 59 | |
| 60 | GetStdHandle = windll.kernel32.GetStdHandle |
| 61 | GetConsoleScreenBufferInfo = windll.kernel32.GetConsoleScreenBufferInfo |
| 62 | GetStdHandle.restype = HANDLE |
| 63 | GetConsoleScreenBufferInfo.argtypes = [ |
| 64 | HANDLE, |
| 65 | POINTER(CONSOLE_SCREEN_BUFFER_INFO), |
| 66 | ] |
| 67 | |
| 68 | hstd = GetStdHandle(-11) # STD_OUTPUT_HANDLE = -11 |
| 69 | csbi = CONSOLE_SCREEN_BUFFER_INFO() |
| 70 | ret = GetConsoleScreenBufferInfo(hstd, byref(csbi)) |
| 71 | |
| 72 | if ret: |
| 73 | sizex = csbi.srWindow.Right - csbi.srWindow.Left + 1 |
| 74 | sizey = csbi.srWindow.Bottom - csbi.srWindow.Top + 1 |
| 75 | return sizex, sizey |
| 76 | else: |
| 77 | return (None, None) |
| 78 | |
| 79 | else: |
| 80 |
no test coverage detected
searching dependent graphs…