/
Sturon
/
Diplom
Обзор
Документация
Войти
/
Sturon
/
Diplom
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
analyzer/app/runtime_models.py
65 строк
3 KB
Sturon
Initial
03 июн 2026, 15:01
03 июн 2026, 15:01
17b44a2
Код
Авторство
О чём код?
from pydantic import BaseModel, ConfigDict, Field from app.models import EvaluationResponse class AnalyzerConfig(BaseModel): model_config = ConfigDict(populate_by_name=True) backend_url: str = Field(default="http://localhost:8080", alias="backendUrl") camera_id: int | None = Field(default=None, alias="cameraId") camera_name: str | None = Field(default=None, alias="cameraName") watch_dir: str = Field(default="data/inbox", alias="watchDir") max_defects: int = Field(default=0, alias="maxDefects") min_confidence: float = Field(default=0.5, alias="minConfidence") brightness_min: float = Field(default=8.0, alias="brightnessMin") brightness_max: float = Field(default=247.0, alias="brightnessMax") max_dark_ratio: float = Field(default=0.35, alias="maxDarkRatio") max_bright_ratio: float = Field(default=0.35, alias="maxBrightRatio") min_texture: float = Field(default=0.0, alias="minTexture") difference_threshold: int = Field(default=35, alias="differenceThreshold") min_defect_area: int = Field(default=80, alias="minDefectArea") alignment_search_radius: int = Field(default=12, alias="alignmentSearchRadius") alignment_coarse_step: int = Field(default=4, alias="alignmentCoarseStep") edge_difference_weight: float = Field(default=1.7, alias="edgeDifferenceWeight") structured_pixel_weight: float = Field(default=0.85, alias="structuredPixelWeight") class CameraCreateRequest(BaseModel): name: str class SettingsRequest(BaseModel): model_config = ConfigDict(populate_by_name=True) backend_url: str | None = Field(default=None, alias="backendUrl") watch_dir: str | None = Field(default=None, alias="watchDir") class ProfileState(BaseModel): model_config = ConfigDict(populate_by_name=True) active: bool id: int | None = None name: str | None = None status: str | None = None rois_count: int = Field(default=0, alias="roisCount") class ProcessingState(BaseModel): model_config = ConfigDict(populate_by_name=True) state: str = "idle" message: str | None = None file_name: str | None = Field(default=None, alias="fileName") class AnalyzerStateResponse(BaseModel): model_config = ConfigDict(populate_by_name=True) config: AnalyzerConfig profile: ProfileState processing: ProcessingState last_result: EvaluationResponse | None = Field(default=None, alias="lastResult") last_image_url: str | None = Field(default=None, alias="lastImageUrl") backend_item_url: str | None = Field(default=None, alias="backendItemUrl")