import datetime from typing import Annotated from fastapi import Depends, HTTPException, status def date_parser(date: str) -> datetime.date: if date == "today": return datetime.date.today() elif date == "tomorrow": return datetime.date.today() + datetime.timedelta(days=1) elif date.startswith("day-"): days = int(date.split("-")[-1]) return datetime.date.today() + datetime.timedelta(days=days) else: try: return datetime.date.strptime(date, "%Y-%m-%d") except ValueError as exc: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail={"date": f"{exc}"}, ) from exc DateDepends = Annotated[datetime.date, Depends(date_parser)]