Files
AI-Video/api/dependencies.py
2025-11-07 16:59:12 +08:00

46 lines
1.0 KiB
Python

"""
FastAPI Dependencies
Provides dependency injection for ReelForgeCore and other services.
"""
from typing import Annotated
from fastapi import Depends
from loguru import logger
from reelforge.service import ReelForgeCore
# Global ReelForge instance
_reelforge_instance: ReelForgeCore = None
async def get_reelforge() -> ReelForgeCore:
"""
Get ReelForge core instance (dependency injection)
Returns:
ReelForgeCore instance
"""
global _reelforge_instance
if _reelforge_instance is None:
_reelforge_instance = ReelForgeCore()
await _reelforge_instance.initialize()
logger.info("✅ ReelForge initialized for API")
return _reelforge_instance
async def shutdown_reelforge():
"""Shutdown ReelForge instance"""
global _reelforge_instance
if _reelforge_instance:
logger.info("Shutting down ReelForge...")
_reelforge_instance = None
# Type alias for dependency injection
ReelForgeDep = Annotated[ReelForgeCore, Depends(get_reelforge)]