Source code for dataio.validate.reports.renderers
from __future__ import annotations
from dataio.validate.reports.models import ValidationResult
[docs]
def render_text_summary(result: ValidationResult) -> str:
lines = [
f"status: {result.status}",
f"dataset kind: {result.dataset_kind}",
f"metadata spec version: {result.metadata_spec_version or 'unknown'}",
f"errors: {result.summary.errors}",
f"warnings: {result.summary.warnings}",
f"rows checked: {result.summary.rows_checked}",
f"tables checked: {result.summary.tables_checked}",
]
if result.findings:
lines.append("")
lines.append("findings:")
for finding in result.findings:
location: list[str] = []
if finding.table:
location.append(f"table={finding.table}")
if finding.row is not None:
location.append(f"row={finding.row}")
if finding.field:
location.append(f"field={finding.field}")
suffix = f" ({', '.join(location)})" if location else ""
lines.append(f"- [{finding.severity}] {finding.code}: {finding.message}{suffix}")
return "\n".join(lines)
[docs]
def render_markdown_summary(result: ValidationResult) -> str:
lines = [
"# Validation Result",
"",
f"- Status: `{result.status}`",
f"- Dataset kind: `{result.dataset_kind}`",
f"- Metadata spec version: `{result.metadata_spec_version or 'unknown'}`",
f"- Errors: `{result.summary.errors}`",
f"- Warnings: `{result.summary.warnings}`",
f"- Rows checked: `{result.summary.rows_checked}`",
f"- Tables checked: `{result.summary.tables_checked}`",
]
if result.findings:
lines.extend(["", "## Findings"])
for finding in result.findings:
lines.append(f"- **{finding.severity.upper()}** `{finding.code}`: {finding.message}")
return "\n".join(lines)