Add formatters (table, JSON, text)
Some checks failed
Some checks failed
This commit is contained in:
@@ -1,13 +1,28 @@
|
||||
"""Base formatter class."""
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Any
|
||||
|
||||
from loglens.analyzers.analyzer import AnalysisResult
|
||||
from typing import Any, Optional, TextIO
|
||||
|
||||
|
||||
class Formatter(ABC):
|
||||
"""Base formatter class."""
|
||||
class OutputFormatter(ABC):
|
||||
"""Abstract base class for output formatters."""
|
||||
|
||||
def __init__(self, output: Optional[TextIO] = None):
|
||||
self.output = output
|
||||
|
||||
@abstractmethod
|
||||
def format(self, result: AnalysisResult) -> str:
|
||||
"""Format the analysis result."""
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user