22 lines
575 B
Python
22 lines
575 B
Python
|
"""Outils et fonctions utiles pour la gestion des personnes"""
|
||
|
|
||
|
import unicodedata
|
||
|
|
||
|
|
||
|
TRANSTABLE = str.maketrans(
|
||
|
dict((ord(char), None) for char in " \"/-.,;+_*:=~''`\\()!$")
|
||
|
)
|
||
|
|
||
|
|
||
|
def clean_name(name):
|
||
|
"""Nettoie les (pré)noms en supprimant les caractère accentués, les espaces, … permettant des
|
||
|
recherches plus faciles.
|
||
|
"""
|
||
|
tmp_str = name.strip().upper().translate(TRANSTABLE)
|
||
|
compressed_name = "".join(
|
||
|
c
|
||
|
for c in unicodedata.normalize("NFKD", tmp_str)
|
||
|
if unicodedata.category(c) != "Mn"
|
||
|
)
|
||
|
return compressed_name
|