(values: Iterable[Any])
| 285 | |
| 286 | |
| 287 | def dedupe_strings(values: Iterable[Any]) -> List[str]: |
| 288 | result: List[str] = [] |
| 289 | seen: set[str] = set() |
| 290 | for value in values: |
| 291 | cleaned = str(value or "").strip() |
| 292 | if not cleaned: |
| 293 | continue |
| 294 | normalized = normalize_phrase_text(cleaned) |
| 295 | if not normalized or normalized in seen: |
| 296 | continue |
| 297 | seen.add(normalized) |
| 298 | result.append(cleaned) |
| 299 | return result |
| 300 | |
| 301 | |
| 302 | def citation_count(row: Dict[str, Any]) -> Optional[float]: |
no test coverage detected