from __future__ import annotations from typing import Any from app.ocr.base import OcrEngine from app.ocr.none import NoOcrEngine from app.ocr.paddle import PaddleOcrEngine from app.ocr.tesseract import TesseractOcrEngine def create_ocr_engine(config: dict[str, Any]) -> OcrEngine: ocr_cfg = config.get("ocr", {}) if not ocr_cfg.get("enabled", True): return NoOcrEngine(ocr_cfg) engine = str(ocr_cfg.get("engine", "tesseract")).lower() if engine in {"none", "off", "disabled"}: return NoOcrEngine(ocr_cfg) if engine == "tesseract": return TesseractOcrEngine(ocr_cfg) if engine == "paddle": return PaddleOcrEngine(ocr_cfg) raise ValueError(f"Nieznany silnik OCR: {engine}")