""" Output formatting utilities for CLI presentation. """ import sys from typing import Any, Dict, List class OutputFormatter: """Handles output formatting and display.""" @staticmethod def success(message: str) -> None: """Display success message.""" print(f"✅ {message}") @staticmethod def info(message: str) -> None: """Display info message.""" print(f"📋 {message}") @staticmethod def warning(message: str) -> None: """Display warning message.""" print(f"⚠️ {message}") @staticmethod def error(message: str) -> None: """Display error message.""" print(f"❌ {message}") @staticmethod def header(title: str, separator: str = "=") -> None: """Display section header.""" print(title) print(separator * len(title)) print() @staticmethod def section(title: str) -> None: """Display section title.""" print(f"## {title}") print() @staticmethod def bullet_point(text: str, indent: int = 0) -> None: """Display bullet point.""" prefix = " " * indent print(f"{prefix}- {text}") @staticmethod def key_value(key: str, value: Any, indent: int = 0) -> None: """Display key-value pair.""" prefix = " " * indent print(f"{prefix}{key}: {value}") @staticmethod def empty_line() -> None: """Display empty line.""" print() @staticmethod def exit_with_error(message: str, exit_code: int = 1) -> None: """Display error and exit.""" OutputFormatter.error(message) sys.exit(exit_code) @staticmethod def format_file_list(files: List[str], title: str = "Files") -> None: """Format and display file list.""" print(f"📄 {title} ({len(files)}):") if files: for file in files: print(f" - {file}") else: print(" - No files found") print() @staticmethod def format_command_list(commands: List[str], title: str = "Commands") -> None: """Format and display command list.""" print(f"💡 {title}:") for command in commands: print(f" - {command}") print()