Files
pplcplapi/app/transliterate.py
T
JiriUhlir 0e05fef335 first
2026-07-16 11:56:15 +02:00

21 lines
744 B
Python

"""Transliterace diakritiky pro PPL CPL API.
CPL API přijímá pouze Latin znaky bez diakritiky (A-Z, 0-9, základní interpunkce).
České texty (jména, adresy, poznámky) proto před odesláním převádíme přes
unidecode ("Jiří Dvořák" -> "Jiri Dvorak"). Aplikuje se rekurzivně na všechny
stringové hodnoty v JSON těle; klíče se nemění.
"""
from typing import Any
from unidecode import unidecode
def transliterate_json(value: Any) -> Any:
if isinstance(value, str):
return unidecode(value)
if isinstance(value, list):
return [transliterate_json(item) for item in value]
if isinstance(value, dict):
return {key: transliterate_json(item) for key, item in value.items()}
return value