feat: add flight_quality/parser.py

This commit is contained in:
2026-09-25 11:57:00 +08:00
parent e670b750be
commit 38b6092af6

17
flight_quality/parser.py Normal file
View File

@@ -0,0 +1,17 @@
import csv
from io import StringIO
from .model import Issue, Sample
def parse_csv(text: str) -> tuple[list[Sample], list[Issue]]:
samples, issues = [], []
reader = csv.DictReader(StringIO(text))
required = {"time_ms", "temperature_c", "voltage_v"}
if not reader.fieldnames or not required.issubset(reader.fieldnames):
return [], [Issue(1, "HEADER", "缺少必需列")]
for line, row in enumerate(reader, 2):
try:
samples.append(Sample(line, int(row["time_ms"]), float(row["temperature_c"]), float(row["voltage_v"])))
except (TypeError, ValueError):
issues.append(Issue(line, "PARSE", "数值缺失或格式错误"))
return samples, issues