"""Schema helpers.""" from datetime import date from datetime import datetime def convert_to_date(value: datetime | date | None) -> date | None: """Ensure that the value is a date, converting if need be. Args: value (datetime | date | None): Value to validate Returns: date | None: Validated date Raises: ValueError: If the value isn't convertable to date """ if isinstance(value, datetime): return value.date() if isinstance(value, date) or value is None: return value if isinstance(value, str): return datetime.strptime(value, '%Y-%m-%d').date() raise ValueError(f"'{value}' is not a date-ish value")