Spaces:
Running
Running
| from typing import List | |
| from src.constants import COUNTRY_TO_REGION_MAP, LANGUAGE_TO_COUNTRIES_MAP | |
| def get_language_countries(language: str) -> List[str]: | |
| """Get the list of countries where a language is spoken.""" | |
| return LANGUAGE_TO_COUNTRIES_MAP.get(language, ["Unknown"]) | |
| def get_language_regions(language: str) -> List[str]: | |
| """Get the list of African regions where a language is spoken.""" | |
| countries = get_language_countries(language) | |
| regions = set() | |
| for country in countries: | |
| region = COUNTRY_TO_REGION_MAP.get(country) | |
| if region: | |
| regions.add(region) | |
| return list(regions) if regions else ["Unknown"] | |
| def get_all_regions() -> List[str]: | |
| """Get all unique African regions.""" | |
| regions = set(COUNTRY_TO_REGION_MAP.values()) | |
| return sorted(regions) | |
| def get_languages_by_region(region: str) -> List[str]: | |
| """Get all languages spoken in a specific African region.""" | |
| countries_in_region = [c for c, r in COUNTRY_TO_REGION_MAP.items() if r == region] | |
| languages = set() | |
| for lang, countries in LANGUAGE_TO_COUNTRIES_MAP.items(): | |
| if any(c in countries_in_region for c in countries): | |
| languages.add(lang) | |
| return list(languages) | |