Merge fx-2-born-digital-marks
This commit is contained in:
@@ -465,6 +465,17 @@ def _safe_confidence(value: Any = None) -> float:
|
||||
return 0.75
|
||||
|
||||
|
||||
def _safe_marks(value: Any = None) -> int:
|
||||
"""Parsed per-part marks → a non-negative int; unknown/None → 0 (image-only OCR has no marks yet)."""
|
||||
if isinstance(value, bool):
|
||||
return 0
|
||||
if isinstance(value, (int, float)):
|
||||
return max(0, int(value))
|
||||
if isinstance(value, str) and value.strip().isdigit():
|
||||
return int(value.strip())
|
||||
return 0
|
||||
|
||||
|
||||
def _margin_values(first_pass: Dict[str, Any], page_number: int) -> Dict[str, Optional[float]]:
|
||||
vals: Dict[str, Optional[float]] = {"left": None, "right": None, "top": None, "bottom": None}
|
||||
for m in first_pass.get("margins") or []:
|
||||
@@ -541,7 +552,7 @@ def _map_first_pass_to_rows(template_id: str, first_pass: Dict[str, Any], pdf_by
|
||||
top = max(float(y1), float(y2)); bottom = min(float(y1), float(y2))
|
||||
bounds = _box_to_canvas({"l": margins["left"], "r": margins["right"], "t": top, "b": bottom, "coord_origin": "BOTTOMLEFT"}, page_number, pages_geom)
|
||||
bounds = bounds or _box_to_canvas(band.get("label_box"), page_number, pages_geom)
|
||||
questions.append({"id": pid, "template_id": template_id, "parent_id": parent_id, "label": label, "order": len(questions), "max_marks": 0, "is_container": False, "bounds": bounds, "page": page_number, "source": "ai", "confirmed": False, "confidence": _safe_confidence(band.get("confidence")), "derivation": "docling-part-band-x-margins"})
|
||||
questions.append({"id": pid, "template_id": template_id, "parent_id": parent_id, "label": label, "order": len(questions), "max_marks": _safe_marks(band.get("marks")), "is_container": False, "bounds": bounds, "page": page_number, "source": "ai", "confirmed": False, "confidence": _safe_confidence(band.get("confidence")), "derivation": "docling-part-band-x-margins"})
|
||||
|
||||
default_qid = questions[0]["id"] if questions else _ai_id(template_id, "question", "auto")
|
||||
for page_key in sorted(pages_obj, key=lambda k: int(k)):
|
||||
|
||||
Reference in New Issue
Block a user