coverage.exclusions

Scan source text for LCOV exclusion markers (spec §8).

lcov’s geninfo already drops these regions from measured data; this scan exists so the renderer can show exclusions instead of leaving them indistinguishable from blank lines.

otto.coverage.exclusions.scan_excluded_lines(source: str, extra_markers: list[str] | None = None) set[int]

1-based line numbers excluded by markers (block bounds inclusive).