# Backend Services Module # Shared services for PDF generation, file processing, and more # PDFService requires WeasyPrint which needs system libraries (libgobject, etc.) # Make import optional for environments without these dependencies (e.g., CI) try: from .pdf_service import PDFService _pdf_available = True except (ImportError, OSError) as e: PDFService = None # type: ignore _pdf_available = False # FileProcessor requires OpenCV which needs libGL.so.1 # Make import optional for CI environments try: from .file_processor import FileProcessor _file_processor_available = True except (ImportError, OSError) as e: FileProcessor = None # type: ignore _file_processor_available = False # Lazy-loaded service modules (imported on demand to avoid heavy deps at startup): # .audio — TTS audio generation for vocabulary words # .email — Email/SMTP service # .translation — Batch vocabulary translation via Ollama # .claude_vision — Claude Vision API for worksheet analysis # .ai_processor — Legacy shim for ai_processor/ package # .story_generator — Story generation from vocabulary words __all__ = ["PDFService", "FileProcessor"]