Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/httpcore/_exceptions.py: 85%
41 statements
« prev ^ index » next coverage.py v7.2.2, created at 2023-03-26 06:12 +0000
« prev ^ index » next coverage.py v7.2.2, created at 2023-03-26 06:12 +0000
1import contextlib
2from typing import Iterator, Mapping, Type
4ExceptionMapping = Mapping[Type[Exception], Type[Exception]]
7@contextlib.contextmanager
8def map_exceptions(map: ExceptionMapping) -> Iterator[None]:
9 try:
10 yield
11 except Exception as exc: # noqa: PIE786
12 for from_exc, to_exc in map.items():
13 if isinstance(exc, from_exc):
14 raise to_exc(exc)
15 raise # pragma: nocover
18class ConnectionNotAvailable(Exception):
19 pass
22class ProxyError(Exception):
23 pass
26class UnsupportedProtocol(Exception):
27 pass
30class ProtocolError(Exception):
31 pass
34class RemoteProtocolError(ProtocolError):
35 pass
38class LocalProtocolError(ProtocolError):
39 pass
42# Timeout errors
45class TimeoutException(Exception):
46 pass
49class PoolTimeout(TimeoutException):
50 pass
53class ConnectTimeout(TimeoutException):
54 pass
57class ReadTimeout(TimeoutException):
58 pass
61class WriteTimeout(TimeoutException):
62 pass
65# Network errors
68class NetworkError(Exception):
69 pass
72class ConnectError(NetworkError):
73 pass
76class ReadError(NetworkError):
77 pass
80class WriteError(NetworkError):
81 pass