| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- """
- 工具函数模块
- 提供常用的辅助函数
- """
- 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
|