| import http | |
| from typing import Optional | |
| from fastapi import HTTPException, status | |
| class HfApiException(Exception): | |
| def __init__( | |
| self, | |
| status_code: int, | |
| detail: Optional[str] = None, | |
| ) -> None: | |
| if detail is None: | |
| self.detail = http.HTTPStatus(status_code).phrase | |
| else: | |
| self.detail = detail | |
| self.status_code = status_code | |
| def __repr__(self) -> str: | |
| class_name = self.__class__.__name__ | |
| return f"{class_name}(status_code={self.status_code!r}, detail={self.detail!r})" | |
| def __str__(self) -> str: | |
| return self.__repr__() | |
| INVALID_API_KEY_ERROR = HfApiException( | |
| status_code=status.HTTP_403_FORBIDDEN, | |
| detail="Invalid API Key", | |
| ) | |