Introduce core library model

This commit is contained in:
Philip Guzman
2026-06-30 10:10:14 -07:00
parent 508eecd0bd
commit 09167e44c7
9 changed files with 108 additions and 32 deletions
+7 -2
View File
@@ -1,9 +1,13 @@
from collections import Counter, defaultdict
from pathlib import Path
from typing import Iterable
import csv
from serato_doctor.models.reference import ReferenceResult
def write_missing_report(rows: list[dict], out: Path) -> None:
def write_missing_report(results: Iterable[ReferenceResult], out: Path) -> None:
rows = [result.as_row() for result in results]
missing = [r for r in rows if not r["exists_by_filename"]]
crate_counts = Counter(r["crate"] for r in missing)
@@ -32,7 +36,8 @@ def write_missing_report(rows: list[dict], out: Path) -> None:
f.write(f"- {name}\n")
def write_csv(rows: list[dict], out: Path) -> None:
def write_csv(results: Iterable[ReferenceResult], out: Path) -> None:
rows = [result.as_row() for result in results]
with out.open("w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(
f,