From: Sebastián Ramírez Date: Tue, 2 Dec 2025 13:43:31 +0000 (-0800) Subject: ♻️ Refactor internals, update `is_coroutine` check to reuse internal supported varian... X-Git-Tag: 0.123.5~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=247ef32e790ef296d8febc3fbc639849ff24b1a5;p=thirdparty%2Ffastapi%2Ffastapi.git ♻️ Refactor internals, update `is_coroutine` check to reuse internal supported variants (unwrap, check class) (#14434) --- diff --git a/fastapi/routing.py b/fastapi/routing.py index a8e12eb607..94e8b07221 100644 --- a/fastapi/routing.py +++ b/fastapi/routing.py @@ -80,9 +80,9 @@ from starlette.websockets import WebSocket from typing_extensions import Annotated, deprecated if sys.version_info >= (3, 13): # pragma: no cover - from inspect import iscoroutinefunction + pass else: # pragma: no cover - from asyncio import iscoroutinefunction + pass # Copy of starlette.routing.request_response modified to include the @@ -308,7 +308,7 @@ def get_request_handler( embed_body_fields: bool = False, ) -> Callable[[Request], Coroutine[Any, Any, Response]]: assert dependant.call is not None, "dependant.call must be a function" - is_coroutine = iscoroutinefunction(dependant.call) + is_coroutine = dependant.is_coroutine_callable is_body_form = body_field and isinstance( body_field.field_info, (params.Form, temp_pydantic_v1_params.Form) )