students_folder.Zotov_folder.lab_2 package

Submodules

students_folder.Zotov_folder.lab_2.Profile module

class students_folder.Zotov_folder.lab_2.Profile.Profile(*, user_id: int, name: str, surname: str, age: int, salary: int)[исходный код]

Базовые классы: User

Модель профиля пользователя, расширяющая базовую модель User.

Наследует все поля и валидации от класса User (user_id, name, surname, age) и добавляет дополнительное поле salary.

Атрибуты:
salary (int): Заработная плата пользователя. Должна быть целым числом.

Отсутствует явная валидация в текущей реализации, но может быть добавлена при необходимости.

Конфигурация:

extra=»forbid»: Запрещает передачу полей, не объявленных в модели (включая унаследованные от User). Любое неизвестное поле вызовет исключение ValidationError.

Пример:
>>> profile = Profile(
...     user_id=1,
...     name="Анна",
...     surname="Смирнова",
...     age=25,
...     salary=75000
... )
>>> print(profile)
user_id=1 name='Анна' surname='Смирнова' age=25 salary=75000
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

salary: int

students_folder.Zotov_folder.lab_2.User module

class students_folder.Zotov_folder.lab_2.User.User(*, user_id: int, name: str, surname: str, age: int)[исходный код]

Базовые классы: BaseModel

Модель пользователя с валидацией возраста.

Атрибуты:

user_id (int): Уникальный идентификатор пользователя. name (str): Имя пользователя. surname (str): Фамилия пользователя. age (int): Возраст пользователя. Должен быть строго больше 18.

Конфигурация:

extra=»forbid»: Запрещает передачу дополнительных полей, не объявленных в модели. При попытке передать неизвестное поле будет вызвано исключение ValidationError.

Валидация:

Поле age проходит кастомную валидацию через метод is_pos. Если значение возраста меньше или равно 18, выбрасывается исключение ValueError с соответствующим сообщением.

Пример:
>>> user = User(user_id=1, name="Иван", surname="Иванов", age=25)
>>> print(user)
user_id=1 name='Иван' surname='Иванов' age=25
>>> User(user_id=2, name="Петр", surname="Петров", age=16)
Traceback (most recent call last):
...
pydantic_core._pydantic_core.ValidationError: 1 validation error for User
age
  16 младше 18 [type=value_error, input_value=16, input_type=int]
age: int
classmethod is_pos(value: int) int[исходный код]

Проверяет, что возраст пользователя строго больше 18.

Параметры:

value (int) – Значение возраста для валидации.

Результат:

Валидное значение возраста.

Тип результата:

int

Исключение:

ValueError – Если возраст меньше или равен 18.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
surname: str
user_id: int

Module contents