[tty] py312: Fix return types of set(raw|cbreak) (#10785)

Also add `termios._AttrReturn` type alias to be used in tty
This commit is contained in:
Sebastian Rittau
2023-09-28 16:15:20 +02:00
committed by GitHub
parent 4ea52b3bcf
commit 6074a8f544
2 changed files with 16 additions and 12 deletions

View File

@@ -1,5 +1,6 @@
import sys
from typing import IO, Any
import termios
from typing import IO
from typing_extensions import TypeAlias
if sys.platform != "win32":
@@ -7,6 +8,10 @@ if sys.platform != "win32":
if sys.version_info >= (3, 12):
__all__ += ["cfmakeraw", "cfmakecbreak"]
_ModeSetterReturn: TypeAlias = termios._AttrReturn
else:
_ModeSetterReturn: TypeAlias = None
_FD: TypeAlias = int | IO[str]
# XXX: Undocumented integer constants
@@ -17,12 +22,9 @@ if sys.platform != "win32":
ISPEED: int
OSPEED: int
CC: int
def setraw(fd: _FD, when: int = 2) -> None: ...
def setcbreak(fd: _FD, when: int = 2) -> None: ...
def setraw(fd: _FD, when: int = 2) -> _ModeSetterReturn: ...
def setcbreak(fd: _FD, when: int = 2) -> _ModeSetterReturn: ...
if sys.version_info >= (3, 12):
# It is: `list[int, int, int, int, int, int, list[str]]
_Mode: TypeAlias = list[Any]
def cfmakeraw(mode: _Mode) -> None: ...
def cfmakecbreak(mode: _Mode) -> None: ...
def cfmakeraw(mode: termios._Attr) -> None: ...
def cfmakecbreak(mode: termios._Attr) -> None: ...