/
Ulyanoff
/
mlops1
Обзор
Документация
Войти
/
Ulyanoff
/
mlops1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/app/api/models.py
37 строк
2 KB
Artem Ivochkin
todo со ссылками на модуль с кодом
11 янв 2026, 18:45
11 янв 2026, 18:45
3ad959e
Код
Авторство
О чём код?
# -*- coding: utf-8 -*- from datetime import datetime from pydantic import BaseModel, ConfigDict, PositiveInt, Field, EmailStr, SecretStr from typing_extensions import Annotated class StrictModel(BaseModel): """Строгая модель, обычно наследуемся от неё. ОГРАНИЧЕНИЯ нельзя преобразовывать строки в цифры, дробные в целые, запрещены неописанные параметры, РАСШИРЕНИЕ можно построить объект не только из словаря как UserOut(**user_data), но и из другой модели UserOut.model_validate(user_db) (используется для валидации выдачи из SQLAlchemy) """ model_config = ConfigDict(coerce_numbers_to_str=False, extra='forbid', strict=True, from_attributes=True) class UserIn(StrictModel): """Модель пользователя для создания.""" name: Annotated[str, Field(min_length=3, max_length=64, examples=["Жора"])] email: EmailStr | None = None psw: SecretStr avatar: bytes | None = Field(None, description="Фоточка юзера", examples=["bytes: Аватарка"]) class UserOut(StrictModel): """Модель пользователя для выдачи.""" id: PositiveInt | None = None name: Annotated[str, Field(min_length=3, max_length=64, examples=["Федя"])] email: EmailStr | None = None psw: SecretStr avatar: bytes | None = Field(None, description="Фоточка юзера", examples=["bytes: Аватарка"]) time: datetime