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