from pydantic import BaseModel, field_validator from datetime import date from dateutil import parser class DataValid(BaseModel): id: int organ: str names: str date_from: date date_to: date | None ver: str # Дополнительный конструктор для списка @classmethod def from_list(cls, data_list: list): return cls( id=data_list[0], organ=data_list[1], names=data_list[2], date_from=data_list[3], date_to=data_list[4], ver=data_list[5] ) @field_validator('date_from', mode='before') def parse_date_to(cls, date): if isinstance(date, str): try: return parser.parse(date) except (ValueError, TypeError): return date return date @field_validator('date_to', mode='before') def parse_date_from(date): if isinstance(date, str): try: return parser.parse(date) except(ValueError, TypeError): return date return date