28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
import cyrtranslit
|
||
|
||
def get_city_variations(city_name: str) -> list[str]:
|
||
"""
|
||
Получает варианты написания города, включая транслитерацию
|
||
"""
|
||
variations = set()
|
||
|
||
# добавляем оригинальное название и его варианты с разным регистром
|
||
variations.add(city_name)
|
||
variations.add(city_name.lower())
|
||
variations.add(city_name.title())
|
||
|
||
# пробуем добавить транслитерации
|
||
try:
|
||
# пробуем транслитерировать в обе стороны
|
||
lat = cyrtranslit.to_latin(city_name, 'ru')
|
||
cyr = cyrtranslit.to_cyrillic(city_name, 'ru')
|
||
|
||
# добавляем варианты транслитерации с разным регистром
|
||
for variant in [lat, cyr]:
|
||
variations.add(variant)
|
||
variations.add(variant.lower())
|
||
variations.add(variant.title())
|
||
except:
|
||
pass
|
||
|
||
return list(variations) |