From 387032511ea2be6536f32442d9276c84172a0135 Mon Sep 17 00:00:00 2001 From: Yiorgis Gozadinos Date: Fri, 8 May 2026 12:11:25 +0300 Subject: [PATCH] Simplify --- haiku_rag_slim/haiku/rag/client/processing.py | 7 +++---- haiku_rag_slim/haiku/rag/client/rebuild.py | 5 ++--- .../haiku/rag/store/models/document_item.py | 15 ++++++--------- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/haiku_rag_slim/haiku/rag/client/processing.py b/haiku_rag_slim/haiku/rag/client/processing.py index a56ff50f..8ccec652 100644 --- a/haiku_rag_slim/haiku/rag/client/processing.py +++ b/haiku_rag_slim/haiku/rag/client/processing.py @@ -33,10 +33,9 @@ def _warn_if_descriptions_missing( """ if not config.processing.conversion_options.picture_description.enabled: return - pictures = list(doc.pictures or []) - if not pictures: + if not doc.pictures: return - described = sum(1 for p in pictures if _picture_description_text(p)) + described = sum(1 for p in doc.pictures if _picture_description_text(p)) if described == 0: model = config.processing.conversion_options.picture_description.model logger.warning( @@ -46,7 +45,7 @@ def _warn_if_descriptions_missing( "reachable from the converter and that the model name '%s' " "resolves on the server.", source, - len(pictures), + len(doc.pictures), model.base_url or "", model.name, ) diff --git a/haiku_rag_slim/haiku/rag/client/rebuild.py b/haiku_rag_slim/haiku/rag/client/rebuild.py index dddb0c64..5ac52cd5 100644 --- a/haiku_rag_slim/haiku/rag/client/rebuild.py +++ b/haiku_rag_slim/haiku/rag/client/rebuild.py @@ -315,11 +315,10 @@ async def _patch_picture_descriptions(client: "HaikuRAG", doc: Document) -> int: needs_description: list[str] = [] for pic in docling_doc.pictures: - meta = getattr(pic, "meta", None) existing = ( - getattr(getattr(meta, "description", None), "text", None) if meta else None + pic.meta.description.text if pic.meta and pic.meta.description else None ) - if not (isinstance(existing, str) and existing.strip()): + if not (existing and existing.strip()): needs_description.append(pic.self_ref) if not needs_description: diff --git a/haiku_rag_slim/haiku/rag/store/models/document_item.py b/haiku_rag_slim/haiku/rag/store/models/document_item.py index d39d8b7b..0d38e745 100644 --- a/haiku_rag_slim/haiku/rag/store/models/document_item.py +++ b/haiku_rag_slim/haiku/rag/store/models/document_item.py @@ -24,15 +24,12 @@ def _picture_description_text(item: "PictureItem") -> str | None: falls back to ``annotations`` entries that carry a ``text`` field (PictureDescriptionData and similar). """ - meta = getattr(item, "meta", None) - if meta is not None: - description = getattr(meta, "description", None) - if description is not None: - text = getattr(description, "text", None) - if isinstance(text, str) and text.strip(): - return text - annotations = getattr(item, "annotations", None) or [] - for ann in annotations: + if item.meta and item.meta.description: + text = item.meta.description.text + if text and text.strip(): + return text + # Annotations is a tagged union; only some variants carry `text`. + for ann in item.annotations: text = getattr(ann, "text", None) if isinstance(text, str) and text.strip(): return text