|
- from typing import Any, Dict, Optional, Sequence, Type
-
- from pydantic import BaseModel, ValidationError, create_model
- from pydantic.error_wrappers import ErrorList
- from starlette.exceptions import HTTPException as StarletteHTTPException
-
-
- class HTTPException(StarletteHTTPException):
- def __init__(
- self,
- status_code: int,
- detail: Any = None,
- headers: Optional[Dict[str, Any]] = None,
- ) -> None:
- super().__init__(status_code=status_code, detail=detail)
- self.headers = headers
-
-
- RequestErrorModel: Type[BaseModel] = create_model("Request")
- WebSocketErrorModel: Type[BaseModel] = create_model("WebSocket")
-
-
- class FastAPIError(RuntimeError):
- """
- A generic, FastAPI-specific error.
- """
-
-
- class RequestValidationError(ValidationError):
- def __init__(self, errors: Sequence[ErrorList], *, body: Any = None) -> None:
- self.body = body
- super().__init__(errors, RequestErrorModel)
-
-
- class WebSocketRequestValidationError(ValidationError):
- def __init__(self, errors: Sequence[ErrorList]) -> None:
- super().__init__(errors, WebSocketErrorModel)
|