Per-file extraction result. For SUCCESS, ``mp`` and ``raw`` are populated. For SKIPPED/FAILED, ``error`` describes why; ``stats`` may still carry prep-phase metrics (``plain_text_len``, ``chunks``). Extractors set ``gz_path`` on returned results. Error/skip entries are constru
| 68 | |
| 69 | @dataclass |
| 70 | class ExtractionResult: |
| 71 | """Per-file extraction result. |
| 72 | |
| 73 | For SUCCESS, ``mp`` and ``raw`` are populated. |
| 74 | For SKIPPED/FAILED, ``error`` describes why; ``stats`` may still carry |
| 75 | prep-phase metrics (``plain_text_len``, ``chunks``). |
| 76 | |
| 77 | Extractors set ``gz_path`` on returned results. Error/skip entries |
| 78 | are constructed with it by the runner. |
| 79 | """ |
| 80 | |
| 81 | mp: ParsedManpage | None = None |
| 82 | raw: RawManpage | None = None |
| 83 | stats: ExtractionStats = field(default_factory=ExtractionStats) |
| 84 | gz_path: str = "" |
| 85 | outcome: ExtractionOutcome = ExtractionOutcome.SUCCESS |
| 86 | error: str | None = None |
| 87 | #: Classification of the skip/failure, set at the throw site. ``None`` |
| 88 | #: for SUCCESS, or for legacy callers that didn't tag the exception. |
| 89 | reason_class: FailureReason | None = None |
| 90 | |
| 91 | |
| 92 | @dataclass |
no outgoing calls