"""Model loading with mock/real switching based on environment.""" from typing import Union from config.settings import settings # Type alias for model stack ModelStack = Union["MockModelStack", "RealModelStack"] # noqa: F821 # Lazy singleton _model_stack: ModelStack | None = None def get_model_stack() -> ModelStack: """Get model stack based on environment configuration.""" if settings.mock_models: from models.mock import MockModelStack return MockModelStack().load_all() else: from models.real import RealModelStack return RealModelStack().load_all() def get_models() -> ModelStack: """Get or create the singleton model stack.""" global _model_stack if _model_stack is None: _model_stack = get_model_stack() return _model_stack def reset_models() -> None: """Reset the model stack (useful for testing).""" global _model_stack _model_stack = None