Source code for gh_issue_validator.checks._base

from abc import ABC, abstractmethod

from gh_issue_validator.markdown import _parse_segments
from gh_issue_validator.report import ValidationReport
from gh_issue_validator.types import SegmentsMap


[docs] class ValidationCheck(ABC):
[docs] @abstractmethod def check(self, *, segments: SegmentsMap, report: ValidationReport) -> None: """Apply the check to the document and report issues."""
[docs] class Validator: """Entrypoint for registering and executing checks on a Markdown document.""" def __init__(self, *, checks: list[ValidationCheck]) -> None: self.checks = checks
[docs] def validate(self, *, markdown: str) -> ValidationReport: """Run all validation checks on `markdown`.""" report = ValidationReport() segments = _parse_segments(markdown) for check in self.checks: check.check(segments=segments, report=report) return report