🏗️ **Python 包结构规范化**: 1. **导入方式统一**: - 移除所有 sys.path.append() hack 方式 - 统一使用相对导入 (from ..config import settings) - 符合 Python 包管理最佳实践 2. **包结构简化**: - 简化 python_core/__init__.py,移除复杂依赖 - 避免包初始化时的循环导入问题 - 清理不必要的 try-except 导入逻辑 3. **模块运行方式**: - 支持标准的模块运行: python -m python_core.ai_video.video_generator - Rust 代码使用 -m 参数调用 Python 模块 - 相对导入在模块运行时正常工作 4. **涉及文件修改**: - python_core/__init__.py: 简化包初始化 - python_core/ai_video/video_generator.py: 相对导入 - python_core/ai_video/cloud_storage.py: 移除 fallback 逻辑 - python_core/ai_video/api_client.py: 统一相对导入 - python_core/video_processing/core.py: 相对导入 - python_core/audio_processing/core.py: 相对导入 - python_core/utils/logger.py: 相对导入 - python_core/services/*.py: 统一相对导入 - src-tauri/src/commands/ai_video.rs: 使用模块运行方式 5. **代码质量提升**: - 移除重复的 sys.path 操作 - 清理冗余的 try-except 导入 - 统一的错误处理方式 - 更清晰的模块依赖关系 ✅ **改进效果**: - 符合 Python 最佳实践 ✓ - 代码结构更清晰 ✓ - 易于维护和测试 ✓ - 消除 hack 式路径操作 ✓ - 支持标准模块运行 ✓ 现在整个 Python 包结构规范且易于维护!
48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
"""
|
|
Logging utilities for MixVideo V2
|
|
"""
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
from loguru import logger
|
|
|
|
import sys
|
|
import os
|
|
|
|
from ..config import settings
|
|
|
|
|
|
def setup_logger(name: str = None):
|
|
"""
|
|
Set up logger with appropriate configuration.
|
|
|
|
Args:
|
|
name: Logger name (optional)
|
|
|
|
Returns:
|
|
Configured logger instance
|
|
"""
|
|
# Remove default handler
|
|
logger.remove()
|
|
|
|
# Console handler
|
|
logger.add(
|
|
sys.stderr,
|
|
level=settings.log_level,
|
|
format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>",
|
|
colorize=True
|
|
)
|
|
|
|
# File handler
|
|
log_file = settings.temp_dir / settings.log_file
|
|
logger.add(
|
|
log_file,
|
|
level=settings.log_level,
|
|
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}",
|
|
rotation="10 MB",
|
|
retention="7 days",
|
|
compression="zip"
|
|
)
|
|
|
|
return logger
|