Coverage for domain / core / output_handler.py: 100.00%
8 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-07 00:07 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-07 00:07 +0000
1"""Abstract base class for output handlers."""
2import abc
3from pathlib import Path
4from typing import List
7class OutputHandler(metaclass=abc.ABCMeta):
8 """Abstract Base Class for different output formats."""
9 @abc.abstractmethod
10 def save(self, content: str, destination: Path):
11 raise NotImplementedError("Subclasses must implement save()")
13 @abc.abstractmethod
14 def save_multiple(self, contents: List[str], destination: Path, source_name: str):
15 """Save multiple content pieces (pages/chapters) as separate numbered files.
17 Args:
18 contents: List of content strings to save
19 destination: Base path for output files
20 source_name: Original source file name for naming output files
21 """
22 raise NotImplementedError("Subclasses must implement save_multiple()")