Files
typeshed/stdlib/select.pyi
T
Stephen Morton cc14cc6c2a fix up some C signatures (#14624)
a few issues exposed after https://github.com/python/mypy/pull/18259 was merged
2025-08-22 06:58:55 -07:00

164 lines
5.3 KiB
Python

import sys
from _typeshed import FileDescriptorLike
from collections.abc import Iterable
from types import TracebackType
from typing import Any, ClassVar, Final, final
from typing_extensions import Self
if sys.platform != "win32":
PIPE_BUF: Final[int]
POLLERR: Final[int]
POLLHUP: Final[int]
POLLIN: Final[int]
if sys.platform == "linux":
POLLMSG: Final[int]
POLLNVAL: Final[int]
POLLOUT: Final[int]
POLLPRI: Final[int]
POLLRDBAND: Final[int]
if sys.platform == "linux":
POLLRDHUP: Final[int]
POLLRDNORM: Final[int]
POLLWRBAND: Final[int]
POLLWRNORM: Final[int]
# This is actually a function that returns an instance of a class.
# The class is not accessible directly, and also calls itself select.poll.
class poll:
# default value is select.POLLIN | select.POLLPRI | select.POLLOUT
def register(self, fd: FileDescriptorLike, eventmask: int = 7, /) -> None: ...
def modify(self, fd: FileDescriptorLike, eventmask: int, /) -> None: ...
def unregister(self, fd: FileDescriptorLike, /) -> None: ...
def poll(self, timeout: float | None = None, /) -> list[tuple[int, int]]: ...
def select(
rlist: Iterable[Any], wlist: Iterable[Any], xlist: Iterable[Any], timeout: float | None = None, /
) -> tuple[list[Any], list[Any], list[Any]]: ...
error = OSError
if sys.platform != "linux" and sys.platform != "win32":
# BSD only
@final
class kevent:
data: Any
fflags: int
filter: int
flags: int
ident: int
udata: Any
def __init__(
self,
ident: FileDescriptorLike,
filter: int = ...,
flags: int = ...,
fflags: int = ...,
data: Any = ...,
udata: Any = ...,
) -> None: ...
__hash__: ClassVar[None] # type: ignore[assignment]
# BSD only
@final
class kqueue:
closed: bool
def __init__(self) -> None: ...
def close(self) -> None: ...
def control(
self, changelist: Iterable[kevent] | None, maxevents: int, timeout: float | None = None, /
) -> list[kevent]: ...
def fileno(self) -> int: ...
@classmethod
def fromfd(cls, fd: FileDescriptorLike, /) -> kqueue: ...
KQ_EV_ADD: Final[int]
KQ_EV_CLEAR: Final[int]
KQ_EV_DELETE: Final[int]
KQ_EV_DISABLE: Final[int]
KQ_EV_ENABLE: Final[int]
KQ_EV_EOF: Final[int]
KQ_EV_ERROR: Final[int]
KQ_EV_FLAG1: Final[int]
KQ_EV_ONESHOT: Final[int]
KQ_EV_SYSFLAGS: Final[int]
KQ_FILTER_AIO: Final[int]
if sys.platform != "darwin":
KQ_FILTER_NETDEV: Final[int]
KQ_FILTER_PROC: Final[int]
KQ_FILTER_READ: Final[int]
KQ_FILTER_SIGNAL: Final[int]
KQ_FILTER_TIMER: Final[int]
KQ_FILTER_VNODE: Final[int]
KQ_FILTER_WRITE: Final[int]
KQ_NOTE_ATTRIB: Final[int]
KQ_NOTE_CHILD: Final[int]
KQ_NOTE_DELETE: Final[int]
KQ_NOTE_EXEC: Final[int]
KQ_NOTE_EXIT: Final[int]
KQ_NOTE_EXTEND: Final[int]
KQ_NOTE_FORK: Final[int]
KQ_NOTE_LINK: Final[int]
if sys.platform != "darwin":
KQ_NOTE_LINKDOWN: Final[int]
KQ_NOTE_LINKINV: Final[int]
KQ_NOTE_LINKUP: Final[int]
KQ_NOTE_LOWAT: Final[int]
KQ_NOTE_PCTRLMASK: Final[int]
KQ_NOTE_PDATAMASK: Final[int]
KQ_NOTE_RENAME: Final[int]
KQ_NOTE_REVOKE: Final[int]
KQ_NOTE_TRACK: Final[int]
KQ_NOTE_TRACKERR: Final[int]
KQ_NOTE_WRITE: Final[int]
if sys.platform == "linux":
@final
class epoll:
def __new__(self, sizehint: int = ..., flags: int = ...) -> Self: ...
def __enter__(self) -> Self: ...
def __exit__(
self,
exc_type: type[BaseException] | None = None,
exc_value: BaseException | None = ...,
exc_tb: TracebackType | None = None,
/,
) -> None: ...
def close(self) -> None: ...
closed: bool
def fileno(self) -> int: ...
def register(self, fd: FileDescriptorLike, eventmask: int = ...) -> None: ...
def modify(self, fd: FileDescriptorLike, eventmask: int) -> None: ...
def unregister(self, fd: FileDescriptorLike) -> None: ...
def poll(self, timeout: float | None = None, maxevents: int = -1) -> list[tuple[int, int]]: ...
@classmethod
def fromfd(cls, fd: FileDescriptorLike, /) -> epoll: ...
EPOLLERR: Final[int]
EPOLLEXCLUSIVE: Final[int]
EPOLLET: Final[int]
EPOLLHUP: Final[int]
EPOLLIN: Final[int]
EPOLLMSG: Final[int]
EPOLLONESHOT: Final[int]
EPOLLOUT: Final[int]
EPOLLPRI: Final[int]
EPOLLRDBAND: Final[int]
EPOLLRDHUP: Final[int]
EPOLLRDNORM: Final[int]
EPOLLWRBAND: Final[int]
EPOLLWRNORM: Final[int]
EPOLL_CLOEXEC: Final[int]
if sys.version_info >= (3, 14):
EPOLLWAKEUP: Final[int]
if sys.platform != "linux" and sys.platform != "darwin" and sys.platform != "win32":
# Solaris only
class devpoll:
def close(self) -> None: ...
closed: bool
def fileno(self) -> int: ...
def register(self, fd: FileDescriptorLike, eventmask: int = ...) -> None: ...
def modify(self, fd: FileDescriptorLike, eventmask: int = ...) -> None: ...
def unregister(self, fd: FileDescriptorLike) -> None: ...
def poll(self, timeout: float | None = ...) -> list[tuple[int, int]]: ...