9 Abstract base class for all report generators.
12 from abc
import ABC, abstractmethod
14 from .CliOptions
import CliOptions
15 from .Scanners
import Scanners
20 Interface contract for report generators.
22 Every report class must accept ``cli_options`` and ``scanner`` at
23 construction time and implement :meth:`finalize_document` and
27 def __init__(self, cli_options: CliOptions, scanner: Scanners):
29 :param cli_options: Resolved CLI options for the current run.
30 :param scanner: Scanner instance holding scan results.
38 Process scan results and assemble the internal document model.
40 Called after all scans have completed but before writing.
46 Validate and serialize the report to *file_name*.
48 :param file_name: Destination path for the generated report.
49 :raises RuntimeError: If validation or serialization fails.
None finalize_document(self)
def __init__(self, CliOptions cli_options, Scanners scanner)
None write_report(self, str file_name)