Some checks failed
- Replaced deprecated typing.Dict/List/Tuple with native types (UP035) - Removed unused imports across all modules - Fixed unused variables by replacing with _ prefix - Added missing Optional type imports - Reorganized imports for proper sorting (I001) - Applied black formatting to all source files
29 lines
694 B
Python
29 lines
694 B
Python
'''Base formatter class.'''
|
|
|
|
from abc import ABC, abstractmethod
|
|
from typing import Any, Optional, TextIO
|
|
|
|
|
|
class OutputFormatter(ABC):
|
|
'''Abstract base class for output formatters.'''
|
|
|
|
def __init__(self, output: Optional[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()
|