2 from typing import Any, Optional, Sequence, Tuple, Iterable, List, Union
\r
4 # When we have protocols, this should change to a protocol with a fileno method
\r
5 # See https://docs.python.org/3/c-api/file.html#c.PyObject_AsFileDescriptor
\r
6 _FileDescriptor = Union[int, Any]
\r
32 KQ_FILTER_NETDEV: int
\r
35 KQ_FILTER_SIGNAL: int
\r
36 KQ_FILTER_TIMER: int
\r
37 KQ_FILTER_VNODE: int
\r
38 KQ_FILTER_WRITE: int
\r
47 KQ_NOTE_LINKDOWN: int
\r
48 KQ_NOTE_LINKINV: int
\r
51 KQ_NOTE_PCTRLMASK: int
\r
52 KQ_NOTE_PDATAMASK: int
\r
56 KQ_NOTE_TRACKERR: int
\r
72 def __init__(self) -> None: ...
\r
73 def register(self, fd: _FileDescriptor, eventmask: int = ...) -> None: ...
\r
74 def modify(self, fd: _FileDescriptor, eventmask: int) -> None: ...
\r
75 def unregister(self, fd: _FileDescriptor) -> None: ...
\r
76 def poll(self, timeout: Optional[float] = ...) -> List[Tuple[int, int]]: ...
\r
78 def select(rlist: Sequence[Any], wlist: Sequence[Any], xlist: Sequence[Any],
\r
79 timeout: Optional[float] = ...) -> Tuple[List[Any],
\r
83 if sys.version_info >= (3, 3):
\r
86 class error(Exception): ...
\r
89 class kevent(object):
\r
96 def __init__(self, ident: _FileDescriptor, filter: int = ..., flags: int = ..., fflags: int = ..., data: Any = ..., udata: Any = ...) -> None: ...
\r
99 class kqueue(object):
\r
101 def __init__(self) -> None: ...
\r
102 def close(self) -> None: ...
\r
103 def control(self, changelist: Optional[Iterable[kevent]], max_events: int, timeout: float = ...) -> List[kevent]: ...
\r
104 def fileno(self) -> int: ...
\r
106 def fromfd(cls, fd: _FileDescriptor) -> kqueue: ...
\r
109 class epoll(object):
\r
110 if sys.version_info >= (3, 3):
\r
111 def __init__(self, sizehint: int = ..., flags: int = ...) -> None: ...
\r
113 def __init__(self, sizehint: int = ...) -> None: ...
\r
114 if sys.version_info >= (3, 4):
\r
115 def __enter__(self) -> epoll: ...
\r
116 def __exit__(self, *args: Any) -> None: ...
\r
117 def close(self) -> None: ...
\r
119 def fileno(self) -> int: ...
\r
120 def register(self, fd: _FileDescriptor, eventmask: int = ...) -> None: ...
\r
121 def modify(self, fd: _FileDescriptor, eventmask: int) -> None: ...
\r
122 def unregister(self, fd: _FileDescriptor) -> None: ...
\r
123 def poll(self, timeout: float = ..., maxevents: int = ...) -> List[Tuple[int, int]]: ...
\r
125 def fromfd(cls, fd: _FileDescriptor) -> epoll: ...
\r
127 if sys.version_info >= (3, 3):
\r
130 if sys.version_info >= (3, 4):
\r
131 def close(self) -> None: ...
\r
133 def fileno(self) -> int: ...
\r
134 def register(self, fd: _FileDescriptor, eventmask: int = ...) -> None: ...
\r
135 def modify(self, fd: _FileDescriptor, eventmask: int = ...) -> None: ...
\r
136 def unregister(self, fd: _FileDescriptor) -> None: ...
\r
137 def poll(self, timeout: Optional[float] = ...) -> List[Tuple[int, int]]: ...
\r