(row: Dict[str, Any])
| 213 | |
| 214 | |
| 215 | def source_prior(row: Dict[str, Any]) -> float: |
| 216 | source = str(row.get("source") or row.get("venue") or row.get("journal") or "").casefold() |
| 217 | if any(token in source for token in ("nature", "science", "cell")): |
| 218 | return 0.80 |
| 219 | if any(token in source for token in ("pnas", "acm", "ieee", "springer", "elsevier")): |
| 220 | return 0.68 |
| 221 | if "openreview" in source: |
| 222 | return 0.55 |
| 223 | if "arxiv" in source: |
| 224 | return 0.45 |
| 225 | if row.get("doi"): |
| 226 | return 0.50 |
| 227 | return 0.35 |
| 228 | |
| 229 | |
| 230 | def impact_score(row: Dict[str, Any], max_log_citations: float) -> Tuple[float, bool]: |
no test coverage detected