/
Gleb_Andreevi4
/
Master_class
Обзор
Документация
Войти
/
Gleb_Andreevi4
/
Master_class
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/models.py
50 строк
2 KB
Glebastis
Модели pydantic и Функции проверки корректности моделей
03 мар 2025, 13:22
03 мар 2025, 13:22
ac37348
Код
Авторство
О чём код?
from pydantic import BaseModel, ValidationError, validator from uuid import UUID from datetime import date class FilmModel(BaseModel): id: UUID date: date row: int place: int name: str # Ошибки валидации выводим на понятном языке @validator('id') def check_id(cls, value): if not isinstance(value, UUID): raise ValueError("ID должен быть UUID") return value @validator('date') def check_date(cls, value): if value.weekday() == 0: raise ValueError("Показы не проводятся по понедельникам") return value @validator('row') def check_row(cls, value): if not isinstance(value, int) or value <= 0: raise ValueError("Номер ряда должен быть положительным целым числом") return value @validator('place') def check_place(cls, value): if not isinstance(value, int) or value <= 0: raise ValueError("Номер места должен быть положительным целым числом") return value @validator('name') def check_name(cls, value, values, **kwargs): if value not in ['Аватар', 'Матрица', 'Брат 2', 'Лило и Стич', 'История игрушек', 'Кощей']: raise ValueError(f"Данный фильм не показывают в нашем кинотеатре") return value class DayModel(BaseModel): date: date @validator('date') def check_date(cls, value): if value.weekday() == 0: raise ValueError("Показы не проводятся по понедельникам") return value