rougail/src/rougail/utils.py

20 lines
603 B
Python

"""
utilitaires créole
"""
from unicodedata import normalize, combining
from .i18n import _
def valid_name(name: str) -> None:
if '.' in name:
raise ValueError(_(f'"{name}" is a forbidden variable or family name, dot is not allowed'))
def normalize_family(family_name: str) -> str:
"""replace space, accent, uppercase, ... by valid character
"""
family_name = family_name.replace('-', '_').replace(' ', '_').replace('.', '_')
nfkd_form = normalize('NFKD', family_name)
family_name = ''.join([c for c in nfkd_form if not combining(c)])
return family_name.lower()