from typing import Type from flask import Flask from common.utils.cache.base import CacheHandler class EveAICacheManager: """Cache manager with registration capabilities""" def __init__(self): self.model_region = None self.eveai_chat_workers_region = None self.eveai_workers_region = None self._handlers = {} def init_app(self, app: Flask): """Initialize cache regions""" from common.utils.cache.regions import create_cache_regions self.model_region, self.eveai_chat_workers_region, self.eveai_workers_region = create_cache_regions(app) # Initialize all registered handlers with their regions for handler_class, region_name in self._handlers.items(): region = getattr(self, f"{region_name}_region") handler_instance = handler_class(region) setattr(self, handler_class.handler_name, handler_instance) def register_handler(self, handler_class: Type[CacheHandler], region: str): """Register a cache handler class with its region""" if not hasattr(handler_class, 'handler_name'): raise ValueError("Cache handler must define handler_name class attribute") self._handlers[handler_class] = region