From af57a7e8184730bc883a846d0dd4499ccd05da3a Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Mon, 2 Feb 2026 08:06:10 +0000 Subject: [PATCH] Add formatters: table, JSON, text and config --- loglens/formatters/base.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 loglens/formatters/base.py diff --git a/loglens/formatters/base.py b/loglens/formatters/base.py new file mode 100644 index 0000000..8bdb20d --- /dev/null +++ b/loglens/formatters/base.py @@ -0,0 +1,28 @@ +"""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()