5 from _typeshed import StrPath, SupportsRead, SupportsWrite
6 from typing import Any, AnyStr, BinaryIO, ClassVar, Mapping, Sequence
8 class HTTPServer(socketserver.TCPServer):
12 if sys.version_info >= (3, 7):
13 class ThreadingHTTPServer(socketserver.ThreadingMixIn, HTTPServer):
14 daemon_threads: bool # undocumented
16 class BaseHTTPRequestHandler(socketserver.StreamRequestHandler):
17 client_address: tuple[str, int]
18 server: socketserver.BaseServer
19 close_connection: bool
24 headers: email.message.Message
27 error_message_format: str
28 error_content_type: str
31 responses: Mapping[int, tuple[str, str]]
32 default_request_version: str # undocumented
33 weekdayname: ClassVar[Sequence[str]] # undocumented
34 monthname: ClassVar[Sequence[str | None]] # undocumented
35 def __init__(self, request: bytes, client_address: tuple[str, int], server: socketserver.BaseServer) -> None: ...
36 def handle(self) -> None: ...
37 def handle_one_request(self) -> None: ...
38 def handle_expect_100(self) -> bool: ...
39 def send_error(self, code: int, message: str | None = ..., explain: str | None = ...) -> None: ...
40 def send_response(self, code: int, message: str | None = ...) -> None: ...
41 def send_header(self, keyword: str, value: str) -> None: ...
42 def send_response_only(self, code: int, message: str | None = ...) -> None: ...
43 def end_headers(self) -> None: ...
44 def flush_headers(self) -> None: ...
45 def log_request(self, code: int | str = ..., size: int | str = ...) -> None: ...
46 def log_error(self, format: str, *args: Any) -> None: ...
47 def log_message(self, format: str, *args: Any) -> None: ...
48 def version_string(self) -> str: ...
49 def date_time_string(self, timestamp: int | None = ...) -> str: ...
50 def log_date_time_string(self) -> str: ...
51 def address_string(self) -> str: ...
52 def parse_request(self) -> bool: ... # undocumented
54 class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
56 extensions_map: dict[str, str]
57 if sys.version_info >= (3, 7):
59 self, request: bytes, client_address: tuple[str, int], server: socketserver.BaseServer, directory: str | None = ...
62 def __init__(self, request: bytes, client_address: tuple[str, int], server: socketserver.BaseServer) -> None: ...
63 def do_GET(self) -> None: ...
64 def do_HEAD(self) -> None: ...
65 def send_head(self) -> io.BytesIO | BinaryIO | None: ... # undocumented
66 def list_directory(self, path: StrPath) -> io.BytesIO | None: ... # undocumented
67 def translate_path(self, path: str) -> str: ... # undocumented
68 def copyfile(self, source: SupportsRead[AnyStr], outputfile: SupportsWrite[AnyStr]) -> None: ... # undocumented
69 def guess_type(self, path: StrPath) -> str: ... # undocumented
71 def executable(path: StrPath) -> bool: ... # undocumented
73 class CGIHTTPRequestHandler(SimpleHTTPRequestHandler):
74 cgi_directories: list[str]
75 have_fork: bool # undocumented
76 def do_POST(self) -> None: ...
77 def is_cgi(self) -> bool: ... # undocumented
78 def is_executable(self, path: StrPath) -> bool: ... # undocumented
79 def is_python(self, path: StrPath) -> bool: ... # undocumented
80 def run_cgi(self) -> None: ... # undocumented