"""Base formatter class.""" from abc import ABC, abstractmethod from typing import Any, Dict, List, TextIO class OutputFormatter(ABC): """Abstract base class for output formatters.""" def __init__(self, output: TextIO = None): self.output = output @abstractmethod def format(self, data: Any) -> str: """Format data for output.""" pass def write(self, text: str) -> None: """Write to output stream.""" if self.output: self.output.write(text) else: print(text, end="") def flush(self) -> None: """Flush output stream.""" if self.output: self.output.flush()