from ._content_streams import ContentStream
from ._exceptions import (
HTTPCORE_EXC_MAP,
- HTTPError,
InvalidURL,
RequestBodyUnavailable,
TooManyRedirects,
transport = self._transport_for_url(request.url)
- try:
- with map_exceptions(HTTPCORE_EXC_MAP):
- (
- http_version,
- status_code,
- reason_phrase,
- headers,
- stream,
- ) = transport.request(
- request.method.encode(),
- request.url.raw,
- headers=request.headers.raw,
- stream=request.stream,
- timeout=timeout.as_dict(),
- )
- except HTTPError as exc:
- # Add the original request to any HTTPError unless
- # there'a already a request attached in the case of
- # a ProxyError.
- if exc._request is None:
- exc._request = request
- raise
+ with map_exceptions(HTTPCORE_EXC_MAP, request=request):
+ (
+ http_version,
+ status_code,
+ reason_phrase,
+ headers,
+ stream,
+ ) = transport.request(
+ request.method.encode(),
+ request.url.raw,
+ headers=request.headers.raw,
+ stream=request.stream,
+ timeout=timeout.as_dict(),
+ )
response = Response(
status_code,
http_version=http_version.decode("ascii"),
transport = self._transport_for_url(request.url)
- try:
- with map_exceptions(HTTPCORE_EXC_MAP):
- (
- http_version,
- status_code,
- reason_phrase,
- headers,
- stream,
- ) = await transport.request(
- request.method.encode(),
- request.url.raw,
- headers=request.headers.raw,
- stream=request.stream,
- timeout=timeout.as_dict(),
- )
- except HTTPError as exc:
- # Add the original request to any HTTPError unless
- # there'a already a request attached in the case of
- # a ProxyError.
- if exc._request is None:
- exc._request = request
- raise
+ with map_exceptions(HTTPCORE_EXC_MAP, request=request):
+ (
+ http_version,
+ status_code,
+ reason_phrase,
+ headers,
+ stream,
+ ) = await transport.request(
+ request.method.encode(),
+ request.url.raw,
+ headers=request.headers.raw,
+ stream=request.stream,
+ timeout=timeout.as_dict(),
+ )
response = Response(
status_code,
http_version=http_version.decode("ascii"),
@contextlib.contextmanager
def map_exceptions(
- mapping: typing.Mapping[typing.Type[Exception], typing.Type[Exception]]
+ mapping: typing.Mapping[typing.Type[Exception], typing.Type[Exception]],
+ **kwargs: typing.Any,
) -> typing.Iterator[None]:
try:
yield
if mapped_exc is None:
raise
- raise mapped_exc(exc) from None
+ message = str(exc)
+ raise mapped_exc(message, **kwargs) from None # type: ignore
HTTPCORE_EXC_MAP = {