typing.Annotatedtyping.Annotated — это утилита для type hints в Python, которая позволяет тебе присоединять дополнительные метаданные к существующему типу. Она не меняет сам тип — она просто обогащает его дополнительной информацией, которую инструменты и фреймворки могут читать и использовать.
from typing import Annotated
Annotated[actual_type, metadata1, metadata2, ...]
int, str)FastAPI использует Annotated для объявления правил валидации и dependency injection прямо в сигнатурах функций, сохраняя код чистым и декларативным:
from typing import Annotated
from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/items")
def get_items(q: Annotated[str, Query(min_length=3, max_length=50)]):
return {"query": q}
Здесь Query(min_length=3, max_length=50) — это метаданные. FastAPI читает их во время выполнения, чтобы автоматически валидировать входящий параметр запроса — никакого ручного кода валидации не нужно.
typing.Annotated работает как стандартизованный носитель метаданных в системе типов. Она держит логику валидации, ограничения и инструкции для фреймворка вместе с объявлением типа, делая код более читаемым и удобным в поддержке.
typing.Annotated изменяет сам базовый тип, преобразуя его в новый тип, который объединяет и исходный тип, и метаданные.
Новый — ещё не проверен сообществом
Вы