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)