Source code for uk_covid19.exceptions

#!/usr/bin python3

# Imports
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Python:
from pprint import pformat
from urllib.parse import unquote

# 3rd party:
from requests import Response

# Internal: 

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

__all__ = [
    'FailedRequestError'
]


[docs]class FailedRequestError(RuntimeError): """ Exception for failed HTTP request. """ message = """ Request failed .... {status_code} - {reason} Response .......... {response_text} URL ............... {url} Decoded URL ....... {decoded_url} Parameters: {params} """ def __init__(self, response: Response, params: dict): """ Parameters ---------- response: Response HTTP request ``Response`` object, as produced by the ``requests`` library. params: dict Dictionary of parameters. """ message = self.message.format( status_code=response.status_code, reason=response.reason, response_text=response.content.decode() or "No response", url=response.url, decoded_url=unquote(response.url), params=pformat(params, indent=2) ) super().__init__(message)