diff --git a/fastapi/dependencies/utils.py b/fastapi/dependencies/utils.py index b73473484..2c51f2a74 100644 --- a/fastapi/dependencies/utils.py +++ b/fastapi/dependencies/utils.py @@ -64,6 +64,12 @@ from starlette.responses import Response from starlette.websockets import WebSocket from typing_extensions import Annotated, get_args, get_origin +try: + from typing import TypeAliasType +except ImportError: + TypeAliasType = None + + multipart_not_installed_error = ( 'Form data requires "python-multipart" to be installed. \n' 'You can install "python-multipart" with: \n\n' @@ -325,6 +331,9 @@ def analyze_param( depends = None type_annotation: Any = Any use_annotation: Any = Any + if TypeAliasType is not None and isinstance(annotation, TypeAliasType): + # unpack in case py3.12 type syntax is used + annotation = annotation.__value__ if annotation is not inspect.Signature.empty: use_annotation = annotation type_annotation = annotation