diff --git a/fastapi/exceptions.py b/fastapi/exceptions.py index 17e3202b8..9476fe9cb 100644 --- a/fastapi/exceptions.py +++ b/fastapi/exceptions.py @@ -5,12 +5,14 @@ from starlette.exceptions import HTTPException as StarletteHTTPException from starlette.exceptions import WebSocketException as StarletteWebSocketException from typing_extensions import Annotated, Doc + class EndpointContext(TypedDict, total=False): function: str path: str file: str line: int + class HTTPException(StarletteHTTPException): """ An HTTP exception you can raise in your own code to show errors to the client. diff --git a/fastapi/routing.py b/fastapi/routing.py index 546845701..b8598d7a8 100644 --- a/fastapi/routing.py +++ b/fastapi/routing.py @@ -243,6 +243,7 @@ def _extract_endpoint_context(func: Any) -> EndpointContext: _endpoint_context_cache[func_id] = ctx return ctx + async def serialize_response( *, field: Optional[ModelField] = None, @@ -354,7 +355,11 @@ def get_request_handler( ) # Extract endpoint context for error messages - endpoint_ctx = _extract_endpoint_context(dependant.call) if dependant.call else EndpointContext() + endpoint_ctx = ( + _extract_endpoint_context(dependant.call) + if dependant.call + else EndpointContext() + ) if dependant.path: endpoint_ctx["path"] = f"{request.method} {dependant.path}" @@ -480,7 +485,11 @@ def get_websocket_app( embed_body_fields: bool = False, ) -> Callable[[WebSocket], Coroutine[Any, Any, Any]]: async def app(websocket: WebSocket) -> None: - endpoint_ctx = _extract_endpoint_context(dependant.call) if dependant.call else EndpointContext() + endpoint_ctx = ( + _extract_endpoint_context(dependant.call) + if dependant.call + else EndpointContext() + ) if dependant.path: endpoint_ctx["path"] = f"WS {dependant.path}"