Formatters factory
This commit is contained in:
27
redmine_reporter/formatters/base.py
Normal file
27
redmine_reporter/formatters/base.py
Normal file
@@ -0,0 +1,27 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import List
|
||||
from ..types import ReportRow
|
||||
|
||||
|
||||
class Formatter(ABC):
|
||||
"""
|
||||
Абстрактный базовый класс для всех форматтеров.
|
||||
Определяет общий интерфейс для форматирования отчета.
|
||||
"""
|
||||
|
||||
@abstractmethod
|
||||
def format(self, rows: List[ReportRow]) -> str:
|
||||
"""
|
||||
Форматирует список строк отчета в нужный формат.
|
||||
Возвращает строковое представление отчета.
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def save(self, rows: List[ReportRow], output_path: str) -> None:
|
||||
"""
|
||||
Сохраняет отформатированный отчет в файл по указанному пути.
|
||||
Для форматтеров, которые не поддерживают сохранение (например, консольные),
|
||||
можно вызывать `format` и записывать результат вручную.
|
||||
"""
|
||||
pass
|
||||
Reference in New Issue
Block a user