parse_saby/app/validation.py

39 lines
1.1 KiB
Python

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