/
aastray
/
StudentPart
Обзор
Документация
Войти
/
aastray
/
StudentPart
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
API-lib/src/schemas/DataRequestSchemas/Base.py
133 строки
8 KB
aastray
Реализован функционал загрузки файлов и просмотра документов, удалены базовые эндпоинты, обновлена документация
10 янв 2026, 15:38
10 янв 2026, 15:38
4d47c55
Код
Авторство
О чём код?
from typing import Union, Any,Literal from pydantic import BaseModel, Field from abc import ABC from datetime import datetime class BaseField(BaseModel): """ Базовый класс для полей формы. Описывает общее поле с заголовком, которым будет именоваться поле при получении данных Атрибуты: title (str): Название или заголовок поля. Должен быть строкой. """ title: str """ ВАЖНАЯ РЕМАРКА при наследовании необходимо определять у всех дочерних классов атрибут type """ class BaseUserField(BaseField,ABC): """ Абстрактный базовый класс для полей пользовательского ввода. Данный класс определяет общую структуру и атрибуты, которые должны присутствовать у всех полей, предназначенных для взаимодействия с пользователем. Класс наследуется от BaseField и реализует интерфейс ABC, что делает его абстрактным. Атрибуты: description (str): Описание поля, отображаемое пользователю. Должно кратко объяснять назначение поля. tooltip (str | None): Подсказка, которая может отображаться рядом с полем. Используется для дополнительного пояснения. По умолчанию — None. isRequired (bool): Флаг, указывающий, является ли поле обязательным для заполнения. Если True — поле должно быть заполнено. По умолчанию — True. placeholder (str | None): Текст-заполнитель, отображаемый внутри поля ввода, когда оно пустое. По умолчанию — None. """ description:str tooltip: None | str = None isRequired: bool = True placeholder: None | str = None class NumberField(BaseUserField): """ Класс поля для ввода числовых значений с ограничениями по диапазону. Определяет поле ввода, предназначенное для работы с числами, и задаёт допустимый диапазон значений через минимальную и максимальную границы. Наследуется от BaseUserField, поэтому включает все его атрибуты, такие как описание, обязательность и подсказки. Атрибуты: maxValue (float): Максимально допустимое значение для ввода. Пользователь не может ввести число, превышающее это значение. minValue (float): Минимально допустимое значение для ввода. Пользователь не может ввести число, меньшее этого значения. """ maxValue: float minValue: float class BaseDataLakeField(BaseField,ABC): """ Абстрактный базовый класс для полей, подключающихся к хранилищу данных (Data Lake). Данный класс определяет общую структуру полей, которые предназначены для получения данных из хранилища данных с помощью запроса. Наследуется от BaseField и помечен как абстрактный с помощью ABC, что предотвращает его прямое создание. Атрибуты: nameDB (str): Название базы данных или источника данных в хранилище, из которого необходимо извлекать информацию. request (str): Запрос, используемый для получения данных из хранилища. Может представлять собой SQL-запрос или иной формат, в зависимости от реализации. """ nameDB: str request: str class ElementBox(BaseModel): """ Модель, представляющая группу элементов с заголовком, описанием и подсказкой. Используется для логической группировки интерфейсных элементов в пользовательском интерфейсе. Наследуется от BaseModel, что предполагает использование Pydantic для валидации данных. Атрибуты: name (str): Заголовок группы элементов. Отображается как название блока в интерфейсе. description (str): Описание группы, поясняющее её назначение или содержание. Может использоваться для информирования пользователя о контексте ввода. tooltip (str): Текст всплывающей подсказки, который отображается при наведении на элемент интерфейса. Служит для краткого пояснения назначения группы. """ name:str description:str tooltip:str class BoxField(BaseUserField,ABC): """ Абстрактный базовый класс для полей, представляющих группу элементов с возможностью выбора. Данная модель предназначена для отображения и управления набором элементов, сгруппированных в виде блоков (ElementBox). Позволяет задавать ограничения на минимальное и максимальное количество выбираемых элементов. Наследуется от BaseUserField и является абстрактным (ABC), что запрещает её прямое инстанцирование без реализации. Атрибуты: listElements (list[ElementBox]): Список объектов ElementBox, представляющих логические блоки элементов интерфейса. Каждый блок содержит заголовок, описание и подсказку. minPickedElements (int): Минимально допустимое количество выбранных элементов. По умолчанию — 1. Используется для валидации ввода. maxPickedElements (int): Максимально допустимое количество выбранных элементов. По умолчанию — 10 000 000. Позволяет ограничить выбор пользователя. """ listElements:list[ElementBox] minPickedElements: int=1 maxPickedElements: int= 10000000