INNER CODE UNIT · Python
_parse_datetime
caipe-io/ai-platform-engineering · ai_platform_engineering/audit_service/main.py:137
def _parse_datetime(value: str | None, *, default: datetime) -> datetime:
if value is None:
return default
text = value.strip()
if text.endswith("Z"):
text = f"{text[:-1]}+00:00"
try:
parsed = datetime.fromisoformat(text)
except ValueError as exc:
raise HTTPException(status_code=400, detail="invalid ISO timestamp") from exc
if parsed.tzinfo is None:
parsed = parsed.replace(tzinfo=timezone.utc)
return parsed.astimezone(timezone.utc)
def _parse_window(value: str | None) -> timedelta | None:
if value is None:
return None