1from email.message import Message
2from typing import IO, Mapping, Optional, Tuple, Union
3from urllib.response import addinfourl
4
5# Stubs for urllib.error
6
7class URLError(IOError):
8    reason: Union[str, BaseException]
9    def __init__(self, reason: Union[str, BaseException], filename: Optional[str] = ...) -> None: ...
10
11class HTTPError(URLError, addinfourl):
12    code: int
13    def __init__(self, url: str, code: int, msg: str, hdrs: Mapping[str, str], fp: Optional[IO[bytes]]) -> None: ...
14
15class ContentTooShortError(URLError):
16    content: Tuple[str, Message]
17    def __init__(self, message: str, content: Tuple[str, Message]) -> None: ...
18