(row: Dict[str, Any])
| 300 | |
| 301 | |
| 302 | def citation_count(row: Dict[str, Any]) -> Optional[float]: |
| 303 | for field_name in CITATION_COUNT_FIELDS: |
| 304 | value = row.get(field_name) |
| 305 | if value in (None, ""): |
| 306 | continue |
| 307 | count = safe_float(value, -1.0) |
| 308 | if count >= 0: |
| 309 | return count |
| 310 | return None |
| 311 | |
| 312 | |
| 313 | def normalized_citation_signal(row: Dict[str, Any], max_log_citations: float) -> Tuple[float, bool]: |
no test coverage detected