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

1"""Abstract base class for output handlers.""" 

2import abc 

3from pathlib import Path 

4from typing import List 

5 

6 

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()") 

12 

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. 

16  

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()")