21 lines
744 B
Python
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
|