from app.core.freeturn import FreeTurnBackend from app.core.manager import EngineManager from app.core.native import NativeEngineBackend from app.core.registry import BackendRegistry from app.core.signbox import SignBoxBackend from app.models import EngineKind def build_engine_manager(native_bridge=None) -> EngineManager: registry = BackendRegistry() if native_bridge is None: registry.register(EngineKind.SIGNBOX, SignBoxBackend) registry.register(EngineKind.FREETURN, FreeTurnBackend) else: registry.register( EngineKind.SIGNBOX, lambda: NativeEngineBackend(EngineKind.SIGNBOX, native_bridge), ) registry.register( EngineKind.FREETURN, lambda: NativeEngineBackend(EngineKind.FREETURN, native_bridge), ) return EngineManager(registry)