tianfeng_task_modules/services/component_service.py
2025-03-17 14:58:05 +08:00

42 lines
1.5 KiB
Python

"""
组件服务
"""
# services/component_service.py
from typing import Dict, Any, List
from core.component import ComponentFactory
from utils.logger import get_logger
# 获取日志记录器
logger = get_logger(__name__)
class ComponentService:
"""组件服务,负责组件的注册和管理"""
def __init__(self):
self.component_factory = ComponentFactory
def get_all_component_types(self) -> List[str]:
"""获取所有组件类型"""
return self.component_factory.get_component_types()
def register_component(self, component_type: str, component_class) -> bool:
"""注册组件"""
try:
# 使用装饰器注册组件
decorated_class = self.component_factory.register(component_type)(component_class)
logger.info(f"注册组件: {component_type} -> {decorated_class.__name__}")
return True
except Exception as e:
logger.error(f"注册组件失败: {component_type}, 错误: {str(e)}")
return False
def auto_discover_components(self, package_name: str = "components") -> None:
"""自动发现并注册组件"""
try:
self.component_factory.auto_discover(package_name)
logger.info(f"自动发现组件完成: {package_name}")
except Exception as e:
logger.error(f"自动发现组件失败: {package_name}, 错误: {str(e)}")
raise