rougail/src/rougail/utils.py

24 lines
775 B
Python
Raw Permalink Normal View History

2019-11-23 08:17:35 +01:00
"""
utilitaires créole
"""
2019-11-26 20:33:24 +01:00
import unicodedata
2019-12-22 08:37:30 +01:00
from .i18n import _
2019-11-23 08:17:35 +01:00
2019-12-22 08:37:30 +01:00
def normalize_family(family_name: str,
2019-12-22 08:45:03 +01:00
check_name: bool=True,
allow_dot: bool=False) -> str:
2019-12-22 08:37:30 +01:00
"""replace space, accent, uppercase, ... by valid character
2019-11-23 08:17:35 +01:00
"""
2020-03-04 15:37:08 +01:00
family_name = family_name.replace('-', '_')
2019-12-22 08:45:03 +01:00
if not allow_dot:
2020-03-04 15:37:08 +01:00
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
2019-11-23 08:17:35 +01:00