|
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",
|
|
)
|
|
|