"""
设备工具函数模块

提供处理设备配置的辅助函数
"""

import json
from typing import Dict, Any

# 这里不能循环导入
# 在函数内部导入process_device_actions
# from unilabos.web.utils.action_utils import process_device_actions



def get_registry_info() -> Dict[str, Any]:
    """获取Registry相关路径信息

    Returns:
        包含Registry路径信息的字典
    """
    from unilabos.registry.registry import lab_registry
    from pathlib import Path

    registry_info = {}

    if lab_registry:
        # 获取所有registry路径
        if hasattr(lab_registry, "registry_paths") and lab_registry.registry_paths:
            # 保存所有注册表路径
            registry_info["paths"] = [str(path).replace("\\", "/") for path in lab_registry.registry_paths]

            # 获取设备和资源的相关路径
            for reg_path in lab_registry.registry_paths:
                base_path = Path(reg_path)

                # 检查设备目录
                devices_path = base_path / "devices"
                if devices_path.exists():
                    if "devices_paths" not in registry_info:
                        registry_info["devices_paths"] = []
                    registry_info["devices_paths"].append(str(devices_path).replace("\\", "/"))

                # 检查设备通信目录
                device_comms_path = base_path / "device_comms"
                if device_comms_path.exists():
                    if "device_comms_paths" not in registry_info:
                        registry_info["device_comms_paths"] = []
                    registry_info["device_comms_paths"].append(str(device_comms_path).replace("\\", "/"))

                # 检查资源目录
                resources_path = base_path / "resources"
                if resources_path.exists():
                    if "resources_paths" not in registry_info:
                        registry_info["resources_paths"] = []
                    registry_info["resources_paths"].append(str(resources_path).replace("\\", "/"))

    return registry_info
