rougail/src/rougail/utils.py

24 lines
775 B
Python

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