""" 工具函数模块 提供常用的辅助函数 """ import json import os from datetime import datetime from typing import Any, Dict, List def load_config(config_path: str) -> Dict[str, Any]: """ 加载配置文件 Args: config_path: 配置文件路径 Returns: 配置字典 """ # TODO: 支持多种配置文件格式 with open(config_path, 'r') as f: return json.load(f) def save_config(config: Dict[str, Any], config_path: str) -> None: """ 保存配置到文件 Args: config: 配置字典 config_path: 配置文件路径 """ with open(config_path, 'w') as f: json.dump(config, f, indent=2) def get_timestamp() -> str: """ 获取当前时间戳 Returns: ISO格式的时间戳字符串 """ return datetime.now().isoformat() def ensure_dir(directory: str) -> None: """ 确保目录存在,不存在则创建 Args: directory: 目录路径 """ if not os.path.exists(directory): os.makedirs(directory) def format_size(size_bytes: int) -> str: """ 格式化文件大小 Args: size_bytes: 字节数 Returns: 格式化后的大小字符串 """ # TODO: 优化格式化逻辑 for unit in ['B', 'KB', 'MB', 'GB', 'TB']: if size_bytes < 1024.0: return f"{size_bytes:.2f} {unit}" size_bytes /= 1024.0 return f"{size_bytes:.2f} PB" def validate_email(email: str) -> bool: """ 验证邮箱地址格式 Args: email: 邮箱地址 Returns: 是否有效 """ import re pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' return re.match(pattern, email) is not None