(
canonical_directions: Iterable[Any],
*,
lexicon: Optional[Dict[str, Any]] = None,
)
| 586 | |
| 587 | |
| 588 | def expand_direction_terms( |
| 589 | canonical_directions: Iterable[Any], |
| 590 | *, |
| 591 | lexicon: Optional[Dict[str, Any]] = None, |
| 592 | ) -> Dict[str, Dict[str, Any]]: |
| 593 | current_lexicon = lexicon or load_lexicon() |
| 594 | expanded: Dict[str, Dict[str, Any]] = {} |
| 595 | for direction in canonical_directions: |
| 596 | resolved = resolve_canonical_direction(direction, lexicon=current_lexicon, include_paper_terms=True) |
| 597 | canonical_name = resolved["canonical_name"] if resolved else normalize_direction_key(direction) |
| 598 | if not canonical_name: |
| 599 | continue |
| 600 | entry = current_lexicon.get(canonical_name) or _default_entry(canonical_name) |
| 601 | expanded[canonical_name] = { |
| 602 | "canonical_name": canonical_name, |
| 603 | "name": entry.get("name", canonical_name), |
| 604 | "name_cn": entry.get("name_cn", entry.get("name", canonical_name)), |
| 605 | "aliases": _dedupe_strings(entry.get("aliases", [])), |
| 606 | "paper_terms": _dedupe_strings(entry.get("paper_terms", [])), |
| 607 | } |
| 608 | return expanded |
| 609 | |
| 610 | |
| 611 | def canonicalize_direction_terms( |
no test coverage detected