(value)
| 62 | |
| 63 | |
| 64 | def _resolve_broad_must_read_keyword(value): |
| 65 | cleaned = str(value or "").strip() |
| 66 | if not cleaned: |
| 67 | return None |
| 68 | normalized_key = normalize_direction_key(cleaned) |
| 69 | if normalized_key in BROAD_MUST_READ_KEYWORD_ALIASES: |
| 70 | return BROAD_MUST_READ_KEYWORD_ALIASES[normalized_key] |
| 71 | |
| 72 | resolved = resolve_canonical_direction(cleaned, include_paper_terms=True) |
| 73 | if not resolved: |
| 74 | return None |
| 75 | canonical = str(resolved.get("canonical_name") or "").strip() |
| 76 | if canonical in BROAD_MUST_READ_KEYWORD_DIRECTIONS: |
| 77 | return canonical |
| 78 | return None |
| 79 | |
| 80 | |
| 81 | def _keyword_resolves_to_direction(value, canonical_direction): |
no test coverage detected