|
1 | 1 | # Stubs for socketserver
|
2 | 2 |
|
3 |
| -from typing import BinaryIO, Optional, Tuple |
| 3 | +from typing import BinaryIO, Generic, Optional, Tuple, TypeVar, Union |
4 | 4 | from socket import SocketType
|
5 | 5 | import sys
|
6 | 6 | import types
|
@@ -68,15 +68,23 @@ class ForkingUDPServer(ForkingMixIn, UDPServer): ...
|
68 | 68 | class ThreadingTCPServer(ThreadingMixIn, TCPServer): ...
|
69 | 69 | class ThreadingUDPServer(ThreadingMixIn, UDPServer): ...
|
70 | 70 |
|
71 |
| -class BaseRequestHandler: |
| 71 | + |
| 72 | +_RequestT = TypeVar('_RequestT', Union[SocketType, Tuple[bytes, SocketType]]) |
| 73 | +# str in case of Unix domain socket |
| 74 | +_AddressT = TypeVar('_AddressT', Tuple[str, int], str) |
| 75 | + |
| 76 | +class BaseRequestHandler(Generic[_RequestT, _AddressT]): |
| 77 | + request = ... # type: _RequestT |
| 78 | + client_address = ... # type: _AddressT |
| 79 | + server = ... # type: BaseServer |
72 | 80 | def setup(self) -> None: ...
|
73 | 81 | def handle(self) -> None: ...
|
74 | 82 | def finish(self) -> None: ...
|
75 | 83 |
|
76 |
| -class StreamRequestHandler(BaseRequestHandler): |
| 84 | +class StreamRequestHandler(BaseRequestHandler[SocketType, _AddressT], Generic[_AddressT]): |
77 | 85 | rfile = ... # type: BinaryIO
|
78 | 86 | wfile = ... # type: BinaryIO
|
79 | 87 |
|
80 |
| -class DatagramRequestHandler(BaseRequestHandler): |
| 88 | +class DatagramRequestHandler(BaseRequestHandler[Tuple[bytes, SocketType], _AddressT], Generic[_AddressT]): |
81 | 89 | rfile = ... # type: BinaryIO
|
82 | 90 | wfile = ... # type: BinaryIO
|
0 commit comments