Files
breakpilot-lehrer/backend-lehrer/services/__init__.py
Benjamin Admin cba877c65a
Some checks failed
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-school (push) Successful in 37s
CI / test-go-edu-search (push) Successful in 35s
CI / test-python-klausur (push) Failing after 2m41s
CI / test-python-agent-core (push) Successful in 30s
CI / test-nodejs-website (push) Successful in 38s
Restructure: Move final 16 root files into packages (backend-lehrer)
classroom/ (+2): state_engine_api, state_engine_models
vocabulary/ (2): api, db
worksheets/ (2): api, models
services/  (+6): audio, email, translation, claude_vision, ai_processor, story_generator
api/        (4): school, klausur_proxy, progress, user_language

Only main.py + config.py remain at root. 16 shims added.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 22:50:37 +02:00

31 lines
1.2 KiB
Python

# 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"]