Spaces:
Runtime error
Runtime error
| import sys | |
| import os | |
| from pathlib import Path | |
| from functools import wraps | |
| from loguru import logger | |
| from rich.progress import Progress, SpinnerColumn, TextColumn | |
| def setup_logger(log_file): | |
| """Set up the logger with a file and console handler.""" | |
| os.makedirs(Path(log_file).parent, exist_ok=True) | |
| logger.remove() | |
| logger.add( | |
| sys.stderr, | |
| 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>", | |
| ) | |
| logger.add(log_file, rotation="1MB", retention="7 days", encoding="utf-8") | |
| def task_wrapper(func): | |
| """Wrapper to log the start and end of a task.""" | |
| def wrapper(*args, **kwargs): | |
| func_name = func.__name__ | |
| logger.info(f"Starting {func_name}") | |
| try: | |
| result = func(*args, **kwargs) | |
| logger.info(f"Finished {func_name}") | |
| return result | |
| except Exception as e: | |
| logger.exception(f"Error in {func_name}: {str(e)}") | |
| raise | |
| return wrapper | |
| def get_rich_progress(): | |
| """Get a Rich Progress object.""" | |
| return Progress( | |
| SpinnerColumn(), | |
| TextColumn("[progress.description]{task.description}"), | |
| transient=True, | |
| ) | |