normalize_isodatetime¶
- safir.pydantic.normalize_isodatetime(v)¶
Pydantic field validator for datetime fields in ISO format.
This field validator requires the ISO 8601 date and time format with
Zas the time zone (YYYY-MM-DDTHH:MM:SSZ). This format is compatible with Kubernetes and the ISO UWS standard and is the same format produced bysafir.datetime.isodatetime. It should be used when the ambiguous formats supported by Pydantic by default (such as dates and times without time zone information) shouldn’t be allowed.- Parameters:
- Returns:
- Return type:
datetime.datetime or None
Examples
Here is a partial model that uses this function as a field validator.
class Info(BaseModel): last_used: datetime | None = Field( None, title="Last used", description="Date and time last used", examples=["2023-01-25T15:44:34Z"], ) _normalize_last_used = field_validator("last_used", mode="before")( normalize_isodatetime )