Raised when an API response has a status code of 4xx or 5xx.
| 63 | |
| 64 | |
| 65 | class APIStatusError(APIError): |
| 66 | """Raised when an API response has a status code of 4xx or 5xx.""" |
| 67 | |
| 68 | response: httpx.Response |
| 69 | status_code: int |
| 70 | request_id: str | None |
| 71 | type: ErrorType | None |
| 72 | |
| 73 | def __init__(self, message: str, *, response: httpx.Response, body: object | None) -> None: |
| 74 | super().__init__(message, response.request, body=body) |
| 75 | self.response = response |
| 76 | self.status_code = response.status_code |
| 77 | self.request_id = response.headers.get("request-id") |
| 78 | |
| 79 | self.type = None |
| 80 | if is_dict(body): |
| 81 | error = body.get("error") |
| 82 | if is_dict(error): |
| 83 | self.type = cast(Union[ErrorType, None], error.get("type")) |
| 84 | |
| 85 | |
| 86 | class APIConnectionError(APIError): |
no outgoing calls