import logging from pathlib import Path def setup_logger(name: str, log_file: Path = None, level=logging.INFO): """Sets up a logger with the given name.""" logger = logging.getLogger(name) logger.setLevel(level) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') if log_file: file_handler = logging.FileHandler(log_file) file_handler.setFormatter(formatter) logger.addHandler(file_handler) stream_handler = logging.StreamHandler() stream_handler.setFormatter(formatter) logger.addHandler(stream_handler) return logger def ensure_directory(path: Path): """Ensures a directory exists.""" if not path.exists(): path.mkdir(parents=True, exist_ok=True)