Add support for PEP695 TypeAliasType

This commit is contained in:
lokidev 2024-02-13 20:24:05 +01:00
parent a315048357
commit 85044cfd6f
1 changed files with 9 additions and 0 deletions

View File

@ -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