Ruff fast-api-non-annotated-dependency (FAST002)
fast-api-non-annotated-dependency в Ruff проверяет код на предупреждение FAST002. Правило относится к группе FastAPI.
Почему это неправильно
В FastAPI это может сделать маршрут менее очевидным, сломать работу параметров или создать лишнее дублирование в объявлении API.
Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила fast-api-non-annotated-dependency и пример ниже.
Пример ошибки
from fastapi import Depends, FastAPI
app = FastAPI()
async def common_parameters(q: str | None = None, skip: int = 0, limit: int = 100):
return {"q": q, "skip": skip, "limit": limit}
@app.get("/items/")
async def read_items(commons: dict = Depends(common_parameters)):
return commons
Как правильно
from typing import Annotated
from fastapi import Depends, FastAPI
app = FastAPI()
async def common_parameters(q: str | None = None, skip: int = 0, limit: int = 100):
return {"q": q, "skip": skip, "limit": limit}
@app.get("/items/")
async def read_items(commons: Annotated[dict, Depends(common_parameters)]):
return commons
Автоисправление
Ruff может предложить автоисправление в некоторых случаях.
