MCPcopy Create free account
hub / github.com/OpenRaiser/PaperFlow / _merge_paper_details

Function _merge_paper_details

agents/reading-agent/main.py:1416–1450  ·  view source on GitHub ↗
(base: Dict[str, Any], detail: Dict[str, Any])

Source from the content-addressed store, hash-verified

1414
1415
1416def _merge_paper_details(base: Dict[str, Any], detail: Dict[str, Any]) -> Dict[str, Any]:
1417 merged = dict(base)
1418 detail = _normalize_paper(detail)
1419 prefer_detail_abstract = bool(base.get("_prefer_detail_abstract"))
1420
1421 for key in ("arxiv_id", "doi", "pdf_url", "publish_date", "venue", "institution"):
1422 if not _clean_text(merged.get(key)):
1423 merged[key] = detail.get(key, merged.get(key))
1424
1425 if _looks_like_placeholder_title(str(merged.get("title", ""))) and detail.get("title"):
1426 merged["title"] = detail["title"]
1427
1428 if not merged.get("authors"):
1429 merged["authors"] = detail.get("authors", [])
1430
1431 current_abstract_raw = merged.get("abstract")
1432 current_abstract = _clean_abstract_text(current_abstract_raw)
1433 detail_abstract = _clean_abstract_text(detail.get("abstract"))
1434 if detail_abstract and (
1435 prefer_detail_abstract
1436 or _prefer_candidate_abstract(current_abstract_raw, detail_abstract)
1437 ):
1438 merged["abstract"] = detail["abstract"]
1439 elif current_abstract:
1440 merged["abstract"] = current_abstract
1441
1442 existing_metadata = dict(merged.get("metadata") or {})
1443 detail_metadata = dict(detail.get("metadata") or {})
1444 if detail_metadata:
1445 merged["metadata"] = {**existing_metadata, **detail_metadata}
1446 else:
1447 merged["metadata"] = existing_metadata
1448 merged.pop("_prefer_detail_abstract", None)
1449
1450 return merged
1451
1452
1453def _normalize_source_page_document(document: Dict[str, Any]) -> Optional[Dict[str, Any]]:

Calls 6

_normalize_paperFunction · 0.85
getMethod · 0.80
_clean_textFunction · 0.70
_clean_abstract_textFunction · 0.70

Tested by

no test coverage detected