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