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

Function resolve_selected_papers

agents/reading-agent/main.py:4600–4637  ·  view source on GitHub ↗

Resolve paper references from either 1-based positions or actual paper IDs. If paper_refs is empty but papers is not, return all papers directly.

(paper_refs: List[int], papers: List[Dict])

Source from the content-addressed store, hash-verified

4598
4599def resolve_selected_papers(paper_refs: List[int], papers: List[Dict]) -> List[Dict]:
4600 """Resolve paper references from either 1-based positions or actual paper IDs.
4601
4602 If paper_refs is empty but papers is not, return all papers directly.
4603 """
4604 # If no refs provided but papers exist, return all papers (for direct PDF input)
4605 if not paper_refs and papers:
4606 return papers
4607
4608 resolved: List[Dict] = []
4609 seen_keys: set[str] = set()
4610
4611 papers_by_id = {}
4612 for paper in papers:
4613 paper_id = paper.get("id")
4614 if paper_id is not None:
4615 papers_by_id[int(paper_id)] = paper
4616
4617 for paper_ref in paper_refs:
4618 paper: Optional[Dict[str, Any]] = None
4619
4620 idx = int(paper_ref) - 1
4621 if 0 <= idx < len(papers):
4622 paper = papers[idx]
4623
4624 if paper is None:
4625 paper = papers_by_id.get(int(paper_ref))
4626
4627 if paper is None:
4628 continue
4629
4630 unique_key = str(paper.get("id") or paper.get("arxiv_id") or paper.get("title") or paper_ref)
4631 if unique_key in seen_keys:
4632 continue
4633 seen_keys.add(unique_key)
4634 resolved.append(paper)
4635
4636 return resolved
4637
4638
4639def _legacy_create_reading_report(
4640 user_id: str,

Callers 2

create_reading_reportFunction · 0.85

Calls 1

getMethod · 0.80

Tested by

no test coverage detected