/
pavlovado
/
testingSubsystem
Обзор
Документация
Войти
/
pavlovado
/
testingSubsystem
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
mockpatch/models.py
62 строки
3 KB
pavlovado
final
25 май 2025, 18:04
25 май 2025, 18:04
e2e1bf8
Код
Авторство
О чём код?
from pydantic_settings import BaseSettings, SettingsConfigDict from pydantic import BaseModel, Field from uuid import UUID from typing import List, Optional from typing_extensions import TypedDict from datetime import datetime # Класс для конфигурации Uvicorn сервера с префиксом переменных окружения class UvicornSettings(BaseSettings): model_config = SettingsConfigDict(env_prefix="uvicorn_") # Префикс для env-переменных [1][2] # Параметры хоста и порта сервера host: str = "localhost" # Хост по умолчанию port: int = 8080 # Порт по умолчанию log_level: str = "info" # Уровень логирования server_header: bool = False # Отключение заголовка Server # Конфигурация FastAPI с настройкой директории статических файлов class Fastings(BaseSettings): model_config = SettingsConfigDict(env_prefix="fastapi_") # Префикс для FastAPI переменных [1][2] directory: str = "static" # Путь к статическим файлам # Модель для хранения данных ответа респондента class ConductedAnswers(BaseModel): answer_uuid: str = Field(..., description="Ид ответа в виде строки UUID") # Уникальный идентификатор ответа answer_text: Optional[str] = Field( # Опциональный текстовый ответ None, description="Текст ответа (если он свободный)" ) # Модель вопроса с ответами в проведенном опросе class ConductedQuestions(BaseModel): question_uuid: UUID = Field(..., description="Ид вопроса") # Уникальный идентификатор вопроса question_type: str = Field(..., description="Тип вопроса") # Тип вопроса answers: List[ConductedAnswers] = Field(..., description="Ответы респондента") # Список ответов респондента на этот вопрос # Опциональный список UUID правильных ответов correct_answers: Optional[List[UUID]] = Field( None, description="UUID правильных ответов (для radio/checkbox)" ) # Опциональный список ключевых слов для проверки текстовых ответов keywords: Optional[List[str]] = Field( None, description="Ключевые слова (для проверки текстовых ответов)" ) # Основная модель данных проведенного опроса class ConductedSurvey(BaseModel): survey_uuid: UUID = Field( # UUID опроса (часть составного ключа) ..., description="Второй идентификатор (часть составного ключа)" ) respondent_id: str = Field( # ID респондента (часть составного ключа) ..., description="Первый идентификатор (часть составного ключа)" ) questions: List[ConductedQuestions] = Field( # Список вопросов с ответами ..., description="Прочие данные опроса" )