20 lines
603 B
Python
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()
|