Spaces:
Running
Running
from typing import List, Tuple, Dict, Any | |
def process_reasons(reasons: dict) -> List[Tuple[str, str, str]]: | |
"""Proprocessing for recommendation reasons data to display in a dataframe. | |
Parameters | |
---------- | |
reasons : dict | |
Returns | |
------- | |
List[Tuple[str, str, str]] | |
(attribute type, attribute code, attribute description) | |
""" | |
output = [] | |
for code, desc in (reasons.get("subject_codes", {}) or {}).items(): | |
output.append(["PCS subject", code, desc]) | |
for code, desc in (reasons.get("pop_group_codes", {}) or {}).items(): | |
output.append(["PCS population", code, desc]) | |
for code, desc in (reasons.get("geo_ids", {}) or {}).items(): | |
output.append(["Geography served", code, desc]) | |
return output | |
def parse_pcs_descriptions(taxonomy: List[Dict[str, Any]]) -> str: | |
reasons = [] | |
for term in taxonomy: | |
facet = (term.get("facet") or "").lower() | |
if facet == "subject": | |
reasons.append(f"- For <b>{term.get('description')}</b>") | |
elif facet == "population": | |
reasons.append(f"- Serving <b>{term.get('description')}</b>") | |
return '\n'.join(reasons) | |
def parse_geo_descriptions(geos: List[Dict[str, Any]]) -> str: | |
reasons = [] | |
for geo in geos: | |
reasons.append(f"- Serving <b>{geo['name']}</b>") | |
return '\n'.join(reasons) | |